summaryrefslogtreecommitdiffstats
path: root/gst/avi/gstavimux.c
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2006-07-18 19:59:01 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2006-07-18 19:59:01 +0000
commit6ae650d71326a44892b3f34d40b3f1d5eb4c8308 (patch)
treedbe3eb2b47597e22a7d5d19b804f415069890536 /gst/avi/gstavimux.c
parent278b4259bbf95b1e96932849048e2f4b3cdd9ff3 (diff)
gst/avi/gstavimux.c: Respect mpegversion for "video/mpeg" and give message in case of unhandled versions.
Original commit message from CVS: * gst/avi/gstavimux.c: (gst_avi_mux_vidsink_set_caps): Respect mpegversion for "video/mpeg" and give message in case of unhandled versions.
Diffstat (limited to 'gst/avi/gstavimux.c')
-rw-r--r--gst/avi/gstavimux.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c
index a7ed7ae6..82e339b0 100644
--- a/gst/avi/gstavimux.c
+++ b/gst/avi/gstavimux.c
@@ -434,13 +434,35 @@ gst_avi_mux_vidsink_set_caps (GstPad * pad, GstCaps * vscaps)
case 43:
avimux->vids.compression = GST_MAKE_FOURCC ('M', 'P', '4', '3');
break;
+ default:
+ GST_INFO ("unhandled msmpegversion : %d, fall back to fourcc=MPEG",
+ msmpegversion);
+ avimux->vids.compression = GST_MAKE_FOURCC ('M', 'P', 'E', 'G');
+ break;
}
} else if (!strcmp (mimetype, "video/x-dv")) {
avimux->vids.compression = GST_MAKE_FOURCC ('D', 'V', 'S', 'D');
} else if (!strcmp (mimetype, "video/x-h263")) {
avimux->vids.compression = GST_MAKE_FOURCC ('H', '2', '6', '3');
} else if (!strcmp (mimetype, "video/mpeg")) {
- avimux->vids.compression = GST_MAKE_FOURCC ('M', 'P', 'E', 'G');
+ gint mpegversion;
+
+ gst_structure_get_int (structure, "mpegversion", &mpegversion);
+
+ switch (mpegversion) {
+ case 2:
+ avimux->vids.compression = GST_MAKE_FOURCC ('M', 'P', 'G', '2');
+ break;
+ case 4:
+ /* mplayer/ffmpeg might not work with DIVX, but with FMP4 */
+ avimux->vids.compression = GST_MAKE_FOURCC ('D', 'I', 'V', 'X');
+ break;
+ default:
+ GST_INFO ("unhandled mpegversion : %d, fall back to fourcc=MPEG",
+ mpegversion);
+ avimux->vids.compression = GST_MAKE_FOURCC ('M', 'P', 'E', 'G');
+ break;
+ }
}
if (!avimux->vids.compression)