summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Arutyunyan <arutyunyan.roman@gmail.com>2013-07-01 15:48:47 +0200
committerJosep Torra <n770galaxy@gmail.com>2013-09-28 14:19:40 +0200
commit2e676dda3b96e58f017fd7b7db0f1a7a4b186141 (patch)
treefee275bb3a3ba60fa564fc4a16f2a0bc689c92b1
parentef5e04c6de1a612b2a61b43da5353522e76e514f (diff)
downloadgst-omx-2e676dda3b96e58f017fd7b7db0f1a7a4b186141.tar.gz
gstomxvideoenc: Set bitrate in setcaps
Otherwise it gets lost whenever we configure new caps https://bugzilla.gnome.org/show_bug.cgi?id=698049
-rw-r--r--omx/gstomxvideoenc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c
index 51a4a77..6690d85 100644
--- a/omx/gstomxvideoenc.c
+++ b/omx/gstomxvideoenc.c
@@ -1247,6 +1247,21 @@ gst_omx_video_enc_set_format (GstVideoEncoder * encoder,
NULL) != OMX_ErrorNone)
return FALSE;
+ if (self->target_bitrate != 0xffffffff) {
+ OMX_VIDEO_PARAM_BITRATETYPE config;
+ OMX_ERRORTYPE err;
+
+ GST_OMX_INIT_STRUCT (&config);
+ config.nPortIndex = self->enc_out_port->index;
+ config.nTargetBitrate = self->target_bitrate;
+ config.eControlRate = self->control_rate;
+ err = gst_omx_component_set_parameter (self->enc,
+ OMX_IndexParamVideoBitrate, &config);
+ if (err != OMX_ErrorNone)
+ GST_ERROR_OBJECT (self, "Failed to set bitrate parameter: %s (0x%08x)",
+ gst_omx_error_to_string (err), err);
+ }
+
GST_DEBUG_OBJECT (self, "Enabling component");
if (needs_disable) {
if (gst_omx_port_set_enabled (self->enc_in_port, TRUE) != OMX_ErrorNone)