diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-12-24 16:02:45 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-12-31 15:59:07 +0100 |
commit | 21258a52cdf4540e80139bffa93f46fd3b2e679c (patch) | |
tree | 84a0eefa2e25991256214fb5ceae04fa39cca79d /sys/mfc | |
parent | fbf42806dc17d8d0dc97e82b47c5ad9846ed0b4c (diff) | |
download | gstreamer-plugins-bad-21258a52cdf4540e80139bffa93f46fd3b2e679c.tar.gz |
mfc: Add initial MPEG4 support
Diffstat (limited to 'sys/mfc')
-rw-r--r-- | sys/mfc/gstmfcdec.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/mfc/gstmfcdec.c b/sys/mfc/gstmfcdec.c index 19e8dc73e..1dad590d6 100644 --- a/sys/mfc/gstmfcdec.c +++ b/sys/mfc/gstmfcdec.c @@ -48,7 +48,10 @@ GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_ALWAYS, GST_STATIC_CAPS ("video/x-h264, " "parsed = (boolean) true, " - "stream-format = (string) byte-stream, " "alignment = (string) au") + "stream-format = (string) byte-stream, " "alignment = (string) au; " + "video/mpeg, " + "mpegversion = (int) 4, " + "systemstream = (boolean) false") ); static GstStaticPadTemplate gst_mfc_dec_src_template = @@ -197,6 +200,19 @@ gst_mfc_dec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state) ("Failed to set codec to H264"), (NULL)); return FALSE; } + } else if (gst_structure_has_name (s, "video/mpeg")) { + gint mpegversion; + + if (!gst_structure_get_int (s, "mpegversion", &mpegversion)) + return FALSE; + if (mpegversion != 4) + return FALSE; + + if ((ret = mfc_dec_set_codec (self->context, CODEC_TYPE_MPEG4)) < 0) { + GST_ELEMENT_ERROR (self, LIBRARY, SETTINGS, + ("Failed to set codec to MPEG4"), (NULL)); + return FALSE; + } } else { g_return_val_if_reached (FALSE); } |