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.
This commit is contained in:
David Schleef 2008-02-29 06:18:55 +00:00
parent 1a90a6c4dc
commit a2104e0994
4 changed files with 18 additions and 4 deletions

View file

@ -1,3 +1,12 @@
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

View file

@ -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;

View file

@ -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"

View file

@ -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 */
@ -700,6 +697,10 @@ skip_details:
("theora stream headers missing or malformed"));
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;