From a0fa3b2917891bc36e3c186bc2d5389233571331 Mon Sep 17 00:00:00 2001 From: Tim-Philipp Müller Date: Mon, 4 Sep 2006 15:06:25 +0000 Subject: gst/matroska/: not perfect yet though, needs some tweaking in flacdec; also, seeking could be better. Original commit message from CVS: * gst/matroska/matroska-demux.c: (gst_matroska_demux_push_hdr_buf), (gst_matroska_demux_push_flac_codec_priv_data), (gst_matroska_demux_push_xiph_codec_priv_data), (gst_matroska_demux_parse_blockgroup_or_simpleblock), (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps): * gst/matroska/matroska-ids.h: Add basic FLAC support (#311586), not perfect yet though, needs some tweaking in flacdec; also, seeking could be better. Do better bounds checking when deserialising vorbis stream headers to make sure we don't read beyond the end of the buffer on bad input. --- gst/matroska/matroska-ids.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gst/matroska/matroska-ids.h') diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h index cfc7b80d..0c05974b 100644 --- a/gst/matroska/matroska-ids.h +++ b/gst/matroska/matroska-ids.h @@ -156,6 +156,7 @@ #define GST_MATROSKA_CODEC_ID_AUDIO_AC3 "A_AC3" #define GST_MATROSKA_CODEC_ID_AUDIO_DTS "A_DTS" #define GST_MATROSKA_CODEC_ID_AUDIO_VORBIS "A_VORBIS" +#define GST_MATROSKA_CODEC_ID_AUDIO_FLAC "A_FLAC" #define GST_MATROSKA_CODEC_ID_AUDIO_ACM "A_MS/ACM" #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG2 "A_AAC/MPEG2/" #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG4 "A_AAC/MPEG4/" @@ -254,6 +255,11 @@ typedef struct _GstMatroskaTrackContext { * for time == 0 is not enough to detect that. Used by demuxer */ gboolean send_xiph_headers; + /* Special flag for Flac, for which we need to reconstruct the header + * buffer from the codec_priv data before sending any data, and just + * testing for time == 0 is not enough to detect that. Used by demuxer */ + gboolean send_flac_headers; + /* Special counter for muxer to skip the first N vorbis/theora headers - * they are put into codec private data, not muxed into the stream */ guint xiph_headers_to_skip; -- cgit