vlc | branch: master | Thomas Guillem <[email protected]> | Sat Apr 16 17:22:49 2016 +0300| [565eeceb6e3a45a72ae2dd3853193b04246d89e8] | committer: Thomas Guillem
packetizer: hxxx: add colour_desc to_vlc helpers > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=565eeceb6e3a45a72ae2dd3853193b04246d89e8 --- modules/packetizer/hxxx_nal.h | 91 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/modules/packetizer/hxxx_nal.h b/modules/packetizer/hxxx_nal.h index 6540db5..b8a6610 100644 --- a/modules/packetizer/hxxx_nal.h +++ b/modules/packetizer/hxxx_nal.h @@ -21,6 +21,7 @@ #define HXXX_NAL_H #include <vlc_common.h> +#include <vlc_es.h> static const uint8_t annexb_startcode4[] = { 0x00, 0x00, 0x00, 0x01 }; #define annexb_startcode3 (&annexb_startcode4[1]) @@ -41,6 +42,35 @@ enum hxxx_colour_primaries HXXX_PRIMARIES_SMPTE_ST_428 = 10, }; +static inline video_color_primaries_t +hxxx_colour_primaries_to_vlc( enum hxxx_colour_primaries i_colour ) +{ + switch( i_colour ) + { + case HXXX_PRIMARIES_BT470BG: + return COLOR_PRIMARIES_BT601_625; + + case HXXX_PRIMARIES_BT601_525: + case HXXX_PRIMARIES_SMTPE_240M: + return COLOR_PRIMARIES_BT601_625; + + case HXXX_PRIMARIES_BT709: + return COLOR_PRIMARIES_BT709; + + case HXXX_PRIMARIES_BT2020: + return COLOR_PRIMARIES_BT2020; + + case HXXX_PRIMARIES_BT470M: + case HXXX_PRIMARIES_RESERVED0: + case HXXX_PRIMARIES_UNSPECIFIED: + case HXXX_PRIMARIES_RESERVED3: + case HXXX_PRIMARIES_GENERIC_FILM: + case HXXX_PRIMARIES_SMPTE_ST_428: + default: + return COLOR_PRIMARIES_UNDEF; + } +} + /* Annex E: Transfer characteristics */ enum hxxx_transfer_characteristics { @@ -64,6 +94,40 @@ enum hxxx_transfer_characteristics HXXX_TRANSFER_SMPTE_ST_428 = 17, }; +static inline video_transfer_func_t +hxxx_transfer_characteristics_to_vlc( enum hxxx_transfer_characteristics i_transfer ) +{ + switch( i_transfer ) + { + case HXXX_TRANSFER_LINEAR: + return TRANSFER_FUNC_LINEAR; + + case HXXX_TRANSFER_BT470M: + return TRANSFER_FUNC_SRGB; + + case HXXX_TRANSFER_BT709: + case HXXX_TRANSFER_BT601_525: + case HXXX_TRANSFER_BT2020_V14: + case HXXX_TRANSFER_BT2020_V15: + return TRANSFER_FUNC_BT709; + + case HXXX_TRANSFER_RESERVED0: + case HXXX_TRANSFER_UNSPECIFIED: + case HXXX_TRANSFER_RESERVED3: + case HXXX_TRANSFER_BT470BG: + case HXXX_TRANSFER_SMTPE_240M: + case HXXX_TRANSFER_LOG: + case HXXX_TRANSFER_LOG_SQRT: + case HXXX_TRANSFER_IEC61966_2_4: + case HXXX_TRANSFER_BT1361: + case HXXX_TRANSFER_IEC61966_2_1: + case HXXX_TRANSFER_SMPTE_ST_2084: + case HXXX_TRANSFER_SMPTE_ST_428: + default: + return TRANSFER_FUNC_UNDEF; + }; +} + /* Annex E: Matrix coefficients */ enum hxxx_matrix_coeffs { @@ -80,6 +144,33 @@ enum hxxx_matrix_coeffs HXXX_MATRIX_BT2020_CL = 10, }; +static inline video_color_space_t +hxxx_matrix_coeffs_to_vlc( enum hxxx_matrix_coeffs i_transfer ) +{ + switch( i_transfer ) + { + case HXXX_MATRIX_BT470BG: + case HXXX_MATRIX_BT601_525: + return COLOR_SPACE_BT601; + + case HXXX_MATRIX_BT709: + return COLOR_SPACE_BT709; + + case HXXX_MATRIX_BT2020_NCL: + case HXXX_MATRIX_BT2020_CL: + return COLOR_SPACE_BT2020; + + case HXXX_MATRIX_IDENTITY: + case HXXX_MATRIX_UNSPECIFIED: + case HXXX_MATRIX_RESERVED: + case HXXX_MATRIX_FCC: + case HXXX_MATRIX_SMTPE_240M: + case HXXX_MATRIX_YCGCO: + default: + return COLOR_SPACE_UNDEF; + } +} + /* strips any AnnexB startcode [0] 0 0 1 */ static inline bool hxxx_strip_AnnexB_startcode( const uint8_t **pp_data, size_t *pi_data ) { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
