Opened 6 years ago

Last modified 5 years ago

#6937 new defect

When converting from APE program eats up 4 bytes.

Reported by: Alex Owned by:
Priority: important Component: undetermined
Version: git-master Keywords: APE seek regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
If I use the -ss option and the seconds value is a multiple of 5, then the program eats up the first 2 bytes.

How to reproduce:

Preparing:

ffmpeg -y -t 60 -f s16le -i /dev/urandom -ar 44100 -acodec pcm_s16le -ac 2 in.wav
mac in.wav in.ape -c2000

Test 1 (Size):

ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.wav -f wav from_wav.wav
ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.ape -f wav from_ape.wav

ls -l from_wav.wav from_ape.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292074 дек 29 18:49 from_ape.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292078 дек 29 18:49 from_wav.wav

The size of the file "from_ape.wav" is less on 4 bytes

Test 2 (Hex):

ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.wav -f s16le from_wav.raw
ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.ape -f s16le from_ape.raw

hexdump from_wav.raw | head -n 4
0000000 aa55 aa55 b179 b179 fa3d fa3d 0f09 0f09
0000010 4981 4981 bd53 bd53 aec1 aec1 ebca ebca
0000020 c4bb c4bb d85d d85d eeb1 eeb1 b934 b934
0000030 c1dd c1dd 295d 295d 0851 0851 3641 3641

hexdump from_ape.raw | head -n 4
0000000 b179 b179 fa3d fa3d 0f09 0f09 4981 4981
0000010 bd53 bd53 aec1 aec1 ebca ebca c4bb c4bb
0000020 d85d d85d eeb1 eeb1 b934 b934 c1dd c1dd
0000030 295d 295d 0851 0851 3641 3641 2f58 2f58

As you can see in from_ape.raw missing 4 bytes (aa55 aa55) at the beginning

Version

ffmpeg -version
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
configuration: --prefix=/usr --enable-shared --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include --disable-stripping --enable-postproc --enable-gpl --enable-pthreads --enable-ladspa --enable-libbluray --enable-libtheora --enable-libvorbis --disable-encoder=vorbis --enable-libvpx --enable-x11grab --enable-runtime-cpudetect --enable-libdc1394 --enable-libschroedinger --enable-librtmp --enable-libspeex --enable-libfreetype --enable-libnut --enable-libgsm --enable-libcelt --enable-avresample --enable-opencl --disable-libopencv --enable-libopenjpeg --enable-libopus --enable-libsoxr --enable-libwavpack --disable-libxavs --enable-libmodplug --enable-libass --enable-gnutls --enable-libcdio --enable-libpulse --enable-libv4l2 --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libx264 --enable-libx265 --enable-libvo-amrwbenc --enable-libxvid
libavutil      55. 34.101 / 55. 34.101
libavcodec     57. 64.101 / 57. 64.101
libavformat    57. 56.101 / 57. 56.101
libavdevice    57.  1.100 / 57.  1.100
libavfilter     6. 65.100 /  6. 65.100
libavresample   3.  1.  0 /  3.  1.  0
libswscale      4.  2.100 /  4.  2.100
libswresample   2.  3.100 /  2.  3.100
libpostproc    54.  1.100 / 54.  1.100

Reproduced on Fedora 25

ffmpeg -version
ffmpeg version 3.1.11 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.4.1 (GCC) 20170727 (Red Hat 6.4.1-1)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --extra-ldflags='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libcdio --enable-indev=jack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --extra-cflags=-I/usr/include/nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-libmfx --enable-runtime-cpudetect
libavutil      55. 28.100 / 55. 28.100
libavcodec     57. 48.101 / 57. 48.101
libavformat    57. 41.100 / 57. 41.100
libavdevice    57.  0.101 / 57.  0.101
libavfilter     6. 47.100 /  6. 47.100
libavresample   3.  0.  0 /  3.  0.  0
libswscale      4.  1.100 /  4.  1.100
libswresample   2.  1.100 /  2.  1.100
libpostproc    54.  0.100 / 54.  0.100

Attachments (1)

test.sh (563 bytes ) - added by Alex 6 years ago.
Test script

Download all attachments as: .zip

Change History (11)

by Alex, 6 years ago

Attachment: test.sh added

Test script

comment:1 by Carl Eugen Hoyos, 6 years ago

Component: ffmpegundetermined

Is the issue you want to report reproducible with current FFmpeg git head?

Please provide the command line that allows to reproduce the issue together with the complete, uncut console output to make this a valid ticket.

comment:2 by Alex, 6 years ago

Is the issue you want to report reproducible with current FFmpeg git head?

Yes this bug is reproduced on 0c78b6a416c661afed745d44495b5194f714fb96 commit.

[sokoloff@sokoloff-home 2]$ ./ffmpeg -y -t 60 -f s16le -i /dev/urandom -ar 44100 -acodec pcm_s16le -ac 2 in.wav
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, s16le, from '/dev/urandom':
  Duration: N/A, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'in.wav':
  Metadata:
    ISFT            : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=   10336kB time=00:01:00.00 bitrate=1411.2kbits/s speed= 219x    
video:0kB audio:10336kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000737%

[sokoloff@sokoloff-home 2]$ mac in.wav in.ape -c2000
--- Monkey's Audio Console Front End (v 4.11) (c) Matthew T. Ashland ---
Compressing (normal)...
Progress: 100.0% (0.0 seconds remaining, 0.2 seconds total)          
Success...

[sokoloff@sokoloff-home 2]$ ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.wav -f wav from_wav.wav
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: --prefix=/usr --enable-shared --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include --disable-stripping --enable-postproc --enable-gpl --enable-pthreads --enable-ladspa --enable-libbluray --enable-libtheora --enable-libvorbis --disable-encoder=vorbis --enable-libvpx --enable-x11grab --enable-runtime-cpudetect --enable-libdc1394 --enable-libschroedinger --enable-librtmp --enable-libspeex --enable-libfreetype --enable-libnut --enable-libgsm --enable-libcelt --enable-avresample --enable-opencl --disable-libopencv --enable-libopenjpeg --enable-libopus --enable-libsoxr --enable-libwavpack --disable-libxavs --enable-libmodplug --enable-libass --enable-gnutls --enable-libcdio --enable-libpulse --enable-libv4l2 --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libx264 --enable-libx265 --enable-libvo-amrwbenc --enable-libxvid
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, wav, from 'in.wav':
  Metadata:
    encoder         : Lavf58.3.100
  Duration: 00:01:00.00, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
Output #0, wav, to 'from_wav.wav':
  Metadata:
    ISFT            : Lavf57.56.101
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc57.64.101 pcm_s16le
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed=1.52e+03x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001474%


[sokoloff@sokoloff-home 2]$ ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.ape -f wav from_ape.wav
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: --prefix=/usr --enable-shared --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include --disable-stripping --enable-postproc --enable-gpl --enable-pthreads --enable-ladspa --enable-libbluray --enable-libtheora --enable-libvorbis --disable-encoder=vorbis --enable-libvpx --enable-x11grab --enable-runtime-cpudetect --enable-libdc1394 --enable-libschroedinger --enable-librtmp --enable-libspeex --enable-libfreetype --enable-libnut --enable-libgsm --enable-libcelt --enable-avresample --enable-opencl --disable-libopencv --enable-libopenjpeg --enable-libopus --enable-libsoxr --enable-libwavpack --disable-libxavs --enable-libmodplug --enable-libass --enable-gnutls --enable-libcdio --enable-libpulse --enable-libv4l2 --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libx264 --enable-libx265 --enable-libvo-amrwbenc --enable-libxvid
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Input #0, ape, from 'in.ape':
  Duration: 00:01:00.00, start: 0.000000, bitrate: 699 kb/s
    Stream #0:0: Audio: ape (APE  / 0x20455041), 44100 Hz, stereo, s16p
Output #0, wav, to 'from_ape.wav':
  Metadata:
    ISFT            : Lavf57.56.101
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc57.64.101 pcm_s16le
Stream mapping:
  Stream #0:0 -> #0:0 (ape (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed= 391x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001474%

[sokoloff@sokoloff-home 2]$ ls -l from_wav.wav from_ape.wav 
-rw-rw-r-- 1 sokoloff sokoloff 5292074 дек 29 21:46 from_ape.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292078 дек 29 21:45 from_wav.wav

Files have different length.
Size of from_ape.wav is incorrect, it should be 5292078 bytes 78 (header) + 5292000 (data) (44100 * 2 channel * 2 byte per sec. * 30 seconds)

comment:3 by Carl Eugen Hoyos, 6 years ago

Keywords: seek added
Version: unspecifiedgit-master

Is the issue reproducible with current FFmpeg git head? Afaict, you tested 3.2.4 for the relevant command.

Why do you believe that the output files have to have the same length?
I expect that this is not how seeking works in general, or is it?

comment:4 by Alex, 6 years ago

Is the issue reproducible with current FFmpeg git head? Afaict, you tested 3.2.4 for the relevant command.

Sorry.

[sokoloff@sokoloff-home bug]$ ./ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.wav -f wav from_wav.wav
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, wav, from 'in.wav':
  Metadata:
    encoder         : Lavf57.56.101
  Duration: 00:09:34.00, bitrate: 1411 kb/s
    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 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'from_wav.wav':
  Metadata:
    ISFT            : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed=1.09e+03x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001474%

[sokoloff@sokoloff-home bug]$ ./ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.ape -f wav from_ape.wav
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Input #0, ape, from 'in.ape':
  Duration: 00:09:34.00, start: 0.000000, bitrate: 699 kb/s
    Stream #0:0: Audio: ape (APE  / 0x20455041), 44100 Hz, stereo, s16p
Stream mapping:
  Stream #0:0 -> #0:0 (ape (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'from_ape.wav':
  Metadata:
    ISFT            : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed= 233x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001474%

[sokoloff@sokoloff-home bug]$ ls -l from*.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292074 дек 30 16:05 from_ape.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292078 дек 30 16:04 from_wav.wav

Why do you believe that the output files have to have the same length?
I expect that this is not how seeking works in general, or is it?

Theory
Files have a CD-quality, two-channel signed 16-bit Linear PCM sampled at 44,100 Hz. The audio bit rate for a Red Book audio CD is 1,411,200 bits per second or 176400 bytes per second; 2 channels × 44,100 samples per second per channel × 16 bits per sample. We extract 30 seconds, so audio data size must be 5292000 bytes (176400*30). The WAV header has a 78 bytes size, so the total size of file must be 5292078 bytes. For the from_wav.wav file is true, but from_ape.wav is smaller.

Practice
I did the same experiment for flac, wv, tta files.

[sokoloff@sokoloff-home bug]$ ls -l from*.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292074 дек 30 16:05 from_ape.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292078 дек 30 16:20 from_flac.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292078 дек 30 16:21 from_tta.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292078 дек 30 16:04 from_wav.wav
-rw-rw-r-- 1 sokoloff sokoloff 5292078 дек 30 16:21 from_wv.wav

All files have a size of 5292078, except the from_ape.wav.

Last edited 6 years ago by Alex (previous) (diff)

in reply to:  4 comment:5 by Carl Eugen Hoyos, 6 years ago

Replying to sokoloff:

The WAV header has a 78 bytes size

(Not directly related to your report:)
Since this is not generally true, it makes sense to do such tests with raw pcm (.sw).

comment:6 by Alex, 6 years ago

Since this is not generally true, it makes sense to do such tests with raw pcm (.sw).

No problem.

[sokoloff@sokoloff-home bug]$ for format in ape wav flac tta wv; do ./ffmpeg -y -accurate_seek -ss 5 -t 30 -i in.${format} -f s16le from_${format}.sw; done
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Input #0, ape, from 'in.ape':
  Duration: 00:09:34.00, start: 0.000000, bitrate: 699 kb/s
    Stream #0:0: Audio: ape (APE  / 0x20455041), 44100 Hz, stereo, s16p
Stream mapping:
  Stream #0:0 -> #0:0 (ape (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, s16le, to 'from_ape.sw':
  Metadata:
    encoder         : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed= 236x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, wav, from 'in.wav':
  Metadata:
    encoder         : Lavf57.56.101
  Duration: 00:09:34.00, bitrate: 1411 kb/s
    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 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, s16le, to 'from_wav.sw':
  Metadata:
    encoder         : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed=1.32e+03x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Input #0, flac, from 'in.flac':
  Duration: 00:09:34.00, start: 0.000000, bitrate: 704 kb/s
    Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Stream mapping:
  Stream #0:0 -> #0:0 (flac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, s16le, to 'from_flac.sw':
  Metadata:
    encoder         : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed=1.79e+03x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Input #0, tta, from 'in.tta':
  Duration: 00:09:34.00, start: 0.000000, bitrate: 754 kb/s
    Stream #0:0: Audio: tta, 44100 Hz, stereo, s16
Stream mapping:
  Stream #0:0 -> #0:0 (tta (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, s16le, to 'from_tta.sw':
  Metadata:
    encoder         : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed=1.37e+03x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
ffmpeg version N-89656-g0c78b6a416 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.9.4 (Linaro GCC 4.9-2017.01) 20160726 (ROSA)
  configuration: 
  libavutil      56.  7.100 / 56.  7.100
  libavcodec     58.  9.100 / 58.  9.100
  libavformat    58.  3.100 / 58.  3.100
  libavdevice    58.  0.100 / 58.  0.100
  libavfilter     7.  8.100 /  7.  8.100
  libswscale      5.  0.101 /  5.  0.101
  libswresample   3.  0.101 /  3.  0.101
Input #0, wv, from 'in.wv':
  Duration: 00:09:34.00, start: 0.000000, bitrate: 762 kb/s
    Stream #0:0: Audio: wavpack, 44100 Hz, stereo, s16p
Stream mapping:
  Stream #0:0 -> #0:0 (wavpack (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, s16le, to 'from_wv.sw':
  Metadata:
    encoder         : Lavf58.3.100
    Stream #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    Metadata:
      encoder         : Lavc58.9.100 pcm_s16le
size=    5168kB time=00:00:30.00 bitrate=1411.2kbits/s speed=1.05e+03x    
video:0kB audio:5168kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%

[sokoloff@sokoloff-home bug]$ ls -l from_*.sw
-rw-rw-r-- 1 sokoloff sokoloff 5291996 дек 30 17:05 from_ape.sw
-rw-rw-r-- 1 sokoloff sokoloff 5292000 дек 30 17:05 from_flac.sw
-rw-rw-r-- 1 sokoloff sokoloff 5292000 дек 30 17:05 from_tta.sw
-rw-rw-r-- 1 sokoloff sokoloff 5292000 дек 30 17:05 from_wav.sw
-rw-rw-r-- 1 sokoloff sokoloff 5292000 дек 30 17:05 from_wv.sw

comment:7 by Alex, 6 years ago

Also, the program skips the first 4 bytes.

[sokoloff@sokoloff-home bug]$ hexdump from_wav.sw | head -n 1
0000000 4038 4038 f69a f69a b6fa b6fa 4d7c 4d7c
[sokoloff@sokoloff-home bug]$ hexdump from_ape.sw | head -n 1
0000000 f69a f69a b6fa b6fa 4d7c 4d7c 3d5f 3d5f

in reply to:  6 comment:8 by Carl Eugen Hoyos, 6 years ago

Replying to sokoloff:

Since this is not generally true, it makes sense to do such tests with raw pcm (.sw).

No problem.

You cut the important part of my post...

comment:9 by Carl Eugen Hoyos, 6 years ago

Keywords: regression added
Priority: normalimportant
Reproduced by developer: set

This can be considered a regression, related to ticket #1675 and the following commits (in no particular order):
77d89a5b160127b5b60ba0310cb999077a22525d (not fixed)
91d4cfb8127f1de6c4ad173a30fffe584700046d (fixed)
8cd472d3f947a6233e7dc628f0dc71c74e62413a (kind of fixed)
4818388e6c219bf48fa93bf76ee6ab3dc3fb1e8f (not fixed)

Last edited 6 years ago by Carl Eugen Hoyos (previous) (diff)

comment:10 by Elon Musk, 5 years ago

Workaround is to use -max_samples all.

Note: See TracTickets for help on using tickets.