[vlc-commits] [Git][videolan/vlc][master] 3 commits: packetizer: hevc: add hevc_get_dpb_values

Steve Lhomme (@robUx4) gitlab at videolan.org
Tue Nov 28 10:13:48 UTC 2023



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
6c998a36 by François Cartegnie at 2023-11-28T09:50:00+00:00
packetizer: hevc: add hevc_get_dpb_values

- - - - -
d9dc3f0e by François Cartegnie at 2023-11-28T09:50:00+00:00
codec: videotoolbox: use hevc_get_dpb_values

- - - - -
de9eac00 by François Cartegnie at 2023-11-28T09:50:00+00:00
packetizer: hevc: remove hevc_get_max_num_reorder

- - - - -


3 changed files:

- modules/codec/videotoolbox/decoder.c
- modules/packetizer/hevc_nal.c
- modules/packetizer/hevc_nal.h


Changes:

=====================================
modules/codec/videotoolbox/decoder.c
=====================================
@@ -777,7 +777,10 @@ static bool FillReorderInfoHEVC(decoder_t *p_dec, const block_t *p_block,
                 p_info->i_poc = POC;
                 p_info->i_foc = POC; /* clearly looks wrong :/ */
                 p_info->i_num_ts = hevc_get_num_clock_ts(p_sps, sei.p_timing);
-                p_info->i_max_reorder = hevc_get_max_num_reorder(p_sps);
+                uint8_t dummy;
+                hevc_get_dpb_values(p_sps, &p_info->i_max_reorder, &dummy, &dummy);
+                VLC_UNUSED(dummy);
+
                 p_info->b_flush = (POC == 0) ||
                                   (i_nal_type >= HEVC_NAL_IDR_N_LP &&
                                    i_nal_type <= HEVC_NAL_IRAP_VCL23);


=====================================
modules/packetizer/hevc_nal.c
=====================================
@@ -1092,9 +1092,23 @@ bool hevc_get_picture_size( const hevc_sequence_parameter_set_t *p_sps,
     return true;
 }
 
-uint8_t hevc_get_max_num_reorder( const hevc_sequence_parameter_set_t *p_sps )
+void hevc_get_dpb_values( const hevc_sequence_parameter_set_t *p_sps, uint8_t *max_num_reorder_pics,
+                          uint8_t *max_latency_pics, uint8_t *max_dec_pic_buffering )
 {
-    return p_sps->sps_max[p_sps->sps_max_sub_layers_minus1/* HighestTid */].num_reorder_pics;
+    *max_num_reorder_pics = p_sps->sps_max[p_sps->sps_max_sub_layers_minus1/* HighestTid */].num_reorder_pics;
+    *max_latency_pics = p_sps->sps_max[p_sps->sps_max_sub_layers_minus1/* HighestTid */].latency_increase_plus1;
+    if(*max_latency_pics != 0)
+        *max_latency_pics = *max_num_reorder_pics + *max_latency_pics - 1;
+    *max_dec_pic_buffering = 1 +
+        p_sps->sps_max[p_sps->sps_max_sub_layers_minus1/* HighestTid */].dec_pic_buffering_minus1;
+    /*
+    When sps_max_dec_pic_buffering_minus1[ TemporalId ] is equal to 0, the value of TwoVersionsOfCurrDecPicFlag
+                                                                         shall be equal to 0.
+
+    pps_curr_pic_ref_enabled_flag &&
+        ( sample_adaptive_offset_enabled_flag | | !pps_deblocking_filter_disabled_flag | |
+                                      deblocking_filter_override_enabled_flag );
+    */
 }
 
 static inline uint8_t vlc_ceil_log2( uint32_t val )


=====================================
modules/packetizer/hevc_nal.h
=====================================
@@ -299,7 +299,8 @@ bool hevc_get_colorimetry( const hevc_sequence_parameter_set_t *p_sps,
                            video_transfer_func_t *p_transfer,
                            video_color_space_t *p_colorspace,
                            video_color_range_t *p_full_range );
-uint8_t hevc_get_max_num_reorder( const hevc_sequence_parameter_set_t *p_sps );
+void hevc_get_dpb_values( const hevc_sequence_parameter_set_t *, uint8_t *num_reorder_pics,
+                          uint8_t *max_latency_pics, uint8_t *max_dec_pic_buffering );
 bool hevc_get_slice_type( const hevc_slice_segment_header_t *, enum hevc_slice_type_e * );
 
 /* Get level and Profile from DecoderConfigurationRecord */



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/8e97612b58c1f7fd687cceca7ae76578214f7792...de9eac001a135f79bbefb8f6e5a7f7b015a5dc36

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/8e97612b58c1f7fd687cceca7ae76578214f7792...de9eac001a135f79bbefb8f6e5a7f7b015a5dc36
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list