[FFmpeg-trac] #2533(undetermined:new): FLAC with blocksize of 32768 gives problems

FFmpeg trac at avcodec.org
Sat May 4 22:17:13 CEST 2013


#2533: FLAC with blocksize of 32768 gives problems
-------------------------------------+-------------------------------------
             Reporter:  ktf          |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 '''Summary of the bug: For some reason, when trying to decode a FLAC-file
 with a blocksize of exactly 32768 gives errors'''

 How to reproduce:
 1) Take an audio file and encode it with the FLAC tools as flac --lax -b
 32768 infile.wav
 2) Try ffmpeg -i infile.flac outfile.wav
 3) See strange errors popping up (depending on the input file)
 4) Try again with flac --lax -b 32767 and flac --lax -b 32769 and see the
 problem not happening

 I ran the following script to test in depth
 for i in {32700..32900}; do echo $i; flac -f noise.flac -b $i --lax
 --silent; ffmpeg -y -loglevel error -i noise.flac test.wav; done
 and only 32768 gives me an error

 '''When using real music, I get errors like this'''
 martijn at MartijnKubuntu:~$ ffmpeg -y -i test.flac test.wav
 ffmpeg version N-52724-gb937d36 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on May  3 2013 21:48:33 with gcc 4.7 (Ubuntu/Linaro
 4.7.2-2ubuntu1)
   configuration: --enable-libx264 --enable-libtheora --enable-libvorbis
 --enable-libmp3lame --enable-gpl
   libavutil      52. 28.100 / 52. 28.100
   libavcodec     55.  7.100 / 55.  7.100
   libavformat    55.  4.101 / 55.  4.101
   libavdevice    55.  0.100 / 55.  0.100
   libavfilter     3. 63.101 /  3. 63.101
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, flac, from 'test.flac':
   Duration: 00:00:07.40, bitrate: 622 kb/s
     Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
 Output #0, wav, to 'test.wav':
   Metadata:
     ISFT            : Lavf55.4.101
     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
 stereo, s16, 1411 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (flac -> pcm_s16le)
 Press [q] to stop, [?] for help
 [flac @ 0x2d281c0] invalid predictor order: 7 > -1024
 [flac @ 0x2d281c0] decode_frame() failed
 Error while decoding stream #0:0: Invalid data found when processing input
 [flac @ 0x2d281c0] invalid predictor order: 8 > -8192
 [flac @ 0x2d281c0] decode_frame() failed
 Error while decoding stream #0:0: Invalid data found when processing input
 [flac @ 0x2d281c0] invalid predictor order: 8 > -32768
 [flac @ 0x2d281c0] decode_frame() failed
 [...]
 Error while decoding stream #0:0: Invalid data found when processing input
 [flac @ 0x2d281c0] invalid predictor order: 8 > -32768
 [flac @ 0x2d281c0] decode_frame() failed
 Error while decoding stream #0:0: Invalid data found when processing input
 [flac @ 0x2d281c0] invalid predictor order: 7 > -1024
 [flac @ 0x2d281c0] decode_frame() failed
 Error while decoding stream #0:0: Invalid data found when processing input
 size=     123kB time=00:00:00.71 bitrate=1412.1kbits/s
 video:0kB audio:123kB subtitle:0 global headers:0kB muxing overhead
 0.063763%

 '''When trying noise, I get this'''
 martijn at MartijnKubuntu:~$ ffmpeg -y -i noise.flac test.wav
 ffmpeg version N-52724-gb937d36 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on May  3 2013 21:48:33 with gcc 4.7 (Ubuntu/Linaro
 4.7.2-2ubuntu1)
   configuration: --enable-libx264 --enable-libtheora --enable-libvorbis
 --enable-libmp3lame --enable-gpl
   libavutil      52. 28.100 / 52. 28.100
   libavcodec     55.  7.100 / 55.  7.100
   libavformat    55.  4.101 / 55.  4.101
   libavdevice    55.  0.100 / 55.  0.100
   libavfilter     3. 63.101 /  3. 63.101
   libswscale      2.  2.100 /  2.  2.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100
 Input #0, flac, from 'noise.flac':
   Duration: 00:00:08.10, bitrate: 3080 kb/s
     Stream #0:0: Audio: flac, 192000 Hz, mono, s16
 Output #0, wav, to 'test.wav':
   Metadata:
     ISFT            : Lavf55.4.101
     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 192000 Hz,
 mono, s16, 3072 kb/s
 Stream mapping:
   Stream #0:0 -> #0:0 (flac -> pcm_s16le)
 Press [q] to stop, [?] for help
 [flac @ 0x2e621c0] CRC error at PTS 0
 [flac @ 0x2e621c0] get_buffer() failed
 Error while decoding stream #0:0: Invalid argument
 [flac @ 0x2e621c0] CRC error at PTS 0
 [flac @ 0x2e621c0] get_buffer() failed
 Error while decoding stream #0:0: Invalid argument
 [flac @ 0x2e621c0] CRC error at PTS 0
 [flac @ 0x2e621c0] get_buffer() failed
 [...]
 Error while decoding stream #0:0: Invalid argument
 [flac @ 0x2e621c0] CRC error at PTS 0
 [flac @ 0x2e621c0] get_buffer() failed
 Error while decoding stream #0:0: Invalid argument
 [flac @ 0x2e621c0] CRC error at PTS 0
 [flac @ 0x2e621c0] get_buffer() failed
 Error while decoding stream #0:0: Invalid argument
 size=      30kB time=00:00:00.07 bitrate=3082.3kbits/s
 video:0kB audio:30kB subtitle:0 global headers:0kB muxing overhead
 0.334010%

 The resulting file only has the audio in the last block, of which the
 framesize is not exactly 32768 (because the file length is not an exact
 multiple of 32768.

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


More information about the FFmpeg-trac mailing list