From eef92abf2897d398d7a5cf21f187e152c05acacf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 1 Mar 2013 12:18:08 +0100 Subject: [PATCH] omxvideoenc: Set the coding type in the subclasses to the specific codec --- omx/gstomxh263enc.c | 7 +++++++ omx/gstomxh264enc.c | 7 +++++++ omx/gstomxmpeg4videoenc.c | 7 +++++++ 3 files changed, 21 insertions(+) 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; -- 2.7.4