summaryrefslogtreecommitdiff
path: root/sys/mfc
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-12-24 16:02:45 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-12-31 15:59:07 +0100
commit21258a52cdf4540e80139bffa93f46fd3b2e679c (patch)
tree84a0eefa2e25991256214fb5ceae04fa39cca79d /sys/mfc
parentfbf42806dc17d8d0dc97e82b47c5ad9846ed0b4c (diff)
downloadgstreamer-plugins-bad-21258a52cdf4540e80139bffa93f46fd3b2e679c.tar.gz
mfc: Add initial MPEG4 support
Diffstat (limited to 'sys/mfc')
-rw-r--r--sys/mfc/gstmfcdec.c18
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);
}