summaryrefslogtreecommitdiffstats
path: root/gst/matroska/matroska-ids.h
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.net>2006-05-23 13:44:11 +0000
committerTim-Philipp Müller <tim@centricular.net>2006-05-23 13:44:11 +0000
commit4e012bac91ced714fee133f527a802acb9ce4486 (patch)
tree8bbe658f8ea9c5086f711da9b0232fe6c78ad282 /gst/matroska/matroska-ids.h
parent3ba744c2aa53e7b4e17d8e27c9bc6398fd36341c (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.h15
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 {