Skip to content

libs: surface: add pointer check for surface_new_from_formats.

He Junyan requested to merge He_Junyan/gstreamer-vaapi:fix_jpeg_dec_crash into master

The command line: gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse ! vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink will crash on i965 driver because of no pointer check.

We now generate the video format map between GST format and VA format dynamically based on the image format returned by vaQueryImageFormats. i965 driver does to report image format of 444P and Y800 forcc, while the jpeg decoder context VASurfaceAttribPixelFormat use them. We can not recognize these format and pass a NULL pointer to gst_vaapi_surface_new_from_formats. We need to add a pointer check here and let the fallback logic handle this case correctly. Other drivers work well.

Merge request reports