gstreamer/gst
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
..
alpha alpha: Cleanup using G_DECLARE_FINAL_TYPE 2019-12-28 04:05:13 +00:00
apetag Remove autotools build system 2019-10-14 11:04:18 +01:00
audiofx Remove autotools build system 2019-10-14 11:04:18 +01:00
audioparsers flacparse: fix broken reordering of flac metadata 2020-03-03 08:03:32 +00:00
auparse Remove autotools build system 2019-10-14 11:04:18 +01:00
autodetect Remove autotools build system 2019-10-14 11:04:18 +01:00
avi avimux: Add support for >2 raw audio channels 2020-01-19 12:09:38 +00:00
cutter Remove autotools build system 2019-10-14 11:04:18 +01:00
debugutils good: Avoid usage of deprecated API 2019-10-16 07:46:58 +00:00
deinterlace Remove autotools build system 2019-10-14 11:04:18 +01:00
dtmf Remove autotools build system 2019-10-14 11:04:18 +01:00
effectv Remove autotools build system 2019-10-14 11:04:18 +01:00
equalizer Remove autotools build system 2019-10-14 11:04:18 +01:00
flv flvmux: Support rollover in timestamp 2020-02-18 18:39:31 +09:00
flx Remove autotools build system 2019-10-14 11:04:18 +01:00
goom Remove autotools build system 2019-10-14 11:04:18 +01:00
goom2k1 Remove autotools build system 2019-10-14 11:04:18 +01:00
icydemux Remove autotools build system 2019-10-14 11:04:18 +01:00
id3demux Remove autotools build system 2019-10-14 11:04:18 +01:00
imagefreeze imagefreeze: Add support for replacing the output buffer 2020-01-11 08:04:43 +00:00
interleave Remove autotools build system 2019-10-14 11:04:18 +01:00
isomp4 qtdemux: Try to infer useful header values for raw audio if the sound sample descriptions contain zero values 2020-02-28 13:52:40 +00:00
law Remove autotools build system 2019-10-14 11:04:18 +01:00
level Remove autotools build system 2019-10-14 11:04:18 +01:00
matroska matroska-mux: Fix incorrect rounding of timestamps 2020-02-21 12:49:28 +00:00
monoscope Remove autotools build system 2019-10-14 11:04:18 +01:00
multifile splitmuxsink: Include actual sink element in the fragment-opened/closed messages 2020-01-29 13:30:00 +00:00
multipart good: use of g_value_dup_string 2019-12-20 09:30:26 +00:00
replaygain Remove autotools build system 2019-10-14 11:04:18 +01:00
rtp rtph265pay: TID for NALU type 48 was always set to 7 2020-01-13 15:41:30 +01:00
rtpmanager rtpjitterbuffer: Don't use glib format modifiers with sscanf 2020-02-26 19:05:24 +05:30
rtsp rtspsrc: remove useless function calls 2020-02-20 08:27:35 +00:00
shapewipe Remove autotools build system 2019-10-14 11:04:18 +01:00
smpte Remove autotools build system 2019-10-14 11:04:18 +01:00
spectrum Remove autotools build system 2019-10-14 11:04:18 +01:00
udp Don't pass default GLib marshallers for signals 2019-11-17 15:32:30 +00:00
videobox Remove autotools build system 2019-10-14 11:04:18 +01:00
videocrop videocrop: allow properties to be animated by GstController 2020-01-03 15:16:02 +01:00
videofilter Remove autotools build system 2019-10-14 11:04:18 +01:00
videomixer Remove autotools build system 2019-10-14 11:04:18 +01:00
wavenc wavenc: Fix writing of the channel mask with >2 channels 2020-01-13 19:50:06 +00:00
wavparse Remove autotools build system 2019-10-14 11:04:18 +01:00
y4m Remove autotools build system 2019-10-14 11:04:18 +01:00
meson.build meson: Add feature options for all plugins 2018-07-27 18:42:54 +05:30