[FFmpeg-devel] Latest FFMPEG 0.9 Issues

C Chatterjee cchatterj at hotmail.com
Sat Dec 31 02:05:27 CET 2011






Michael:

Here's the link to the file you requested. I used the parameters below:
ffmpeg -y -i xx.flv -acodec libfaac -vcodec libx264 -preset superfast ff.flv
or
ffmpeg -y -i xx.flv -acodec libfaac -vcodec libx264 -preset superfast ff.mp4

It produces the error:
channel element 1.0 is not allocated
Error while decoding stream #0:1
File link:
http://www.mediafire.com/?dqhop8ol288enz7

Chanchal


Date: Fri, 30 Dec 2011 22:21:02 +0100
From: michaelni at gmx.at
To: ffmpeg-devel at ffmpeg.org
Subject: Re: [FFmpeg-devel] Latest FFMPEG 0.9 Issues

On Thu, Dec 29, 2011 at 12:04:23PM -0800, C Chatterjee wrote:
> 
> I have been working with the latest ffmpeg 0.9 release and discovered the following issues which did not exist in the last ffmpeg I have been using from Jan 2011.
> 
> 1. AAC audio decode.
> I have a number of (H264+AAC) sequences which decoded fine but now I get an error in the first packet and works fine from there on. I found the issue in parse_adts_frame_header() function in aacdec.c. The sequence is initialized with ac->m4ac.chan_config = 2. But this function sets it to 0. Hence it fails in aac_decode_frame_int() and produces the following error:
>             if (!(che=get_che(ac, elem_type, elem_id))) {
>                 av_log(ac->avctx, AV_LOG_ERROR, "channel element %d.%d is not allocated\n",
>                        elem_type, elem_id);
>                 return -1;
>             }
> The old ffmpeg initialized ac->m4ac.chan_config to 0 and set it to 2 in the parse_adts_frame_header().
> Commenting out ac->m4ac.chan_config = 0; in parse_adts_frame_header() works great.
 
can you upload a sample or provide a url of an existing sample with
which this is reproduceable ?
 
 
> 
> 2. AAC Encode to flv and mp4/mov
> If the first aac packet has the 2 byte header and payload together, the old ffmpeg encoded it correctly. The new ffmpeg checks for the pkt size to be 2 and errors.
> flvenc.c - flv_write_packet() and 
> movenc.c - ff_mov_write_packet()
> have the following lines of code:
> 
>     else if (enc->codec_id == CODEC_ID_AAC && pkt->size > 2 &&
>                (AV_RB16(pkt->data) & 0xfff0) == 0xfff0) {
>         av_log(s, AV_LOG_ERROR, "malformated aac bitstream, use -absf aac_adtstoasc\n");
>         return -1;
> 
> Commenting this out the pkt->size > 2  works great. Otherwise we need to use -absf aac_adtstoasc.
 
I suspect the files generated without the check are invalid and will
not play on all players. But i may be wrong
 
 
[...]
 
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
 
What does censorship reveal? It reveals fear. -- Julian Assange

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel at ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel 		 	   		   		 	   		  


More information about the ffmpeg-devel mailing list