LIBVPL_2.0 {
  global:
    MFXInit;
    MFXClose;
    MFXQueryIMPL;
    MFXQueryVersion;

    MFXJoinSession;
    MFXDisjoinSession;
    MFXCloneSession;
    MFXSetPriority;
    MFXGetPriority;

    MFXVideoCORE_SetFrameAllocator;
    MFXVideoCORE_SetHandle;
    MFXVideoCORE_GetHandle;
    MFXVideoCORE_QueryPlatform;
    MFXVideoCORE_SyncOperation;

    MFXVideoENCODE_Query;
    MFXVideoENCODE_QueryIOSurf;
    MFXVideoENCODE_Init;
    MFXVideoENCODE_Reset;
    MFXVideoENCODE_Close;
    MFXVideoENCODE_GetVideoParam;
    MFXVideoENCODE_GetEncodeStat;
    MFXVideoENCODE_EncodeFrameAsync;

    MFXVideoDECODE_Query;
    MFXVideoDECODE_DecodeHeader;
    MFXVideoDECODE_QueryIOSurf;
    MFXVideoDECODE_Init;
    MFXVideoDECODE_Reset;
    MFXVideoDECODE_Close;
    MFXVideoDECODE_GetVideoParam;
    MFXVideoDECODE_GetDecodeStat;
    MFXVideoDECODE_SetSkipMode;
    MFXVideoDECODE_GetPayload;
    MFXVideoDECODE_DecodeFrameAsync;

    MFXVideoVPP_Query;
    MFXVideoVPP_QueryIOSurf;
    MFXVideoVPP_Init;
    MFXVideoVPP_Reset;
    MFXVideoVPP_Close;

    MFXVideoVPP_GetVideoParam;
    MFXVideoVPP_GetVPPStat;
    MFXVideoVPP_RunFrameVPPAsync;

    MFXInitEx;

    MFXLoad;
    MFXUnload;
    MFXCreateConfig;
    MFXSetConfigFilterProperty;
    MFXEnumImplementations;
    MFXCreateSession;
    MFXDispReleaseImplDescription;

    MFXMemory_GetSurfaceForVPP;
    MFXMemory_GetSurfaceForEncode;
    MFXMemory_GetSurfaceForDecode;

  local:
    *;
};

LIBVPL_2.1 {
  global:
    MFXMemory_GetSurfaceForVPPOut;
    MFXVideoDECODE_VPP_Init;
    MFXVideoDECODE_VPP_DecodeFrameAsync;
    MFXVideoDECODE_VPP_Reset;
    MFXVideoDECODE_VPP_GetChannelParam;
    MFXVideoDECODE_VPP_Close;
    MFXVideoVPP_ProcessFrameAsync;

  local:
    *;
} LIBVPL_2.0;