msdkdec: set the mfx picture structure to MFX_PICSTRUCT_PROGRESSIVE if it is unknown
authorHaihao Xiang <haihao.xiang@intel.com>
Mon, 21 Jan 2019 04:25:36 +0000 (12:25 +0800)
committerHaihao Xiang <haihao.xiang@intel.com>
Fri, 25 Jan 2019 04:45:43 +0000 (12:45 +0800)
commit546797cecfe8ca67bbef6de39b84e6410293b42b
treebd9bc66a64ba28b4723f44cdf409ca6e2c5ad196
parente5278757c335f45930e1683d7068dadd49b40017
msdkdec: set the mfx picture structure to MFX_PICSTRUCT_PROGRESSIVE if it is unknown

The picture structure in the output parameters from
MFXVideoDECODE_Query is set to MFX_PICSTRUCT_UNKNOWN for some codecs, so
the structure of the corresponding mfx surfaces created for decoding are
unknown. The pipeline will be broken when these surfaces are used as the
input for msdkvpp.

Example pipeline:

gst-launch-1.0 filesrc location=input_vp8.webm ! matroskademux !
msdkvp8dec ! msdkvpp ! fakesink

Error message:

0:00:00.031568911 14259 0x55b79dc684a0 ERROR                msdkvpp
gstmsdkvpp.c:728:gst_msdkvpp_transform:<msdkvpp0> MSDK Failed to do VPP
ERROR: from element
/GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0: Internal data
stream error.

This is a workaround for the above issue
sys/msdk/gstmsdkdec.c