plugin: encode: set allowed_sinkpad_caps to empty.

We now set encode->allowed_sinkpad_caps to NULL if we fail to get
surfaces formats. This causes two problem:
1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
which changes its behavior. It will use encode's sinkpad template
rather than empty caps to do the clip job. So even if we fail to set
allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
valid caps.
2. We should just set the allowed_sinkpad_caps once. The NULL point
make the ensure_allowed_sinkpad_caps function works again and again.
This commit is contained in:
He Junyan 2019-12-22 14:35:18 +08:00
parent 5ad67ea666
commit 3355cd4691

View file

@ -441,6 +441,9 @@ ensure_allowed_sinkpad_caps (GstVaapiEncode * encode)
ret = TRUE;
bail:
if (!encode->allowed_sinkpad_caps)
encode->allowed_sinkpad_caps = gst_caps_new_empty ();
if (out_caps)
gst_caps_unref (out_caps);
if (raw_caps)