• Haihao Xiang's avatar
    msdkvpp: close the current VPP session if this session has been initialized · 561afb51
    Haihao Xiang authored
    Otherwise MFXVideoVPP_Init will fail because it is called twice without
    a close.
    
    Example pipeline:
    
    gst-launch-1.0 videotestsrc ! msdkvpp ! glimagesink
    
    Sometimes glimagesink emits GST_EVENT_RECONFIGURE event which results
    in that MFXVideoVPP_Init is called twice, then get the negotiation
    failure below:
    
    0:00:00.093715518 21218 0x558ef56231e0 ERROR                msdkvpp
    gstmsdkvpp.c:995:gst_msdkvpp_initialize:<msdkvpp0> Init failed
    (undefined behavior)
    WARNING: from element /GstPipeline:pipeline0/GstMsdkVPP:msdkvpp0: not
    negotiated
    
    After applying this commit, the pipeline above may run without
    negotiation failure, however NV12 layout in dmabuf mode is selected in
    renegotiation, the display image is corrupted due to the NV12 issue which
    was mentioned in commit 3f2314a1. Some other fixes are needed to avoid
    renegotiation by default
    561afb51