diff options
author | Stefan Kost <ensonic@users.sourceforge.net> | 2006-07-18 19:59:01 +0000 |
---|---|---|
committer | Stefan Kost <ensonic@users.sourceforge.net> | 2006-07-18 19:59:01 +0000 |
commit | 6ae650d71326a44892b3f34d40b3f1d5eb4c8308 (patch) | |
tree | dbe3eb2b47597e22a7d5d19b804f415069890536 /gst/avi/gstavimux.c | |
parent | 278b4259bbf95b1e96932849048e2f4b3cdd9ff3 (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.c | 24 |
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) |