#define MAKE_COLORIMETRY(n,r,m,t,p) { GST_VIDEO_COLORIMETRY_ ##n, \ { GST_VIDEO_COLOR_RANGE ##r, GST_VIDEO_COLOR_MATRIX_ ##m, \ GST_VIDEO_TRANSFER_ ##t, GST_VIDEO_COLOR_PRIMARIES_ ##p } } #define GST_VIDEO_COLORIMETRY_NONAME NULL #define DEFAULT_YUV_SD 0 #define DEFAULT_YUV_HD 1 #define DEFAULT_RGB 3 #define DEFAULT_GRAY 4 #define DEFAULT_UNKNOWN 5 #define DEFAULT_YUV_UHD 6 static const ColorimetryInfo colorimetry[] = { MAKE_COLORIMETRY (BT601, _16_235, BT601, BT709, SMPTE170M), MAKE_COLORIMETRY (BT709, _16_235, BT709, BT709, BT709), MAKE_COLORIMETRY (SMPTE240M, _16_235, SMPTE240M, SMPTE240M, SMPTE240M), MAKE_COLORIMETRY (SRGB, _0_255, RGB, SRGB, BT709), MAKE_COLORIMETRY (BT2020, _16_235, BT2020, BT2020_12, BT2020), MAKE_COLORIMETRY (NONAME, _0_255, BT601, UNKNOWN, UNKNOWN), MAKE_COLORIMETRY (NONAME, _UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN), }; static const ColorimetryInfo * gst_video_get_colorimetry (const gchar * s) { gint i; for (i = 0; colorimetry[i].name; i++) { if (g_str_equal (colorimetry[i].name, s))
GST_VIDEO_INFO_MULTIVIEW_MODE (info) = GST_VIDEO_MULTIVIEW_MODE_NONE; } #define MAKE_COLORIMETRY(r,m,t,p) { \ GST_VIDEO_COLOR_RANGE ##r, GST_VIDEO_COLOR_MATRIX_ ##m, \ GST_VIDEO_TRANSFER_ ##t, GST_VIDEO_COLOR_PRIMARIES_ ##p } #define DEFAULT_YUV_SD 0 #define DEFAULT_YUV_HD 1 #define DEFAULT_RGB 2 #define DEFAULT_GRAY 3 #define DEFAULT_UNKNOWN 4 #define DEFAULT_YUV_UHD 5 static const GstVideoColorimetry default_color[] = { MAKE_COLORIMETRY (_16_235, BT601, BT709, SMPTE170M), MAKE_COLORIMETRY (_16_235, BT709, BT709, BT709), MAKE_COLORIMETRY (_0_255, RGB, SRGB, BT709), MAKE_COLORIMETRY (_0_255, BT601, UNKNOWN, UNKNOWN), MAKE_COLORIMETRY (_UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN), MAKE_COLORIMETRY (_16_235, BT2020, BT2020_12, BT2020), }; static void set_default_colorimetry (GstVideoInfo * info) { const GstVideoFormatInfo *finfo = info->finfo; if (GST_VIDEO_FORMAT_INFO_IS_YUV (finfo)) { if (info->height >= 2160) { info->chroma_site = GST_VIDEO_CHROMA_SITE_H_COSITED;
} ColorimetryInfo; #define MAKE_COLORIMETRY(n,r,m,t,p) { GST_VIDEO_COLORIMETRY_ ##n, \ { GST_VIDEO_COLOR_RANGE ##r, GST_VIDEO_COLOR_MATRIX_ ##m, \ GST_VIDEO_TRANSFER_ ##t, GST_VIDEO_COLOR_PRIMARIES_ ##p } } #define GST_VIDEO_COLORIMETRY_NONAME NULL #define DEFAULT_YUV_SD 0 #define DEFAULT_YUV_HD 1 #define DEFAULT_RGB 3 #define DEFAULT_GRAY 4 #define DEFAULT_UNKNOWN 5 static const ColorimetryInfo colorimetry[] = { MAKE_COLORIMETRY (BT601, _16_235, BT601, BT709, BT470M), MAKE_COLORIMETRY (BT709, _16_235, BT709, BT709, BT709), MAKE_COLORIMETRY (SMPTE240M, _16_235, SMPTE240M, SMPTE240M, SMPTE240M), MAKE_COLORIMETRY (NONAME, _0_255, RGB, UNKNOWN, UNKNOWN), MAKE_COLORIMETRY (NONAME, _0_255, BT601, UNKNOWN, UNKNOWN), MAKE_COLORIMETRY (NONAME, _UNKNOWN, UNKNOWN, UNKNOWN, UNKNOWN), }; static const ColorimetryInfo * gst_video_get_colorimetry (const gchar * s) { gint i; for (i = 0; colorimetry[i].name; i++) { if (g_str_equal (colorimetry[i].name, s)) return &colorimetry[i];