Re: [Aften-devel] [RFC] Transcoding support
Status: Beta
Brought to you by:
jbr79
From: Justin R. <jus...@be...> - 2007-12-31 23:08:26
|
Hi, Prakash Punnoor wrote: > It is just a Proof of Concept for now, so it needs some major cleaning up > (probably API wise, as well). At least it works and is blazing fast compared > to regular decoding and reencoding, as I can skip imdct and mdct. For now not > much of the output stream can be configured, except bitrate and the like. I like the concept, but I'm not too sure about the API. Maybe it is okay, but definitely needs to handle not getting a full frame. This can be determined with just the first 5 bytes of the frame, and it should be very easy to write a small function that takes 5 bytes and outputs the frame size. > So I would like to get it merged somehow after some cleanup iterations. Any > major objections? If not, I guess we should try to minimize code duplication > between encoder and decoder... The bit allocation functions would probably be the only duplicated code. Another reason to wait until E-AC3 support is added is the license. I noticed you stripped out the GPL header from ac3dec.c. ;) That file is GPL because the student who started the decoder last summer used liba52 as a reference without anyone knowing it. Then when I was about half done cleaning up the code, I noticed. So at that point it was already a mixture of the student's own work, GPL code from liba52, and my modifications/additions. Michel Lespinasse has agreed to allow relicensing to LGPL if the decoder is modified to include E-AC3 support, and like I said earlier, that won't be too long. That said, we'll also have to treat the E-AC3 a little differently when transcoding to AC3. Since it can use 1, 2, 3, or 6 blocks per frame, they will have to be grouped together into frame sets with 6 total blocks. This should be easy though, and is already built into the E-AC3 bitstream format. The FFmpeg E-AC3 decoder doesn't pay any attention to this since it doesn't really care how many blocks are in the frame. Thanks, Justin P.S. you'll need to get rid of the hard tabs too :) |