[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