summaryrefslogtreecommitdiffstats
path: root/gst/matroska
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2008-02-29 06:18:55 +0000
committerDavid Schleef <ds@schleef.org>2008-02-29 06:18:55 +0000
commita2104e099424d9f00ad7f0df0671ae820e499d0f (patch)
treeb6ca630be0e3bbbcf3650bbc20aa891ff3121dee /gst/matroska
parent1a90a6c4dc6a220a50e762915639ac68bf1f2b46 (diff)
gst/matroska/: Fix Dirac mapping. I had previously added a VfW-type mapping, but it looks like Dirac will get a nati...
Original commit message from CVS: * gst/matroska/matroska-demux.c: * gst/matroska/matroska-ids.h: * gst/matroska/matroska-mux.c: Fix Dirac mapping. I had previously added a VfW-type mapping, but it looks like Dirac will get a native Matroska mapping, and this is the most likely method.
Diffstat (limited to 'gst/matroska')
-rw-r--r--gst/matroska/matroska-demux.c3
-rw-r--r--gst/matroska/matroska-ids.h1
-rw-r--r--gst/matroska/matroska-mux.c9
3 files changed, 9 insertions, 4 deletions
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 8feaa387..7f0f48f8 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -3652,6 +3652,9 @@ gst_matroska_demux_video_caps (GstMatroskaTrackVideoContext *
} else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_THEORA)) {
caps = gst_caps_new_simple ("video/x-theora", NULL);
context->send_xiph_headers = TRUE;
+ } else if (!strcmp (codec_id, GST_MATROSKA_CODEC_ID_VIDEO_DIRAC)) {
+ caps = gst_caps_new_simple ("video/x-dirac", NULL);
+ context->send_xiph_headers = FALSE;
} else {
GST_WARNING ("Unknown codec '%s', cannot build Caps", codec_id);
return NULL;
diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h
index 4233d300..6630dae4 100644
--- a/gst/matroska/matroska-ids.h
+++ b/gst/matroska/matroska-ids.h
@@ -161,6 +161,7 @@
#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"
+#define GST_MATROSKA_CODEC_ID_VIDEO_DIRAC "V_DIRAC"
/* TODO: Quicktime */
#define GST_MATROSKA_CODEC_ID_AUDIO_MPEG1_L1 "A_MPEG/L1"
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index 111f5c5f..d1794e52 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -592,8 +592,7 @@ skip_details:
||!strcmp (mimetype, "video/x-huffyuv")
|| !strcmp (mimetype, "video/x-divx")
|| !strcmp (mimetype, "video/x-dv")
- || !strcmp (mimetype, "video/x-h263")
- || !strcmp (mimetype, "video/x-dirac")) {
+ || !strcmp (mimetype, "video/x-h263")) {
BITMAPINFOHEADER *bih;
const GValue *codec_data;
gint size = sizeof (BITMAPINFOHEADER);
@@ -630,8 +629,6 @@ skip_details:
GST_WRITE_UINT32_LE (&bih->bi_compression, GST_STR_FOURCC ("DX50"));
break;
}
- } else if (!strcmp (mimetype, "video/x-dirac")) {
- GST_WRITE_UINT32_LE (&bih->bi_compression, GST_STR_FOURCC ("drac"));
}
/* process codec private/initialization data, if any */
@@ -701,6 +698,10 @@ skip_details:
return FALSE;
}
return TRUE;
+ } else if (!strcmp (mimetype, "video/x-dirac")) {
+ context->codec_id = g_strdup (GST_MATROSKA_CODEC_ID_VIDEO_DIRAC);
+
+ return TRUE;
} else if (!strcmp (mimetype, "video/mpeg")) {
gint mpegversion;