Opened 12 years ago

Closed 12 years ago

#727 closed defect (fixed)

Remuxing flac produces not strictly compliant files

Reported by: Carl Eugen Hoyos Owned by:
Priority: important Component: undetermined
Version: git-master Keywords: flac
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

(bug 119)
Regression since r22605 / 66061a12 (Add VorbisComment writing to FLAC files)

$ make fate-acodec-flac
$ ./ffmpeg -i tests/data/acodec/flac.flac -acodec copy out.mka
ffmpeg version N-35607-g5b98ea1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Dec 10 2011 01:39:22 with gcc 4.5.3
  configuration: --cc=/usr/local/gcc-4.5.3/bin/gcc
  libavutil    51. 31. 0 / 51. 31. 0
  libavcodec   53. 42. 0 / 53. 42. 0
  libavformat  53. 24. 0 / 53. 24. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 52. 0 /  2. 52. 0
  libswscale    2.  1. 0 /  2.  1. 0
[flac @ 0x13a57a0] max_analyze_duration 5000000 reached at 5015510
Input #0, flac, from 'tests/data/acodec/flac.flac':
  Duration: 00:00:06.00, bitrate: 482 kb/s
    Stream #0:0: Audio: flac, 44100 Hz, stereo, s16
Output #0, matroska, to 'out.mka':
  Metadata:
    encoder         : Lavf53.24.0
    Stream #0:0: Audio: flac, 44100 Hz, stereo
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=     347kB time=00:00:06.00 bitrate= 473.4kbits/s
video:0kB audio:345kB global headers:0kB muxing overhead 0.617560%
$ ./ffmpeg -i out.mka -acodec copy out.flac
ffmpeg version N-35607-g5b98ea1, Copyright (c) 2000-2011 the FFmpeg developers
  built on Dec 10 2011 01:39:22 with gcc 4.5.3
  configuration: --cc=/usr/local/gcc-4.5.3/bin/gcc
  libavutil    51. 31. 0 / 51. 31. 0
  libavcodec   53. 42. 0 / 53. 42. 0
  libavformat  53. 24. 0 / 53. 24. 0
  libavdevice  53.  4. 0 / 53.  4. 0
  libavfilter   2. 52. 0 /  2. 52. 0
  libswscale    2.  1. 0 /  2.  1. 0
Input #0, matroska,webm, from 'out.mka':
  Metadata:
    ENCODER         : Lavf53.24.0
  Duration: 00:00:06.00, start: 0.000000, bitrate: 474 kb/s
    Stream #0:0: Audio: flac, 44100 Hz, stereo, s16 (default)
Output #0, flac, to 'out.flac':
  Metadata:
    encoder         : Lavf53.24.0
    Stream #0:0: Audio: flac, 44100 Hz, stereo (default)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
size=     353kB time=00:00:06.00 bitrate= 481.5kbits/s
video:0kB audio:345kB global headers:0kB muxing overhead 2.344577%
$ flac -d out.flac

flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

out.flac: *** Got error code 0:FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC


out.flac: ERROR while decoding data
          state = FLAC__STREAM_DECODER_READ_FRAME
$ git checkout 64f6e357fdf955e67017dfd34ed06b1478b403e2

...

$ ./ffmpeg -i out.mka -acodec copy outold.flac
FFmpeg version git-64f6e35, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 10 2011 02:00:01 with gcc 4.5.3
  configuration: --cc=/usr/local/gcc-4.5.3/bin/gcc
  libavutil     50.12. 0 / 50.12. 0
  libavcodec    52.59. 0 / 52.59. 0
  libavformat   52.56. 0 / 52.56. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.10. 0 /  0.10. 0
[matroska @ 0x10f43d0]Estimating duration from bitrate, this may be inaccurate
Input #0, matroska, from 'out.mka':
  Duration: 00:00:00.00, start: 0.000000, bitrate: N/A
    Stream #0.0: Audio: flac, 44100 Hz, 2 channels, s16
Output #0, flac, to 'outold.flac':
  Metadata:
    encoder         : Lavf52.56.0
    Stream #0.0: Audio: flac, 44100 Hz, 2 channels
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
size=     345kB time=10000000000.00 bitrate=   0.0kbits/s
video:0kB audio:345kB global headers:0kB muxing overhead 0.011887%
$ flac -d outold.flac

flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007  Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

outold.flac: done

Change History (1)

comment:1 by Carl Eugen Hoyos, 12 years ago

Resolution: fixed
Status: newclosed

Fixed by Justin.

Note: See TracTickets for help on using tickets.