};
static void
+gst_vaapi_decoder_mpeg2_clear_buffer(GstVaapiDecoder *base)
+{
+ GstVaapiDecoderMpeg2* const decoder = GST_VAAPI_DECODER_MPEG2(base);
+ GstVaapiDecoderMpeg2Private * const priv = decoder->priv;
+
+ priv->closed_gop = FALSE;
+ priv->broken_link = FALSE;
+
+ gst_vaapi_picture_replace(&priv->current_picture, NULL);
+
+ pts_init(&priv->tsg);
+ pts_set_framerate(&priv->tsg, priv->fps_n, priv->fps_d);
+
+ if (priv->dpb) {
+ gst_vaapi_dpb_flush(priv->dpb);
+ }
+
+ if (priv->adapter) {
+ gst_adapter_clear(priv->adapter);
+ }
+}
+
+static void
gst_vaapi_decoder_mpeg2_close(GstVaapiDecoderMpeg2 *decoder)
{
GstVaapiDecoderMpeg2Private * const priv = decoder->priv;
object_class->constructed = gst_vaapi_decoder_mpeg2_constructed;
decoder_class->decode = gst_vaapi_decoder_mpeg2_decode;
+ decoder_class->clear_buffer = gst_vaapi_decoder_mpeg2_clear_buffer;
}
static void