PROP_QP_P,
PROP_QP_B,
PROP_GOP_SIZE,
- PROP_I_FRAMES,
+ PROP_IDR_INTERVAL,
PROP_B_FRAMES,
PROP_REF_FRAMES,
PROP_BITRATE,
#define DEFAULT_CABAC MFX_CODINGOPTION_UNKNOWN
#define DEFAULT_QP 0
#define DEFAULT_GOP_SIZE 30
-#define DEFAULT_I_FRAMES 0
+#define DEFAULT_IDR_INTERVAL 0
#define DEFAULT_B_FRAMES 0
#define DEFAULT_REF_FRAMES 2
#define DEFAULT_BITRATE 2000
guint qp_p;
guint qp_b;
guint gop_size;
- guint iframes;
+ guint idr_interval;
guint bframes;
guint ref_frames;
guint bitrate;
"Number of pictures within a GOP (0: unspecified)",
0, G_MAXUSHORT, DEFAULT_GOP_SIZE, (GParamFlags)
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
- g_object_class_install_property (object_class, PROP_I_FRAMES,
- g_param_spec_uint ("i-frames", "I Frames",
- "Number of I frames between IDR frames"
- "(0: every I frame is an IDR frame)",
- 0, G_MAXUSHORT, DEFAULT_I_FRAMES, (GParamFlags)
+ g_object_class_install_property (object_class, PROP_IDR_INTERVAL,
+ g_param_spec_uint ("idr-interval", "IDR interval",
+ "IDR-frame interval in terms of I-frames. "
+ "0: every I-frame is an IDR frame, "
+ "N: \"N\" I-frames are inserted between IDR-frames",
+ 0, G_MAXUSHORT, DEFAULT_IDR_INTERVAL, (GParamFlags)
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (object_class, PROP_B_FRAMES,
g_param_spec_uint ("b-frames", "B Frames",
self->qp_p = DEFAULT_QP;
self->qp_b = DEFAULT_QP;
self->gop_size = DEFAULT_GOP_SIZE;
- self->iframes = DEFAULT_I_FRAMES;
+ self->idr_interval = DEFAULT_IDR_INTERVAL;
self->bframes = DEFAULT_B_FRAMES;
self->ref_frames = DEFAULT_REF_FRAMES;
self->bitrate = DEFAULT_BITRATE;
gst_qsv_h264_enc_check_update_uint (self, &self->gop_size,
g_value_get_uint (value), FALSE);
break;
- case PROP_I_FRAMES:
- gst_qsv_h264_enc_check_update_uint (self, &self->iframes,
+ case PROP_IDR_INTERVAL:
+ gst_qsv_h264_enc_check_update_uint (self, &self->idr_interval,
g_value_get_uint (value), FALSE);
break;
case PROP_B_FRAMES:
case PROP_GOP_SIZE:
g_value_set_uint (value, self->gop_size);
break;
- case PROP_I_FRAMES:
- g_value_set_uint (value, self->iframes);
+ case PROP_IDR_INTERVAL:
+ g_value_set_uint (value, self->idr_interval);
break;
case PROP_B_FRAMES:
g_value_set_uint (value, self->bframes);
param->mfx.CodecProfile = mfx_profile;
param->mfx.GopRefDist = bframes + 1;
param->mfx.GopPicSize = self->gop_size;
- param->mfx.IdrInterval = self->iframes;
+ param->mfx.IdrInterval = self->idr_interval;
param->mfx.RateControlMethod = self->rate_control;
param->mfx.NumRefFrame = self->ref_frames;
PROP_QP_P,
PROP_QP_B,
PROP_GOP_SIZE,
- PROP_I_FRAMES,
+ PROP_IDR_INTERVAL,
PROP_B_FRAMES,
PROP_REF_FRAMES,
PROP_BITRATE,
#define DEFAULT_QP 0
#define DEFAULT_GOP_SIZE 30
-#define DEFAULT_I_FRAMES 0
+#define DEFAULT_IDR_INTERVAL 1
#define DEFAULT_B_FRAMES 0
#define DEFAULT_REF_FRAMES 2
#define DEFAULT_BITRATE 2000
guint qp_p;
guint qp_b;
guint gop_size;
- guint iframes;
+ guint idr_interval;
guint bframes;
guint ref_frames;
guint bitrate;
"Number of pictures within a GOP (0: unspecified)",
0, G_MAXUSHORT, DEFAULT_GOP_SIZE, (GParamFlags)
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
- g_object_class_install_property (object_class, PROP_I_FRAMES,
- g_param_spec_uint ("i-frames", "I Frames",
- "Number of I frames between IDR frames"
- "(0: every I frame is an IDR frame)",
- 0, G_MAXUSHORT, DEFAULT_I_FRAMES, (GParamFlags)
+ g_object_class_install_property (object_class, PROP_IDR_INTERVAL,
+ g_param_spec_uint ("idr-interval", "IDR interval",
+ "IDR-frame interval in terms of I-frames. "
+ "0: only first I-frame is is an IDR frame, "
+ "1: every I-frame is an IDR frame, "
+ "N: \"N - 1\" I-frames are inserted between IDR-frames",
+ 0, G_MAXUSHORT, DEFAULT_IDR_INTERVAL, (GParamFlags)
(G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
g_object_class_install_property (object_class, PROP_B_FRAMES,
g_param_spec_uint ("b-frames", "B Frames",
self->qp_p = DEFAULT_QP;
self->qp_b = DEFAULT_QP;
self->gop_size = DEFAULT_GOP_SIZE;
- self->iframes = DEFAULT_I_FRAMES;
+ self->idr_interval = DEFAULT_IDR_INTERVAL;
self->bframes = DEFAULT_B_FRAMES;
self->ref_frames = DEFAULT_REF_FRAMES;
self->bitrate = DEFAULT_BITRATE;
gst_qsv_h265_enc_check_update_uint (self, &self->gop_size,
g_value_get_uint (value), FALSE);
break;
- case PROP_I_FRAMES:
- gst_qsv_h265_enc_check_update_uint (self, &self->iframes,
+ case PROP_IDR_INTERVAL:
+ gst_qsv_h265_enc_check_update_uint (self, &self->idr_interval,
g_value_get_uint (value), FALSE);
break;
case PROP_B_FRAMES:
case PROP_GOP_SIZE:
g_value_set_uint (value, self->gop_size);
break;
- case PROP_I_FRAMES:
- g_value_set_uint (value, self->iframes);
+ case PROP_IDR_INTERVAL:
+ g_value_set_uint (value, self->idr_interval);
break;
case PROP_B_FRAMES:
g_value_set_uint (value, self->bframes);
param->mfx.CodecProfile = mfx_profile;
param->mfx.GopRefDist = self->bframes + 1;
param->mfx.GopPicSize = self->gop_size;
- param->mfx.IdrInterval = self->iframes;
+ param->mfx.IdrInterval = self->idr_interval;
param->mfx.RateControlMethod = self->rate_control;
param->mfx.NumRefFrame = self->ref_frames;