summaryrefslogtreecommitdiff
path: root/omx
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2013-03-01 12:18:08 +0100
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2013-03-01 12:18:08 +0100
commiteef92abf2897d398d7a5cf21f187e152c05acacf (patch)
tree7a302cf82916a7b0b6b2fbd0f978cacd88b95edc /omx
parent42937eaea00bc88b18222028f1809a44cdbdc1d4 (diff)
downloadgst-omx-eef92abf2897d398d7a5cf21f187e152c05acacf.tar.gz
omxvideoenc: Set the coding type in the subclasses to the specific codec
Diffstat (limited to 'omx')
-rw-r--r--omx/gstomxh263enc.c7
-rw-r--r--omx/gstomxh264enc.c7
-rw-r--r--omx/gstomxmpeg4videoenc.c7
3 files changed, 21 insertions, 0 deletions
diff --git a/omx/gstomxh263enc.c b/omx/gstomxh263enc.c
index a1dce09..d7a2d20 100644
--- a/omx/gstomxh263enc.c
+++ b/omx/gstomxh263enc.c
@@ -81,12 +81,19 @@ gst_omx_h263_enc_set_format (GstOMXVideoEnc * enc, GstOMXPort * port,
{
GstOMXH263Enc *self = GST_OMX_H263_ENC (enc);
GstCaps *peercaps;
+ OMX_PARAM_PORTDEFINITIONTYPE port_def;
OMX_VIDEO_H263PROFILETYPE profile = OMX_VIDEO_H263ProfileBaseline;
OMX_VIDEO_H263LEVELTYPE level = OMX_VIDEO_H263Level10;
OMX_VIDEO_PARAM_PROFILELEVELTYPE param;
OMX_ERRORTYPE err;
guint profile_id, level_id;
+ gst_omx_port_get_port_definition (port, &port_def);
+ port_def.format.video.eCompressionFormat = OMX_VIDEO_CodingH263;
+ err = gst_omx_port_update_port_definition (port, &port_def);
+ if (err != OMX_ErrorNone)
+ return FALSE;
+
peercaps = gst_pad_peer_query_caps (GST_VIDEO_ENCODER_SRC_PAD (enc),
gst_pad_get_pad_template_caps (GST_VIDEO_ENCODER_SRC_PAD (enc)));
if (peercaps) {
diff --git a/omx/gstomxh264enc.c b/omx/gstomxh264enc.c
index 18ecdbc..d503648 100644
--- a/omx/gstomxh264enc.c
+++ b/omx/gstomxh264enc.c
@@ -85,12 +85,19 @@ gst_omx_h264_enc_set_format (GstOMXVideoEnc * enc, GstOMXPort * port,
{
GstOMXH264Enc *self = GST_OMX_H264_ENC (enc);
GstCaps *peercaps;
+ OMX_PARAM_PORTDEFINITIONTYPE port_def;
OMX_VIDEO_AVCPROFILETYPE profile = OMX_VIDEO_AVCProfileBaseline;
OMX_VIDEO_AVCLEVELTYPE level = OMX_VIDEO_AVCLevel11;
OMX_VIDEO_PARAM_PROFILELEVELTYPE param;
OMX_ERRORTYPE err;
const gchar *profile_string, *level_string;
+ gst_omx_port_get_port_definition (port, &port_def);
+ port_def.format.video.eCompressionFormat = OMX_VIDEO_CodingAVC;
+ err = gst_omx_port_update_port_definition (port, &port_def);
+ if (err != OMX_ErrorNone)
+ return FALSE;
+
peercaps = gst_pad_peer_query_caps (GST_VIDEO_ENCODER_SRC_PAD (enc),
gst_pad_get_pad_template_caps (GST_VIDEO_ENCODER_SRC_PAD (enc)));
if (peercaps) {
diff --git a/omx/gstomxmpeg4videoenc.c b/omx/gstomxmpeg4videoenc.c
index c394774..9ed91b2 100644
--- a/omx/gstomxmpeg4videoenc.c
+++ b/omx/gstomxmpeg4videoenc.c
@@ -85,12 +85,19 @@ gst_omx_mpeg4_video_enc_set_format (GstOMXVideoEnc * enc, GstOMXPort * port,
{
GstOMXMPEG4VideoEnc *self = GST_OMX_MPEG4_VIDEO_ENC (enc);
GstCaps *peercaps, *intersection;
+ OMX_PARAM_PORTDEFINITIONTYPE port_def;
OMX_VIDEO_MPEG4PROFILETYPE profile = OMX_VIDEO_MPEG4ProfileSimple;
OMX_VIDEO_MPEG4LEVELTYPE level = OMX_VIDEO_MPEG4Level1;
OMX_VIDEO_PARAM_PROFILELEVELTYPE param;
OMX_ERRORTYPE err;
const gchar *profile_string, *level_string;
+ gst_omx_port_get_port_definition (port, &port_def);
+ port_def.format.video.eCompressionFormat = OMX_VIDEO_CodingMPEG4;
+ err = gst_omx_port_update_port_definition (port, &port_def);
+ if (err != OMX_ErrorNone)
+ return FALSE;
+
peercaps = gst_pad_peer_query_caps (GST_VIDEO_ENCODER_SRC_PAD (enc), NULL);
if (peercaps) {
GstStructure *s;