vaapidecode: Don't renegotiate on every flush

If caps don't actually change, don't update the
decoder and don't set the do_renego flag forcing
downstream renegotiation

https://bugzilla.gnome.org/show_bug.cgi?id=781142
This commit is contained in:
Jan Schmidt 2017-04-08 02:05:21 +10:00
parent bae56fe0c2
commit ebca86dcc7

View file

@ -960,10 +960,12 @@ gst_vaapidecode_reset (GstVaapiDecode * decode, GstCaps * caps,
decode->current_frame_size = 0;
if (decode->decoder) {
if (gst_vaapi_decoder_update_caps (decode->decoder, caps)) {
g_atomic_int_set (&decode->do_renego, TRUE);
if (!force_reset)
return TRUE;
if (!gst_caps_is_equal (caps, gst_vaapi_decoder_get_caps (decode->decoder))) {
if (gst_vaapi_decoder_update_caps (decode->decoder, caps)) {
g_atomic_int_set (&decode->do_renego, TRUE);
if (!force_reset)
return TRUE;
}
}
return gst_vaapi_decoder_reset (decode->decoder);
}