gstreamer/gst/audioparsers
Jennifer Berringer 3287f1cb3f flacparse: fix broken reordering of flac metadata
Each FLAC metadata block starts with a flag denoting whether it is the
last metadata block. The existing flacparse code moves any existing
VORBISCOMMENT block to immediately follow the STREAMINFO block without
changing any block's last-metadata-block flag. If no VORBISCOMMENT block
exists, it created one with the last-metadata-block flag set to true.
This results in gstflacdec sometimes giving bad headers to libflac when
trying to play perfectly valid FLAC files depending on the file's
metadata ordering. Depending on the contents of the other metadata
blocks, current versions of libflac may or may not return
FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER when given this broken
metadata. This is most noticeable with files that have a large cover art
image attached where VORBISCOMMENT is the very last metadata block with
no PADDING afterwards.

This patch changes that behavior so that:

1. For FLAC files that already have a VORBISCOMMENT block, the metadata
   order is preserved.
2. For FLAC files that do not have a VORBISCOMMENT block, the generated
   dummy VORBISCOMMENT is placed immediately after STREAMINFO and
   inherits the last-metadata-block flag from STREAMINFO.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/484
2020-03-03 08:03:32 +00:00
..
gstaacparse.c aacparse: fix wrong offset of adts channel 2019-11-18 01:06:41 +00:00
gstaacparse.h aacparse: improve channel/rate handling 2016-09-06 15:09:21 +01:00
gstac3parse.c audioparsers: add back segment clipping to parsers that have lost it 2019-06-24 14:40:58 +03:00
gstac3parse.h ac3parse: Post AUDIO_CODEC tag 2013-12-16 10:03:05 +01:00
gstamrparse.c audioparsers: add back segment clipping to parsers that have lost it 2019-06-24 14:40:58 +03:00
gstamrparse.h docs: remove outdated doc strings 2015-07-07 17:12:02 +02:00
gstdcaparse.c audioparsers: add back segment clipping to parsers that have lost it 2019-06-24 14:40:58 +03:00
gstdcaparse.h dcaparse: Post AUDIO_CODEC tag 2013-12-16 10:03:05 +01:00
gstflacparse.c flacparse: fix broken reordering of flac metadata 2020-03-03 08:03:32 +00:00
gstflacparse.h Revert "flacparse: fix header rewriting being ignored" 2017-12-07 11:17:32 +00:00
gstmpegaudioparse.c docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstmpegaudioparse.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstsbcparse.c audioparsers: add back segment clipping to parsers that have lost it 2019-06-24 14:40:58 +03:00
gstsbcparse.h sbcparse: Fix up values for allocation enumeration. 2017-03-02 11:29:25 -05:00
gstwavpackparse.c audioparsers: add back segment clipping to parsers that have lost it 2019-06-24 14:40:58 +03:00
gstwavpackparse.h wavpackparse: Post AUDIO_CODEC tag 2013-12-16 10:03:06 +01:00
meson.build doc: Port documentation to hotdoc 2019-05-13 11:34:56 -04:00
plugin.c audioparsers: add SBC audio parser 2013-01-15 17:45:30 +00:00