mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
vaapidecode: decoded_info is valid at src caps update
As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps() is called, then we don't need to verify or replace it with the sinkpad info (reference state). https://bugzilla.gnome.org/show_bug.cgi?id=764316
This commit is contained in:
parent
3e97d71935
commit
737fca4ddf
1 changed files with 6 additions and 10 deletions
|
@ -240,7 +240,7 @@ gst_vaapidecode_update_src_caps (GstVaapiDecode * decode)
|
|||
GstVaapiCapsFeature feature;
|
||||
GstCapsFeatures *features = NULL;
|
||||
GstCaps *allocation_caps;
|
||||
GstVideoInfo *vi, *decoded_info;
|
||||
GstVideoInfo *vi;
|
||||
GstVideoFormat format = GST_VIDEO_FORMAT_NV12;
|
||||
GstClockTime latency;
|
||||
gint fps_d, fps_n;
|
||||
|
@ -252,13 +252,9 @@ gst_vaapidecode_update_src_caps (GstVaapiDecode * decode)
|
|||
|
||||
ref_state = decode->input_state;
|
||||
|
||||
decoded_info =
|
||||
(GST_VIDEO_INFO_FORMAT (&decode->decoded_info) !=
|
||||
GST_VIDEO_FORMAT_UNKNOWN) ? &decode->decoded_info : &ref_state->info;
|
||||
|
||||
feature =
|
||||
gst_vaapi_find_preferred_caps_feature (GST_VIDEO_DECODER_SRC_PAD (vdec),
|
||||
GST_VIDEO_INFO_FORMAT (decoded_info), &format);
|
||||
GST_VIDEO_INFO_FORMAT (&decode->decoded_info), &format);
|
||||
|
||||
if (feature == GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED)
|
||||
return FALSE;
|
||||
|
@ -305,13 +301,13 @@ gst_vaapidecode_update_src_caps (GstVaapiDecode * decode)
|
|||
|
||||
/* Allocation query is different from pad's caps */
|
||||
allocation_caps = NULL;
|
||||
if (GST_VIDEO_INFO_WIDTH (decoded_info) != width
|
||||
|| GST_VIDEO_INFO_HEIGHT (decoded_info) != height) {
|
||||
if (GST_VIDEO_INFO_WIDTH (&decode->decoded_info) != width
|
||||
|| GST_VIDEO_INFO_HEIGHT (&decode->decoded_info) != height) {
|
||||
allocation_caps = gst_caps_copy (state->caps);
|
||||
format_str = gst_video_format_to_string (format);
|
||||
gst_caps_set_simple (allocation_caps,
|
||||
"width", G_TYPE_INT, GST_VIDEO_INFO_WIDTH (decoded_info),
|
||||
"height", G_TYPE_INT, GST_VIDEO_INFO_HEIGHT (decoded_info),
|
||||
"width", G_TYPE_INT, GST_VIDEO_INFO_WIDTH (&decode->decoded_info),
|
||||
"height", G_TYPE_INT, GST_VIDEO_INFO_HEIGHT (&decode->decoded_info),
|
||||
"format", G_TYPE_STRING, format_str, NULL);
|
||||
GST_INFO_OBJECT (decode, "new alloc caps = %" GST_PTR_FORMAT,
|
||||
allocation_caps);
|
||||
|
|
Loading…
Reference in a new issue