[vlc-devel] [PATCH 2/5] hxxx_sei: add HDR10/SMPTE ST 2086 metadata parsing
Steve Lhomme
robux4 at videolabs.io
Wed Mar 29 15:39:28 CEST 2017
---
modules/packetizer/hxxx_sei.c | 14 ++++++++++++++
modules/packetizer/hxxx_sei.h | 11 ++++++++++-
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/modules/packetizer/hxxx_sei.c b/modules/packetizer/hxxx_sei.c
index e83528cb7c..636c7178cf 100644
--- a/modules/packetizer/hxxx_sei.c
+++ b/modules/packetizer/hxxx_sei.c
@@ -145,6 +145,20 @@ void HxxxParseSEI(const uint8_t *p_buf, size_t i_buf,
b_continue = pf_callback( &sei_data, cbdata );
} break;
+ case HXXX_SEI_MASTERING_DISPLAY_COLOUR_VOLUME:
+ {
+ if ( bs_remain( &s ) < (16*4*2+32+32))
+ /* not enough data */
+ break;
+ for ( size_t i = 0; i < 6 ; ++i)
+ sei_data.color_volume.primaries[i] = bs_read( &s, 16 );
+ for ( size_t i = 0; i < 2 ; ++i)
+ sei_data.color_volume.white_point[i] = bs_read( &s, 16 );
+ sei_data.color_volume.max_luminance = bs_read( &s, 32 );
+ sei_data.color_volume.min_luminance = bs_read( &s, 32 );
+ b_continue = pf_callback( &sei_data, cbdata );
+ } break;
+
default:
/* Will skip */
break;
diff --git a/modules/packetizer/hxxx_sei.h b/modules/packetizer/hxxx_sei.h
index 7b53a578d0..58721aefca 100644
--- a/modules/packetizer/hxxx_sei.h
+++ b/modules/packetizer/hxxx_sei.h
@@ -25,7 +25,9 @@ enum hxxx_sei_type_e
{
HXXX_SEI_PIC_TIMING = 1,
HXXX_SEI_USER_DATA_REGISTERED_ITU_T_T35 = 4,
- HXXX_SEI_RECOVERY_POINT = 6
+ HXXX_SEI_RECOVERY_POINT = 6,
+ HXXX_SEI_MASTERING_DISPLAY_COLOUR_VOLUME = 137, /* SMPTE ST 2086 */
+ HXXX_SEI_LIGHT_LEVEL = 144,
};
enum hxxx_sei_t35_type_e
@@ -55,6 +57,13 @@ typedef struct
{
int i_frames;
} recovery;
+ struct
+ {
+ uint16_t primaries[3*2]; /* G,B,R / x,y */
+ uint16_t white_point[2]; /* x,y */
+ uint32_t max_luminance;
+ uint32_t min_luminance;
+ } color_volume;
};
} hxxx_sei_data_t;
--
2.11.1
More information about the vlc-devel
mailing list