1
- // Copyright (c) 2018-2020 Intel Corporation
1
+ // Copyright (c) 2018-2021 Intel Corporation
2
2
//
3
3
// Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
// of this software and associated documentation files (the "Software"), to deal
@@ -45,7 +45,8 @@ const mfxU32 g_TABLE_DO_NOT_USE [] =
45
45
#endif
46
46
MFX_EXTBUFF_VPP_VIDEO_SIGNAL_INFO,
47
47
MFX_EXTBUFF_VPP_FIELD_PROCESSING,
48
- MFX_EXTBUFF_VPP_MIRRORING
48
+ MFX_EXTBUFF_VPP_MIRRORING,
49
+ MFX_EXTBUFF_VPP_3DLUT
49
50
};
50
51
51
52
@@ -69,7 +70,8 @@ const mfxU32 g_TABLE_DO_USE [] =
69
70
MFX_EXTBUFF_VPP_DEINTERLACING,
70
71
MFX_EXTBUFF_VPP_VIDEO_SIGNAL_INFO,
71
72
MFX_EXTBUFF_VPP_FIELD_PROCESSING,
72
- MFX_EXTBUFF_VPP_MIRRORING
73
+ MFX_EXTBUFF_VPP_MIRRORING,
74
+ MFX_EXTBUFF_VPP_3DLUT
73
75
};
74
76
75
77
@@ -94,7 +96,8 @@ const mfxU32 g_TABLE_CONFIG [] =
94
96
#if (MFX_VERSION >= 1025)
95
97
MFX_EXTBUFF_VPP_COLOR_CONVERSION,
96
98
#endif
97
- MFX_EXTBUFF_VPP_MIRRORING
99
+ MFX_EXTBUFF_VPP_MIRRORING,
100
+ MFX_EXTBUFF_VPP_3DLUT
98
101
};
99
102
100
103
@@ -125,7 +128,8 @@ const mfxU32 g_TABLE_EXT_PARAM [] =
125
128
#if (MFX_VERSION >= 1025)
126
129
MFX_EXTBUFF_VPP_COLOR_CONVERSION,
127
130
#endif
128
- MFX_EXTBUFF_VPP_MIRRORING
131
+ MFX_EXTBUFF_VPP_MIRRORING,
132
+ MFX_EXTBUFF_VPP_3DLUT
129
133
};
130
134
131
135
PicStructMode GetPicStructMode (mfxU16 inPicStruct, mfxU16 outPicStruct)
@@ -674,6 +678,11 @@ void ShowPipeline( std::vector<mfxU32> pipelineList )
674
678
break ;
675
679
}
676
680
#endif
681
+ case (mfxU32)MFX_EXTBUFF_VPP_3DLUT:
682
+ {
683
+ fprintf (stderr, " MFX_EXTBUFF_VPP_3DLUT\n " );
684
+ break ;
685
+ }
677
686
default :
678
687
{
679
688
fprintf (stderr, " UNKNOWN Filter ID!!! \n " );
@@ -793,6 +802,12 @@ void ReorderPipelineListForQuality( std::vector<mfxU32> & pipelineList )
793
802
index ++;
794
803
}
795
804
805
+ if ( IsFilterFound ( &pipelineList[0 ], (mfxU32)pipelineList.size (), MFX_EXTBUFF_VPP_3DLUT ) )
806
+ {
807
+ newList[index ] = MFX_EXTBUFF_VPP_3DLUT;
808
+ index ++;
809
+ }
810
+
796
811
if ( IsFilterFound ( &pipelineList[0 ], (mfxU32)pipelineList.size (), MFX_EXTBUFF_VPP_SCENE_ANALYSIS ) )
797
812
{
798
813
newList[index ] = MFX_EXTBUFF_VPP_SCENE_ANALYSIS;
@@ -1253,6 +1268,14 @@ mfxStatus GetPipelineList(
1253
1268
}
1254
1269
}
1255
1270
1271
+ if ( IsFilterFound ( &configList[0 ], configCount, MFX_EXTBUFF_VPP_3DLUT ) && !IsFilterFound (&pipelineList[0 ], (mfxU32)pipelineList.size (), MFX_EXTBUFF_VPP_3DLUT) )
1272
+ {
1273
+ if ( !IsFilterFound ( &pipelineList[0 ], (mfxU32)pipelineList.size (), MFX_EXTBUFF_VPP_3DLUT ) )
1274
+ {
1275
+ pipelineList.push_back ( MFX_EXTBUFF_VPP_3DLUT );
1276
+ }
1277
+ }
1278
+
1256
1279
searchCount = sizeof (g_TABLE_CONFIG) / sizeof (*g_TABLE_CONFIG);
1257
1280
fCount = configCount;
1258
1281
for (fIdx = 0 ; fIdx < fCount ; fIdx ++)
@@ -1404,8 +1427,14 @@ mfxStatus CheckFrameInfo(mfxFrameInfo* info, mfxU32 request, eMFXHWType platform
1404
1427
}
1405
1428
1406
1429
/* checking Height based on PicStruct filed */
1407
- if (MFX_PICSTRUCT_PROGRESSIVE & info->PicStruct ||
1408
- MFX_PICSTRUCT_FIELD_SINGLE & info->PicStruct )
1430
+ if (MFX_PICSTRUCT_PROGRESSIVE & info->PicStruct )
1431
+ {
1432
+ if ((info->Height & 4 ) !=0 )
1433
+ {
1434
+ return MFX_ERR_INVALID_VIDEO_PARAM;
1435
+ }
1436
+ }
1437
+ else if (MFX_PICSTRUCT_FIELD_SINGLE & info->PicStruct )
1409
1438
{
1410
1439
if ((info->Height & 15 ) !=0 )
1411
1440
{
@@ -2288,6 +2317,11 @@ void ConvertCaps2ListDoUse(MfxHwVideoProcessing::mfxVppCaps& caps, std::vector<m
2288
2317
list.push_back (MFX_EXTBUFF_VPP_SCALING);
2289
2318
}
2290
2319
2320
+ if (caps.u3DLut )
2321
+ {
2322
+ list.push_back (MFX_EXTBUFF_VPP_3DLUT);
2323
+ }
2324
+
2291
2325
#if (MFX_VERSION >= 1025)
2292
2326
if (caps.uChromaSiting )
2293
2327
{
0 commit comments