From f7a33f2fdc71c54682c77cda8feeb7cffd8d4511 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Wed, 24 Oct 2012 09:05:06 +0100 Subject: [PATCH] ducatih264enc: force inter-interval to 1 for low delay case This is a setup requirement of the ducati encoder. --- src/gstducatih264enc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gstducatih264enc.c b/src/gstducatih264enc.c index 4df4516..d7b62d9 100644 --- a/src/gstducatih264enc.c +++ b/src/gstducatih264enc.c @@ -592,6 +592,7 @@ gst_ducati_h264enc_configure (GstDucatiVidEnc * videnc) const char *s; const GstVideoState *state; GstCaps *caps; + int inter_interval; ret = GST_DUCATIVIDENC_CLASS (parent_class)->configure (videnc); if (!ret) @@ -600,13 +601,19 @@ gst_ducati_h264enc_configure (GstDucatiVidEnc * videnc) videnc->params->profile = self->profile; videnc->params->level = self->level; + inter_interval = self->inter_interval; + if (self->profile == GST_DUCATI_H264ENC_PROFILE_BASELINE) + inter_interval = 1; + else if (videnc->rate_preset == IVIDEO_LOW_DELAY) + inter_interval = 1; + params = (IH264ENC_Params *) videnc->params; /* this is the only non-base field strictly required */ params->maxIntraFrameInterval = 0x7fffffff; params->IDRFrameInterval = 1; params->numTemporalLayer = 1; params->entropyCodingMode = self->entropy_coding_mode; - videnc->params->maxInterFrameInterval = self->inter_interval; + videnc->params->maxInterFrameInterval = inter_interval; /* Dynamic params */ dynParams = (IH264ENC_DynamicParams *) videnc->dynParams; @@ -618,7 +625,7 @@ gst_ducati_h264enc_configure (GstDucatiVidEnc * videnc) dynParams->rateControlParams.qpMinI = self->qp_min_i; dynParams->rateControlParams.HRDBufferSize = self->hrd_buffer_size; dynParams->sliceCodingParams.sliceMode = self->slice_mode; - videnc->dynParams->interFrameInterval = self->inter_interval; + videnc->dynParams->interFrameInterval = inter_interval; state = gst_base_video_encoder_get_state (GST_BASE_VIDEO_ENCODER (videnc)); caps = gst_caps_new_simple ("video/x-h264", -- 2.39.2