2222#include < string>
2323
2424#include " vpl/mfx.h"
25+ #include " vpl/mfxcamera.h"
2526
2627#define DECODE_FOURCC (ch ) ch & 0xff , ch >> 8 & 0xff , ch >> 16 & 0xff , ch >> 24 & 0xff
2728
@@ -178,6 +179,172 @@ const char *_print_ResourceType(mfxResourceType type) {
178179 return " <unknown resource type>" ;
179180}
180181
182+ const char *_print_CodecID (mfxU32 codecID) {
183+ switch (codecID) {
184+ STRING_OPTION (MFX_CODEC_AV1);
185+ STRING_OPTION (MFX_CODEC_AVC);
186+ STRING_OPTION (MFX_CODEC_JPEG);
187+ STRING_OPTION (MFX_CODEC_HEVC);
188+ STRING_OPTION (MFX_CODEC_MPEG2);
189+ STRING_OPTION (MFX_CODEC_VC1);
190+ STRING_OPTION (MFX_CODEC_VP8);
191+ STRING_OPTION (MFX_CODEC_VP9);
192+ default :
193+ break ;
194+ }
195+
196+ // unknown format - print fourCC
197+ return _print_fourcc (codecID);
198+ }
199+
200+ const char *_print_ExtbufID (mfxU32 extbufID) {
201+ switch (extbufID) {
202+ STRING_OPTION (MFX_EXTBUFF_ALLOCATION_HINTS);
203+ STRING_OPTION (MFX_EXTBUFF_AV1_FILM_GRAIN_PARAM);
204+ STRING_OPTION (MFX_EXTBUFF_AV1_SEGMENTATION);
205+ STRING_OPTION (MFX_EXTBUFF_AVC_REFLIST_CTRL);
206+ STRING_OPTION (MFX_EXTBUFF_AVC_REFLISTS);
207+ STRING_OPTION (MFX_EXTBUFF_AVC_ROUNDING_OFFSET);
208+ STRING_OPTION (MFX_EXTBUFF_AVC_TEMPORAL_LAYERS);
209+ STRING_OPTION (MFX_EXTBUFF_BRC);
210+ STRING_OPTION (MFX_EXTBUF_CAM_3DLUT);
211+ STRING_OPTION (MFX_EXTBUF_CAM_BAYER_DENOISE);
212+ STRING_OPTION (MFX_EXTBUF_CAM_BLACK_LEVEL_CORRECTION);
213+ STRING_OPTION (MFX_EXTBUF_CAM_COLOR_CORRECTION_3X3);
214+ STRING_OPTION (MFX_EXTBUF_CAM_CSC_YUV_RGB);
215+ STRING_OPTION (MFX_EXTBUF_CAM_FORWARD_GAMMA_CORRECTION);
216+ STRING_OPTION (MFX_EXTBUF_CAM_HOT_PIXEL_REMOVAL);
217+ STRING_OPTION (MFX_EXTBUF_CAM_LENS_GEOM_DIST_CORRECTION);
218+ STRING_OPTION (MFX_EXTBUF_CAM_PADDING);
219+ STRING_OPTION (MFX_EXTBUF_CAM_PIPECONTROL);
220+ STRING_OPTION (MFX_EXTBUF_CAM_TOTAL_COLOR_CONTROL);
221+ STRING_OPTION (MFX_EXTBUF_CAM_VIGNETTE_CORRECTION);
222+ STRING_OPTION (MFX_EXTBUF_CAM_WHITE_BALANCE);
223+ STRING_OPTION (MFX_EXTBUFF_CENC_PARAM);
224+ STRING_OPTION (MFX_EXTBUFF_CHROMA_LOC_INFO);
225+ STRING_OPTION (MFX_EXTBUFF_CODING_OPTION);
226+ STRING_OPTION (MFX_EXTBUFF_CODING_OPTION_SPSPPS);
227+ STRING_OPTION (MFX_EXTBUFF_CODING_OPTION_VPS);
228+ STRING_OPTION (MFX_EXTBUFF_CODING_OPTION2);
229+ STRING_OPTION (MFX_EXTBUFF_CODING_OPTION3);
230+ STRING_OPTION (MFX_EXTBUFF_CONTENT_LIGHT_LEVEL_INFO);
231+ STRING_OPTION (MFX_EXTBUFF_CROPS);
232+ STRING_OPTION (MFX_EXTBUFF_DEC_VIDEO_PROCESSING);
233+ STRING_OPTION (MFX_EXTBUFF_DECODE_ERROR_REPORT);
234+ STRING_OPTION (MFX_EXTBUFF_DECODED_FRAME_INFO);
235+ STRING_OPTION (MFX_EXTBUFF_DEVICE_AFFINITY_MASK);
236+ STRING_OPTION (MFX_EXTBUFF_DIRTY_RECTANGLES);
237+ STRING_OPTION (MFX_EXTBUFF_ENCODED_FRAME_INFO);
238+ STRING_OPTION (MFX_EXTBUFF_ENCODED_SLICES_INFO);
239+ STRING_OPTION (MFX_EXTBUFF_ENCODED_UNITS_INFO);
240+ STRING_OPTION (MFX_EXTBUFF_ENCODER_CAPABILITY);
241+ STRING_OPTION (MFX_EXTBUFF_ENCODER_IPCM_AREA);
242+ STRING_OPTION (MFX_EXTBUFF_ENCODER_RESET_OPTION);
243+ STRING_OPTION (MFX_EXTBUFF_ENCODER_ROI);
244+ STRING_OPTION (MFX_EXTBUFF_HEVC_PARAM);
245+ STRING_OPTION (MFX_EXTBUFF_HEVC_REGION);
246+ STRING_OPTION (MFX_EXTBUFF_HEVC_TILES);
247+ STRING_OPTION (MFX_EXTBUFF_INSERT_HEADERS);
248+ STRING_OPTION (MFX_EXTBUFF_JPEG_HUFFMAN);
249+ STRING_OPTION (MFX_EXTBUFF_JPEG_QT);
250+ STRING_OPTION (MFX_EXTBUFF_MASTERING_DISPLAY_COLOUR_VOLUME);
251+ STRING_OPTION (MFX_EXTBUFF_MASTERING_DISPLAY_COLOUR_VOLUME_IN);
252+ STRING_OPTION (MFX_EXTBUFF_MASTERING_DISPLAY_COLOUR_VOLUME_OUT);
253+ STRING_OPTION (MFX_EXTBUFF_MB_DISABLE_SKIP_MAP);
254+ STRING_OPTION (MFX_EXTBUFF_MB_FORCE_INTRA);
255+ STRING_OPTION (MFX_EXTBUFF_MBQP);
256+ STRING_OPTION (MFX_EXTBUFF_MOVING_RECTANGLES);
257+ STRING_OPTION (MFX_EXTBUFF_MV_OVER_PIC_BOUNDARIES);
258+ STRING_OPTION (MFX_EXTBUFF_MVC_SEQ_DESC);
259+ STRING_OPTION (MFX_EXTBUFF_MVC_TARGET_VIEWS);
260+ STRING_OPTION (MFX_EXTBUFF_PARTIAL_BITSTREAM_PARAM);
261+ STRING_OPTION (MFX_EXTBUFF_PICTURE_TIMING_SEI);
262+ STRING_OPTION (MFX_EXTBUFF_PRED_WEIGHT_TABLE);
263+ STRING_OPTION (MFX_EXTBUFF_THREADS_PARAM);
264+ STRING_OPTION (MFX_EXTBUFF_TIME_CODE);
265+ STRING_OPTION (MFX_EXTBUFF_UNIVERSAL_TEMPORAL_LAYERS);
266+ STRING_OPTION (MFX_EXTBUFF_VIDEO_SIGNAL_INFO);
267+ STRING_OPTION (MFX_EXTBUFF_VIDEO_SIGNAL_INFO_IN);
268+ STRING_OPTION (MFX_EXTBUFF_VIDEO_SIGNAL_INFO_OUT);
269+ STRING_OPTION (MFX_EXTBUFF_VP8_CODING_OPTION);
270+ STRING_OPTION (MFX_EXTBUFF_VP9_PARAM);
271+ STRING_OPTION (MFX_EXTBUFF_VP9_SEGMENTATION);
272+ STRING_OPTION (MFX_EXTBUFF_VP9_TEMPORAL_LAYERS);
273+ STRING_OPTION (MFX_EXTBUFF_VPP_3DLUT);
274+ STRING_OPTION (MFX_EXTBUFF_VPP_AUXDATA);
275+ STRING_OPTION (MFX_EXTBUFF_VPP_COLOR_CONVERSION);
276+ STRING_OPTION (MFX_EXTBUFF_VPP_COLORFILL);
277+ STRING_OPTION (MFX_EXTBUFF_VPP_COMPOSITE);
278+ STRING_OPTION (MFX_EXTBUFF_VPP_DEINTERLACING);
279+ STRING_OPTION (MFX_EXTBUFF_VPP_DENOISE2);
280+ STRING_OPTION (MFX_EXTBUFF_VPP_DETAIL);
281+ STRING_OPTION (MFX_EXTBUFF_VPP_DONOTUSE);
282+ STRING_OPTION (MFX_EXTBUFF_VPP_DOUSE);
283+ STRING_OPTION (MFX_EXTBUFF_VPP_FIELD_PROCESSING);
284+ STRING_OPTION (MFX_EXTBUFF_VPP_FRAME_RATE_CONVERSION);
285+ STRING_OPTION (MFX_EXTBUFF_VPP_IMAGE_STABILIZATION);
286+ STRING_OPTION (MFX_EXTBUFF_VPP_MCTF);
287+ STRING_OPTION (MFX_EXTBUFF_VPP_MIRRORING);
288+ STRING_OPTION (MFX_EXTBUFF_VPP_PROCAMP);
289+ STRING_OPTION (MFX_EXTBUFF_VPP_ROTATION);
290+ STRING_OPTION (MFX_EXTBUFF_VPP_SCALING);
291+ STRING_OPTION (MFX_EXTBUFF_VPP_SCENE_ANALYSIS);
292+ STRING_OPTION (MFX_EXTBUFF_VPP_VIDEO_SIGNAL_INFO);
293+ #ifdef ONEVPL_EXPERIMENTAL
294+ STRING_OPTION (MFX_EXTBUFF_ENCODESTATS);
295+ STRING_OPTION (MFX_EXTBUFF_TUNE_ENCODE_QUALITY);
296+ STRING_OPTION (MFX_EXTBUFF_VPP_PERC_ENC_PREFILTER);
297+ #endif
298+ default :
299+ break ;
300+ }
301+
302+ // unknown format - print fourCC
303+ return _print_fourcc (extbufID);
304+ }
305+
306+ const char *_print_ColorFormat (mfxU32 colorFormat) {
307+ switch (colorFormat) {
308+ STRING_OPTION (MFX_FOURCC_A2RGB10);
309+ STRING_OPTION (MFX_FOURCC_ABGR16);
310+ STRING_OPTION (MFX_FOURCC_ABGR16F);
311+ STRING_OPTION (MFX_FOURCC_ARGB16);
312+ STRING_OPTION (MFX_FOURCC_AYUV);
313+ STRING_OPTION (MFX_FOURCC_AYUV_RGB4);
314+ STRING_OPTION (MFX_FOURCC_BGR4);
315+ STRING_OPTION (MFX_FOURCC_BGRP);
316+ STRING_OPTION (MFX_FOURCC_I010);
317+ STRING_OPTION (MFX_FOURCC_I210);
318+ STRING_OPTION (MFX_FOURCC_I422);
319+ STRING_OPTION (MFX_FOURCC_IYUV);
320+ STRING_OPTION (MFX_FOURCC_NV12);
321+ STRING_OPTION (MFX_FOURCC_NV16);
322+ STRING_OPTION (MFX_FOURCC_NV21);
323+ STRING_OPTION (MFX_FOURCC_P010);
324+ STRING_OPTION (MFX_FOURCC_P016);
325+ STRING_OPTION (MFX_FOURCC_P210);
326+ STRING_OPTION (MFX_FOURCC_P8);
327+ STRING_OPTION (MFX_FOURCC_P8_TEXTURE);
328+ STRING_OPTION (MFX_FOURCC_R16);
329+ STRING_OPTION (MFX_FOURCC_RGB4);
330+ STRING_OPTION (MFX_FOURCC_RGB565);
331+ STRING_OPTION (MFX_FOURCC_RGBP);
332+ STRING_OPTION (MFX_FOURCC_UYVY);
333+ STRING_OPTION (MFX_FOURCC_XYUV);
334+ STRING_OPTION (MFX_FOURCC_Y210);
335+ STRING_OPTION (MFX_FOURCC_Y216);
336+ STRING_OPTION (MFX_FOURCC_Y410);
337+ STRING_OPTION (MFX_FOURCC_Y416);
338+ STRING_OPTION (MFX_FOURCC_YUY2);
339+ STRING_OPTION (MFX_FOURCC_YV12);
340+ default :
341+ break ;
342+ }
343+
344+ // unknown format - print fourCC
345+ return _print_fourcc (colorFormat);
346+ }
347+
181348const char *_print_ProfileType (mfxU32 fourcc, mfxU32 type) {
182349 switch (fourcc) {
183350 case MFX_CODEC_JPEG: {
@@ -470,7 +637,7 @@ int main(int argc, char *argv[]) {
470637 printf (" %2smfxDecoderDescription:\n " , " " );
471638 printf (" %4sVersion: %hu.%hu\n " , " " , dec->Version .Major , dec->Version .Minor );
472639 for (int codec = 0 ; codec < dec->NumCodecs ; codec++) {
473- printf (" %4sCodecID: %c%c%c%c \n " , " " , DECODE_FOURCC (dec->Codecs [codec].CodecID ));
640+ printf (" %4sCodecID: %s \n " , " " , _print_CodecID (dec->Codecs [codec].CodecID ));
474641 printf (" %4sMaxcodecLevel: %hu\n " , " " , dec->Codecs [codec].MaxcodecLevel );
475642 for (int profile = 0 ; profile < dec->Codecs [codec].NumProfiles ; profile++) {
476643 printf (" %6sProfile: %s\n " ,
@@ -512,10 +679,10 @@ int main(int argc, char *argv[]) {
512679 if (0 != colorformat)
513680 printf (" , " );
514681 printf (" %s" ,
515- _print_fourcc (dec->Codecs [codec]
516- .Profiles [profile]
517- .MemDesc [memtype]
518- .ColorFormats [colorformat]));
682+ _print_ColorFormat (dec->Codecs [codec]
683+ .Profiles [profile]
684+ .MemDesc [memtype]
685+ .ColorFormats [colorformat]));
519686 }
520687 printf (" \n " );
521688 }
@@ -527,7 +694,7 @@ int main(int argc, char *argv[]) {
527694 printf (" %2smfxEncoderDescription:\n " , " " );
528695 printf (" %4sVersion: %hu.%hu\n " , " " , enc->Version .Major , enc->Version .Minor );
529696 for (int codec = 0 ; codec < enc->NumCodecs ; codec++) {
530- printf (" %4sCodecID: %c%c%c%c \n " , " " , DECODE_FOURCC (enc->Codecs [codec].CodecID ));
697+ printf (" %4sCodecID: %s \n " , " " , _print_CodecID (enc->Codecs [codec].CodecID ));
531698 printf (" %4sMaxcodecLevel: %hu\n " , " " , enc->Codecs [codec].MaxcodecLevel );
532699 printf (" %4sBiDirectionalPrediction: %hu\n " ,
533700 " " ,
@@ -573,10 +740,10 @@ int main(int argc, char *argv[]) {
573740 if (0 != colorformat)
574741 printf (" , " );
575742 printf (" %s" ,
576- _print_fourcc (enc->Codecs [codec]
577- .Profiles [profile]
578- .MemDesc [memtype]
579- .ColorFormats [colorformat]));
743+ _print_ColorFormat (enc->Codecs [codec]
744+ .Profiles [profile]
745+ .MemDesc [memtype]
746+ .ColorFormats [colorformat]));
580747 }
581748 printf (" \n " );
582749 }
@@ -588,9 +755,9 @@ int main(int argc, char *argv[]) {
588755 printf (" %2smfxVPPDescription:\n " , " " );
589756 printf (" %4sVersion: %hu.%hu\n " , " " , vpp->Version .Major , vpp->Version .Minor );
590757 for (int filter = 0 ; filter < vpp->NumFilters ; filter++) {
591- printf (" %4sFilterFourCC: %c%c%c%c \n " ,
758+ printf (" %4sFilterFourCC: %s \n " ,
592759 " " ,
593- DECODE_FOURCC (vpp->Filters [filter].FilterFourCC ));
760+ _print_ExtbufID (vpp->Filters [filter].FilterFourCC ));
594761 printf (" %4sMaxDelayInFrames: %hu\n " , " " , vpp->Filters [filter].MaxDelayInFrames );
595762 for (int memtype = 0 ; memtype < vpp->Filters [filter].NumMemTypes ; memtype++) {
596763 printf (
@@ -621,7 +788,7 @@ int main(int argc, char *argv[]) {
621788 printf (
622789 " %8sInFormat: %s\n " ,
623790 " " ,
624- _print_fourcc (
791+ _print_ColorFormat (
625792 vpp->Filters [filter].MemDesc [memtype].Formats [informat].InFormat ));
626793 printf (" %10sOutFormats: " , " " );
627794 for (int outformat = 0 ;
@@ -631,10 +798,10 @@ int main(int argc, char *argv[]) {
631798 if (0 != outformat)
632799 printf (" , " );
633800 printf (" %s" ,
634- _print_fourcc (vpp->Filters [filter]
635- .MemDesc [memtype]
636- .Formats [informat]
637- .OutFormats [outformat]));
801+ _print_ColorFormat (vpp->Filters [filter]
802+ .MemDesc [memtype]
803+ .Formats [informat]
804+ .OutFormats [outformat]));
638805 }
639806 printf (" \n " );
640807 }
0 commit comments