diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | gst/matroska/matroska-demux.c | 3 | ||||
-rw-r--r-- | gst/matroska/matroska-ids.h | 1 | ||||
-rw-r--r-- | gst/matroska/matroska-mux.c | 9 |
4 files changed, 18 insertions, 4 deletions
@@ -1,5 +1,14 @@ 2008-02-28 David Schleef <ds@schleef.org> + * 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. + +2008-02-28 David Schleef <ds@schleef.org> + * gst/avi/gstavimux.c: Add Dirac encoding 2008-02-28 Wim Taymans <wim.taymans@collabora.co.uk> 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; |