diff options
author | Tim-Philipp Müller <tim@centricular.net> | 2006-05-23 13:44:11 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2006-05-23 13:44:11 +0000 |
commit | 4e012bac91ced714fee133f527a802acb9ce4486 (patch) | |
tree | 8bbe658f8ea9c5086f711da9b0232fe6c78ad282 /gst/matroska/matroska-ids.h | |
parent | 3ba744c2aa53e7b4e17d8e27c9bc6398fd36341c (diff) |
gst/matroska/: Add support for muxing/demuxing theora video (#342448; too bad none of the usual linux players can act...
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(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:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init),
(gst_matroska_mux_video_pad_setcaps),
(xiph3_streamheader_to_codecdata),
(vorbis_streamheader_to_codecdata),
(theora_streamheader_to_codecdata),
(gst_matroska_mux_audio_pad_setcaps),
(gst_matroska_mux_write_data):
Add support for muxing/demuxing theora video (#342448; too bad
none of the usual linux players can actually play this). Playback
in GStreamer will require additional changes to theoradec in -base.
Refactor streamheaders <=> CodecPrivateData code a bit; some small
cleanups.
Diffstat (limited to 'gst/matroska/matroska-ids.h')
-rw-r--r-- | gst/matroska/matroska-ids.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h index 4a00ba1b..0016b654 100644 --- a/gst/matroska/matroska-ids.h +++ b/gst/matroska/matroska-ids.h @@ -144,6 +144,7 @@ #define GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO2 "V_REAL/RV20" #define GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO3 "V_REAL/RV30" #define GST_MATROSKA_CODEC_ID_VIDEO_REALVIDEO4 "V_REAL/RV40" +#define GST_MATROSKA_CODEC_ID_VIDEO_THEORA "V_THEORA" /* TODO: Quicktime */ #define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L1 "A_MPEG/L1" @@ -247,6 +248,15 @@ typedef struct _GstMatroskaTrackContext { guint64 pos; gboolean set_discont; /* TRUE = set DISCONT flag on next buffer */ + + /* Special flag for Vorbis and Theora, for which we need to send + * codec_priv first before sending any data, and just testing + * for time == 0 is not enough to detect that. Used by demuxer */ + gboolean send_xiph_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; } GstMatroskaTrackContext; typedef struct _GstMatroskaTrackVideoContext { @@ -263,11 +273,6 @@ typedef struct _GstMatroskaTrackAudioContext { GstMatroskaTrackContext parent; guint samplerate, channels, bitdepth; - - /* Special flag for Vorbis, we need to send codec_priv first before - * sending any data, and just testing for time == 0 is not enough - * to detect that */ - gboolean first_frame; } GstMatroskaTrackAudioContext; typedef struct _GstMatroskaTrackComplexContext { |