[FFmpeg-trac] #2282(undetermined:new): Failed seeks lead to undefined behavior

FFmpeg trac at avcodec.org
Mon Feb 18 23:42:24 CET 2013


#2282: Failed seeks lead to undefined behavior
-------------------------------------+-------------------------------------
             Reporter:  gjdfgh       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Play a .flac file with ffplay. Right at the start, hit the cursor-right
 and cursor-down key multiple times. Then ffplay prints some error
 messages, and the printed playback position doesn't actually match what
 you hear.

 Specifically, it prints decoder errors after an (obviously) failed seek.
 This indicates a problem with demuxer behavior and/or the seek API. (And
 if not, it's a ffplay bug.)

 On IRC, it was said that failed seeks leave the demuxer in an undefined
 state.

 {{{
 $ ffplay test.flac
 ffplay version 1.0.3 Copyright (c) 2003-2012 the FFmpeg developers
   built on Jan 24 2013 14:52:18 with gcc 4.7 (Debian 4.7.2-5)
   configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' --extra-
 ldflags='-Wl,-z,relro' --cc='ccache cc' --enable-shared --enable-
 libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enable-
 pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-
 x11grab --enable-libgsm --enable-libtheora --enable-libopencore-amrnb
 --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-
 nonfree --disable-stripping --enable-libvpx --enable-libschroedinger
 --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpeg
 --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-
 aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus
 --libdir=/usr/lib/i386-linux-gnu --disable-vda --enable-libbluray
 --enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl
 --enable-libass --enable-libopus --enable-fontconfig --enable-libdc1394
 --disable-altivec --disable-armv5te --disable  libavutil      51. 73.101 /
 51. 73.101
   libavcodec     54. 59.100 / 54. 59.100
   libavformat    54. 29.104 / 54. 29.104
   libavdevice    54.  2.101 / 54.  2.101
   libavfilter     3. 17.100 /  3. 17.100
   libswscale      2.  1.101 /  2.  1.101
   libswresample   0. 15.100 /  0. 15.100
   libpostproc    52.  0.100 / 52.  0.100
 [flac @ 0x80e0620] max_analyze_duration 5000000 reached at 5015510
 Input #0, flac, from 'test.flac':
   Metadata:
     ENCODER         : Lavf54.29.104
   Duration: 00:10:01.48, bitrate: 1186 kb/s
     Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
 test.flac: error while seeking=   47KB vq=    0KB sq=    0B f=0/0
 [flac @ 0x80e8a80] invalid sync codeKB vq=    0KB sq=    0B f=0/0
 [flac @ 0x80e8a80] invalid frame header
 [flac @ 0x80e8a80] decode_frame() failed
 [flac @ 0x80e8a80] invalid sync codeKB vq=    0KB sq=    0B f=0/0
 [flac @ 0x80e8a80] invalid frame header
 [flac @ 0x80e8a80] decode_frame() failed

 }}}

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


More information about the FFmpeg-trac mailing list