vlc | branch: master | Thomas Guillem <[email protected]> | Sat Apr 16 17:47:13 
2016 +0300| [bca172eed49a003d38aa71a75364f74979e8dba2] | committer: Thomas 
Guillem

packetizer: h264: fill colour_desc

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bca172eed49a003d38aa71a75364f74979e8dba2
---

 modules/packetizer/h264_nal.c |   15 +++++++++++++--
 modules/packetizer/h264_nal.h |    6 ++++++
 2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/modules/packetizer/h264_nal.c b/modules/packetizer/h264_nal.c
index 71d946f..ea2a036 100644
--- a/modules/packetizer/h264_nal.c
+++ b/modules/packetizer/h264_nal.c
@@ -427,11 +427,22 @@ static bool h264_parse_sequence_parameter_set_rbsp( bs_t 
*p_bs,
         i_tmp = bs_read( p_bs, 1 );
         if( i_tmp )
         {
-            bs_read( p_bs, 4 );
+            bs_read( p_bs, 3 );
+            p_sps->vui.colour.b_full_range = bs_read( p_bs, 1 );
             /* colour desc */
             i_tmp = bs_read( p_bs, 1 );
             if ( i_tmp )
-                bs_read( p_bs, 24 );
+            {
+                p_sps->vui.colour.i_colour_primaries = bs_read( p_bs, 8 );
+                p_sps->vui.colour.i_transfer_characteristics = bs_read( p_bs, 
8 );
+                p_sps->vui.colour.i_matrix_coefficients = bs_read( p_bs, 8 );
+            }
+            else
+            {
+                p_sps->vui.colour.i_colour_primaries = 
HXXX_PRIMARIES_UNSPECIFIED;
+                p_sps->vui.colour.i_transfer_characteristics = 
HXXX_TRANSFER_UNSPECIFIED;
+                p_sps->vui.colour.i_matrix_coefficients = 
HXXX_MATRIX_UNSPECIFIED;
+            }
         }
 
         /* chroma loc info */
diff --git a/modules/packetizer/h264_nal.h b/modules/packetizer/h264_nal.h
index f59148a..f8f55c6 100644
--- a/modules/packetizer/h264_nal.h
+++ b/modules/packetizer/h264_nal.h
@@ -112,6 +112,12 @@ struct h264_sequence_parameter_set_t
     struct {
         bool b_valid;
         int i_sar_num, i_sar_den;
+        struct {
+            bool b_full_range;
+            uint8_t i_colour_primaries;
+            uint8_t i_transfer_characteristics;
+            uint8_t i_matrix_coefficients;
+        } colour;
         bool b_timing_info_present_flag;
         uint32_t i_num_units_in_tick;
         uint32_t i_time_scale;

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to