[FFmpeg-trac] #673(avformat:new): Regression on demuxing mp3 track from an .MOV file.

FFmpeg trac at avcodec.org
Mon Nov 21 08:01:09 CET 2011


#673: Regression on demuxing mp3 track from an .MOV file.
----------------------------------+--------------------------------------
             Reporter:  dongwon   |                     Type:  defect
               Status:  new       |                 Priority:  important
            Component:  avformat  |                  Version:  git-master
             Keywords:  mov,mp4   |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+--------------------------------------
 When I try to play the attached sample mov file, I can see the following
 errors and can't hear any sound.
 {{{
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x2014600]error unaligned chunk.
 }}}
 (This happens on ffplay >= 0.6.3 including current git while 0.5.5 works
 well with the sample file. Also, I've checked the file with vlc and totem
 players and they worked fine.)

 I checked the code which emits the log and found out it fails to build an
 index for audio stream due to the following sanity checking code. (which
 is introduced between 0.5.5 and 0.6.3)
 == ffmpeg/avformat/mov.c ==
 {{{
            if (sc->samples_per_frame && chunk_samples %
 sc->samples_per_frame) {
                av_log(mov->fc, AV_LOG_ERROR, "error unaligned chunk\n");
                return;
            }
 }}}
 If I read the code correctly, it is using two different units regarding
 "sample".
 In samples_per_frame, "sample" means the uncompressed samples when we say
 sampling rates.
 (reference: "Samples per packet" -
 http://developer.apple.com/library/mac/#documentation/QuickTime/QTFF/QTFFChap3/qtff3.html#//apple_ref/doc/uid/TP40000939-CH205-131395)
 In chunk_samples, "sample" means a unit of media data like elementary
 stream.
 (reference: "Samples per chunk" in 'stsc' atom,
 http://developer.apple.com/library/mac/#documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-25691)
 So, I think modulo operation between them does not make sense.

 I'm setting the priority to "important" because this is a regression.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/673>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list