[FFmpeg-soc] [PATCH] AACENC: fix SEGV in multi-channel encode WAS Re: AAC Encoding - Where we stand, what's left
Alex Converse
alex.converse at gmail.com
Wed Jul 8 07:41:41 CEST 2009
On Wed, Jul 8, 2009 at 12:37 AM, Kostya<kostya.shishkov at gmail.com> wrote:
> On Wed, Jul 08, 2009 at 12:05:50AM -0400, Alex Converse wrote:
>> On Tue, Jul 7, 2009 at 4:45 AM, Kostya<kostya.shishkov at gmail.com> wrote:
>> > On Mon, Jul 06, 2009 at 09:14:00PM -0400, Alex Converse wrote:
>> >> I'd like to take a minute to discuss the status of the AAC encoder and
>> >> where it is going.
>> >>
>> >> In SoC svn:
>> >> --Applies cleanly to SVN HEAD
>> >> --The most egregious of the artifacting is gone (sections being
>> >> replaced by silence or having the wrong volume, etc.)
>> >> --Lacks TNS
>> >
>> >> --Lacks multichannel support
>> >
>> > Ahem, I've added it long time ago.
>> >
>>
>> $ ./ffmpeg -i ../../Canyon-5.1-48khz-448kbit.ac3 canyon5.1.m4a
>> FFmpeg version git-04fe5e6, Copyright (c) 2000-2009 Fabrice Bellard, et al.
>> configuration: --enable-gpl --disable-ffserver
>> libavutil 50. 3. 0 / 50. 3. 0
>> libavcodec 52.32. 0 / 52.32. 0
>> libavformat 52.36. 0 / 52.36. 0
>> libavdevice 52. 2. 0 / 52. 2. 0
>> libswscale 0. 7. 1 / 0. 7. 1
>> built on Jul 7 2009 23:49:58, gcc: 4.3.3
>> Input #0, ac3, from '../../Canyon-5.1-48khz-448kbit.ac3':
>> Duration: 00:00:37.98, bitrate: 448 kb/s
>> Stream #0.0: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
>> File 'canyon5.1.m4a' already exists. Overwrite ? [y/N] y
>> Output #0, ipod, to 'canyon5.1.m4a':
>> Stream #0.0: Audio: aac, 48000 Hz, 5.1, s16, 64 kb/s
>> Stream mapping:
>> Stream #0.0 -> #0.0
>> Press [q] to stop encoding
>> Segmentation fault
>
> Something is broken in preprocessing. If you change line 482 in aacenc.c
> like in this patch to disable IIR filtering, it will work:
>
> Index: aacenc.c
> ===================================================================
> --- aacenc.c (revision 4653)
> +++ aacenc.c (working copy)
> @@ -479,7 +479,7 @@
> if(s->last_frame)
> return 0;
> if(data){
> - if(!s->psypp){
> + if(1){
> memcpy(s->samples + 1024 * avctx->channels, data, 1024 * avctx->channels * sizeof(s->samples[0]));
> }else{
> start_ch = 0;
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aacenc-mc-ff_psy_preprocess-SEGV.diff
Type: text/x-patch
Size: 632 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-soc/attachments/20090708/04a6dfce/attachment.bin>
More information about the FFmpeg-soc
mailing list