It is not necessary to periodically send SPS or subset SPS headers.
This is up to the upper layer (e.g. transport layer) to decide on
if/how to periodically submit those. For now, only generate new SPS
or subset SPS headers when the codec config changed.
Note: the upper layer could readily determine the config headers
(SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
https://bugzilla.gnome.org/show_bug.cgi?id=732083
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
{
GstVaapiEncSequence *sequence = NULL;
- // Submit an SPS header before every new I-frame
- if (picture->type != GST_VAAPI_PICTURE_TYPE_I)
+ /* submit an SPS header before every new I-frame, if codec config changed */
+ if (!encoder->config_changed || picture->type != GST_VAAPI_PICTURE_TYPE_I)
return TRUE;
sequence = GST_VAAPI_ENC_SEQUENCE_NEW (H264, encoder);
gst_vaapi_enc_picture_set_sequence (picture, sequence);
gst_vaapi_codec_object_replace (&sequence, NULL);
}
+
+ if (!encoder->is_mvc || encoder->view_idx > 0)
+ encoder->config_changed = FALSE;
return TRUE;
/* ERRORS */