Gstreamer apps halt decoding FLAC files on checksum error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gst-plugins (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: gstreamer-flac
Totem, Rhythmbox, and presumably other gstreamer-utilizing applications will not make a "best effort" at decoding a FLAC file for playback if CRC fails; a moderately corrupted, but otherwise playable file, will be rendered unusable.
Steps to reproduce:
1) Find/create a FLAC file that contains a CRC error
2) Load file in Rhythmbox or Totem
3) Play file
4) Player will stop midway through the track (where the error occurs,) and pop up a dialog box saying "An error occured: Could not decode stream." A message appears on stderr:
** Message: Error: Could not decode stream.
gstflacdec.c(634): gst_flac_
CRC mismatch (2)
Suggested behavior:
4) Player skips or attempts to decode the frame for which the checksum failed; still print error to stderr.
If my understand of the way GStreamer pipelines work is correct, always ignoring checksum errors would be a Bad Thing. It would result in one of the "main features" of FLAC becoming untrue of gstreamer pipelines used to transcode it, namely, guaranteed data integrity. However, it should be somehow possible to allow for the FLAC plugin to ignore errors in certain cases.
Changed in gst-plugins: | |
status: | New → Confirmed |
It should be noted that flac123 somehow seems to skip the bad frame on the track in question. Though the gap is noticable, it is a far less disruptive behavior than stopping playback entirely.