vaapidecode: set initial decode format according surface chroma type

For surfaces with different chroma type, it is prefer to initialize
a format which chroma type should be same with surface chroma type
instead of using fixed NV12.
This commit is contained in:
Wangfei 2019-06-25 10:31:20 +08:00 committed by Víctor Manuel Jáquez Leal
parent 67ed67515b
commit e4bec306b6

View file

@ -413,9 +413,14 @@ is_surface_resolution_changed (GstVaapiDecode * decode,
surface_format = gst_vaapi_surface_get_format (surface);
/* if the VA context delivers a currently unrecognized format
* (ICM3, e.g.), we can assume NV12 "safely" */
* (ICM3, e.g.), we can assume one according surface chroma
* type. If fail, then use NV12 "safely" */
if (surface_format == GST_VIDEO_FORMAT_UNKNOWN
|| surface_format == GST_VIDEO_FORMAT_ENCODED)
surface_format =
gst_vaapi_video_format_from_chroma (gst_vaapi_surface_get_chroma_type
(surface));
if (surface_format == GST_VIDEO_FORMAT_UNKNOWN)
surface_format = GST_VIDEO_FORMAT_NV12;
}