From gitlab at videolan.org Mon Oct 26 11:02:59 2026 From: gitlab at videolan.org (Christophe Massiot (@cmassiot)) Date: Mon, 26 Oct 2026 12:02:59 +0100 Subject: [bTSstream-devel] [Git][videolan/bitstream][master] 2 commits: ietf/rtp: add rtp_get_payload_offset helper Message-ID: <6adf33637d8db_2588bd150edc078323f@gitlab.mail> Christophe Massiot pushed to branch master at VideoLAN / bitstream Commits: b4cec5dd by Marton Balint at 2026-10-04T19:40:14+02:00 ietf/rtp: add rtp_get_payload_offset helper Signed-off-by: Marton Balint - - - - - e6704204 by Marton Balint at 2026-10-04T19:45:31+02:00 ietf/rtp: use rtp_get_payload_offset() in rtp_payload_size() To avoid some pointer arithmetic which could be undefined behaviour in case of a corrupt RTP packet. Signed-off-by: Marton Balint - - - - - 1 changed file: - ietf/rtp.h Changes: ===================================== ietf/rtp.h ===================================== @@ -208,18 +208,23 @@ static inline uint16_t rtpx_get_length(const uint8_t *p_rtpx) return (p_rtpx[2] << 8) | p_rtpx[3]; } -static inline uint8_t *rtp_payload(uint8_t *p_rtp) +static inline uint32_t rtp_get_payload_offset(uint8_t *p_rtp) { - unsigned int i_size = RTP_HEADER_SIZE; + uint32_t i_size = RTP_HEADER_SIZE; i_size += 4 * rtp_get_cc(p_rtp); if (rtp_check_extension(p_rtp)) i_size += 4 * (1 + rtpx_get_length(rtp_extension(p_rtp))); - return p_rtp + i_size; + return i_size; +} + +static inline uint8_t *rtp_payload(uint8_t *p_rtp) +{ + return p_rtp + rtp_get_payload_offset(p_rtp); } static inline size_t rtp_payload_size(uint8_t *p_rtp, size_t i_rtp_size) { - size_t i_payload_size = i_rtp_size - (rtp_payload(p_rtp) - p_rtp); + size_t i_payload_size = i_rtp_size - rtp_get_payload_offset(p_rtp); uint8_t i_padding_size = 0; if (rtp_check_padding(p_rtp)) i_padding_size = p_rtp[i_rtp_size - 1]; View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/a3be36c2e916f94120a63621461f55e44a6d8eb9...e6704204fc0a53211614516aac25285e6cc6ac3f -- View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/a3be36c2e916f94120a63621461f55e44a6d8eb9...e6704204fc0a53211614516aac25285e6cc6ac3f You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Mon Oct 26 11:04:57 2026 From: gitlab at videolan.org (Christophe Massiot (@cmassiot)) Date: Mon, 26 Oct 2026 12:04:57 +0100 Subject: [bTSstream-devel] [Git][videolan/bitstream][master] smpte/2108: add stddef.h include for NULL constant Message-ID: <6adf33d9a4bdb_2588bd177214878398c@gitlab.mail> Christophe Massiot pushed to branch master at VideoLAN / bitstream Commits: d0ab06c1 by Marton Balint at 2026-10-26T11:03:33+00:00 smpte/2108: add stddef.h include for NULL constant Fixes "make check". Signed-off-by: Marton Balint - - - - - 1 changed file: - smpte/2108.h Changes: ===================================== smpte/2108.h ===================================== @@ -34,6 +34,7 @@ #include /* uint8_t, uint16_t, etc... */ #include /* bool */ +#include /* NULL */ #ifdef __cplusplus extern "C" View it on GitLab: https://code.videolan.org/videolan/bitstream/-/commit/d0ab06c1da6da3e94bde422647df94b517b8af8c -- View it on GitLab: https://code.videolan.org/videolan/bitstream/-/commit/d0ab06c1da6da3e94bde422647df94b517b8af8c You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Mon Oct 26 11:06:45 2026 From: gitlab at videolan.org (Christophe Massiot (@cmassiot)) Date: Mon, 26 Oct 2026 12:06:45 +0100 Subject: [bTSstream-devel] [Git][videolan/bitstream][master] 3 commits: common: fix extra ; outside a function warnings Message-ID: <6adf34454805d_2588bd18dd787850f5@gitlab.mail> Christophe Massiot pushed to branch master at VideoLAN / bitstream Commits: a3fa7788 by Marton Balint at 2026-10-26T12:05:46+01:00 common: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - 35b58a6b by Marton Balint at 2026-10-26T12:05:46+01:00 dvb/si: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - e3fa0b83 by Marton Balint at 2026-10-26T12:05:46+01:00 mpeg/psi: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - 12 changed files: - common.h - dvb/si/desc_6f.h - dvb/si/desc_7f.h - dvb/si/desc_7f00.h - dvb/si/desc_7f06.h - dvb/si/desc_7f15.h - dvb/si/desc_7f19.h - dvb/si/desc_7f20.h - mpeg/psi/desc_13.h - mpeg/psi/desc_38.h - mpeg/psi/desc_3f.h - mpeg/psi/desc_3f03.h Changes: ===================================== common.h ===================================== @@ -150,10 +150,10 @@ static inline Type##_t bitstream_get_##Type(const uint8_t *p, \ return v; \ } -BITSTREAM_GET_TYPE(uint8); -BITSTREAM_GET_TYPE(uint16); -BITSTREAM_GET_TYPE(uint32); -BITSTREAM_GET_TYPE(uint64); +BITSTREAM_GET_TYPE(uint8) +BITSTREAM_GET_TYPE(uint16) +BITSTREAM_GET_TYPE(uint32) +BITSTREAM_GET_TYPE(uint64) #define BITSTREAM_SET_TYPE(Type) \ static inline void bitstream_set_##Type(uint8_t *p, \ @@ -170,10 +170,10 @@ static inline void bitstream_set_##Type(uint8_t *p, \ } \ } -BITSTREAM_SET_TYPE(uint8); -BITSTREAM_SET_TYPE(uint16); -BITSTREAM_SET_TYPE(uint32); -BITSTREAM_SET_TYPE(uint64); +BITSTREAM_SET_TYPE(uint8) +BITSTREAM_SET_TYPE(uint16) +BITSTREAM_SET_TYPE(uint32) +BITSTREAM_SET_TYPE(uint64) #define BITSTREAM_GET(Name, Field, Type, Position, Bits) \ static inline Type##_t Name##_get_##Field(const uint8_t *p) \ ===================================== dvb/si/desc_6f.h ===================================== @@ -69,8 +69,8 @@ static inline uint8_t *desc6f_next_application(const uint8_t *p_desc, #define desc6f_get_application(DESC, N) \ desc_get_at(DESC, N, desc6f_next_application) -BITSTREAM_GET_SET(desc6f_app, type, uint16, 1, 15); -BITSTREAM_GET_SET(desc6f_app, AIT_version_number, uint8, 19, 5); +BITSTREAM_GET_SET(desc6f_app, type, uint16, 1, 15) +BITSTREAM_GET_SET(desc6f_app, AIT_version_number, uint8, 19, 5) static inline bool desc6f_validate(const uint8_t *p_desc) { ===================================== dvb/si/desc_7f.h ===================================== @@ -138,7 +138,7 @@ static inline const char *desc7f_tag_extension_str(uint8_t tag) return "Unknown"; } -BITSTREAM_GET_SET(desc7f, tag_extension, uint8, 16, 8); +BITSTREAM_GET_SET(desc7f, tag_extension, uint8, 16, 8) static inline bool desc7f_validate(const uint8_t *p_desc) { ===================================== dvb/si/desc_7f00.h ===================================== @@ -55,9 +55,9 @@ static inline void desc7f00_init(uint8_t *p_desc) desc7f_set_tag_extension(p_desc, DESC7F_TAG_IMAGE_ICON); } -BITSTREAM_GET_SET(desc7f00, number, uint8, 24, 4); -BITSTREAM_GET_SET(desc7f00, last_descriptor_number, uint8, 28, 4); -BITSTREAM_GET_SET(desc7f00, icon_id, uint8, 37, 3); +BITSTREAM_GET_SET(desc7f00, number, uint8, 24, 4) +BITSTREAM_GET_SET(desc7f00, last_descriptor_number, uint8, 28, 4) +BITSTREAM_GET_SET(desc7f00, icon_id, uint8, 37, 3) static inline bool desc7f00_validate(const uint8_t *p_desc) { ===================================== dvb/si/desc_7f06.h ===================================== @@ -55,10 +55,10 @@ static inline void desc7f06_init(uint8_t *p_desc) desc7f_set_tag_extension(p_desc, DESC7F_TAG_SUPPLEMENTARY_AUDIO); } -BITSTREAM_GET_SET(desc7f06, mix_type, uint8, 24, 1); -BITSTREAM_GET_SET(desc7f06, editorial_classification, uint8, 25, 5); -BITSTREAM_GET_SET(desc7f06, language_code_present, uint8, 31, 1); -BITSTREAM_GET_SET(desc7f06_opt, language_code, uint32, 32, 24); +BITSTREAM_GET_SET(desc7f06, mix_type, uint8, 24, 1) +BITSTREAM_GET_SET(desc7f06, editorial_classification, uint8, 25, 5) +BITSTREAM_GET_SET(desc7f06, language_code_present, uint8, 31, 1) +BITSTREAM_GET_SET(desc7f06_opt, language_code, uint32, 32, 24) static inline uint32_t desc7f06_get_language_code(const uint8_t *p_desc) { ===================================== dvb/si/desc_7f15.h ===================================== @@ -54,10 +54,10 @@ static inline void desc7f15_init(uint8_t *p_desc) desc7f_set_tag_extension(p_desc, DESC7F_TAG_AC4); } -BITSTREAM_GET_SET(desc7f15, ac4_config_flag, uint8, 24, 1); -BITSTREAM_GET_SET(desc7f15, ac4_toc_flag, uint8, 25, 1); -BITSTREAM_GET_SET(desc7f15_opt, ac4_dialog_enhancement_enabled, uint8, 32, 1); -BITSTREAM_GET_SET(desc7f15_opt, ac4_channel_mode, uint8, 33, 2); +BITSTREAM_GET_SET(desc7f15, ac4_config_flag, uint8, 24, 1) +BITSTREAM_GET_SET(desc7f15, ac4_toc_flag, uint8, 25, 1) +BITSTREAM_GET_SET(desc7f15_opt, ac4_dialog_enhancement_enabled, uint8, 32, 1) +BITSTREAM_GET_SET(desc7f15_opt, ac4_channel_mode, uint8, 33, 2) static inline uint8_t desc7f15_get_ac4_dialog_enhancement_enabled(const uint8_t *p_desc) ===================================== dvb/si/desc_7f19.h ===================================== @@ -62,18 +62,18 @@ static inline void desc7f19_init(uint8_t *p_desc) desc7f_set_tag_extension(p_desc, DESC7F_TAG_AUDIO_PRESELECTION); } -BITSTREAM_GET_SET(desc7f19, num_preselections, uint8, 24, 5); +BITSTREAM_GET_SET(desc7f19, num_preselections, uint8, 24, 5) -BITSTREAM_GET_SET(desc7f19_presel, preselection_id, uint8, 0, 5); -BITSTREAM_GET_SET(desc7f19_presel, audio_rendering_indication, uint8, 5, 3); -BITSTREAM_GET_SET(desc7f19_presel, audio_description, uint8, 8, 1); -BITSTREAM_GET_SET(desc7f19_presel, spoken_subtitles, uint8, 9, 1); -BITSTREAM_GET_SET(desc7f19_presel, dialogue_enhancement, uint8, 10, 1); -BITSTREAM_GET_SET(desc7f19_presel, interactivity_enabled, uint8, 11, 1); -BITSTREAM_GET_SET(desc7f19_presel, language_code_present, uint8, 12, 1); -BITSTREAM_GET_SET(desc7f19_presel, text_label_present, uint8, 13, 1); -BITSTREAM_GET_SET(desc7f19_presel, multi_stream_info_present, uint8, 14, 1); -BITSTREAM_GET_SET(desc7f19_presel, future_extension, uint8, 15, 1); +BITSTREAM_GET_SET(desc7f19_presel, preselection_id, uint8, 0, 5) +BITSTREAM_GET_SET(desc7f19_presel, audio_rendering_indication, uint8, 5, 3) +BITSTREAM_GET_SET(desc7f19_presel, audio_description, uint8, 8, 1) +BITSTREAM_GET_SET(desc7f19_presel, spoken_subtitles, uint8, 9, 1) +BITSTREAM_GET_SET(desc7f19_presel, dialogue_enhancement, uint8, 10, 1) +BITSTREAM_GET_SET(desc7f19_presel, interactivity_enabled, uint8, 11, 1) +BITSTREAM_GET_SET(desc7f19_presel, language_code_present, uint8, 12, 1) +BITSTREAM_GET_SET(desc7f19_presel, text_label_present, uint8, 13, 1) +BITSTREAM_GET_SET(desc7f19_presel, multi_stream_info_present, uint8, 14, 1) +BITSTREAM_GET_SET(desc7f19_presel, future_extension, uint8, 15, 1) static inline uint8_t * desc7f19_presel_get_language_code_ptr(const uint8_t *p_desc_n) @@ -94,7 +94,7 @@ desc7f19_presel_get_text_label_ptr(const uint8_t *p_desc_n) return (uint8_t *)(p_desc_n + DESC7F19_PRESEL_SIZE); } -BITSTREAM_GET_SET(desc7f19_presel_text, message_id, uint8, 0, 8); +BITSTREAM_GET_SET(desc7f19_presel_text, message_id, uint8, 0, 8) static inline uint8_t * desc7f19_presel_get_multi_stream_info_ptr(const uint8_t *p_desc_n) @@ -110,7 +110,7 @@ desc7f19_presel_get_multi_stream_info_ptr(const uint8_t *p_desc_n) return (uint8_t *)(p_desc_n + DESC7F19_PRESEL_SIZE); } -BITSTREAM_GET_SET(desc7f19_presel_msi, num_aux_components, uint8, 0, 3); +BITSTREAM_GET_SET(desc7f19_presel_msi, num_aux_components, uint8, 0, 3) static inline uint8_t * desc7f19_presel_get_future_extension_ptr(const uint8_t *p_desc_n) @@ -130,7 +130,7 @@ desc7f19_presel_get_future_extension_ptr(const uint8_t *p_desc_n) return (uint8_t *)(p_desc_n + DESC7F19_PRESEL_SIZE); } -BITSTREAM_GET_SET(desc7f19_presel_ext, length, uint8, 3, 5); +BITSTREAM_GET_SET(desc7f19_presel_ext, length, uint8, 3, 5) static inline uint8_t desc7f19_presel_get_header_length(const uint8_t *p_desc_n) { ===================================== dvb/si/desc_7f20.h ===================================== @@ -91,11 +91,11 @@ static inline void desc7f20_set_code(uint8_t *p_desc, const uint8_t p_code[3]) memcpy(p_desc + DESC7F_HEADER_SIZE, p_code, 3); } -BITSTREAM_GET_SET(desc7f20, subtitle_purpose, uint8, 48, 6); -BITSTREAM_GET_SET(desc7f20, tts_suitability, uint8, 54, 2); -BITSTREAM_GET_SET(desc7f20, essential_font_usage_flag, uint8, 56, 1); -BITSTREAM_GET_SET(desc7f20, qualifier_present_flag, uint8, 57, 1); -BITSTREAM_GET_SET(desc7f20, profile_count, uint8, 60, 4); +BITSTREAM_GET_SET(desc7f20, subtitle_purpose, uint8, 48, 6) +BITSTREAM_GET_SET(desc7f20, tts_suitability, uint8, 54, 2) +BITSTREAM_GET_SET(desc7f20, essential_font_usage_flag, uint8, 56, 1) +BITSTREAM_GET_SET(desc7f20, qualifier_present_flag, uint8, 57, 1) +BITSTREAM_GET_SET(desc7f20, profile_count, uint8, 60, 4) /* Only the profile list is at a fixed offset; every field after it moves with * counts read out of the descriptor itself. */ @@ -114,12 +114,12 @@ static inline uint8_t *desc7f20_get_qualifier(const uint8_t *p_desc) desc7f20_get_profile_count(p_desc) * DESC7F20_PROFILE_SIZE; } -BITSTREAM_GET_SET(desc7f20_qualifier, size, uint8, 0, 4); -BITSTREAM_GET_SET(desc7f20_qualifier, cadence, uint8, 4, 4); -BITSTREAM_GET_SET(desc7f20_qualifier, monochrome_flag, uint8, 8, 1); +BITSTREAM_GET_SET(desc7f20_qualifier, size, uint8, 0, 4) +BITSTREAM_GET_SET(desc7f20_qualifier, cadence, uint8, 4, 4) +BITSTREAM_GET_SET(desc7f20_qualifier, monochrome_flag, uint8, 8, 1) BITSTREAM_GET_SET(desc7f20_qualifier, enhanced_accessibility_contrast_flag, uint8, 9, 1); -BITSTREAM_GET_SET(desc7f20_qualifier, position, uint8, 10, 4); +BITSTREAM_GET_SET(desc7f20_qualifier, position, uint8, 10, 4) static inline uint8_t *desc7f20_get_font_count(const uint8_t *p_desc) { @@ -139,7 +139,7 @@ static inline uint8_t *desc7f20_get_font(const uint8_t *p_desc, uint8_t n) return p_font_count + DESC7F20_FONT_COUNT_SIZE + n * DESC7F20_FONT_SIZE; } -BITSTREAM_GET_SET(desc7f20_font, font_id, uint8, 1, 7); +BITSTREAM_GET_SET(desc7f20_font, font_id, uint8, 1, 7) static inline uint8_t *desc7f20_get_text_length(const uint8_t *p_desc) { ===================================== mpeg/psi/desc_13.h ===================================== @@ -61,7 +61,7 @@ static inline bool desc13_validate(const uint8_t *p_desc) return size <= desc_length; } -BITSTREAM_GET_SET(desc13, id, uint8, 16, 32); +BITSTREAM_GET_SET(desc13, id, uint8, 16, 32) static inline void desc13_print(const uint8_t *p_desc, f_print pf_print, void *opaque, print_type_t i_print_type) ===================================== mpeg/psi/desc_38.h ===================================== @@ -55,21 +55,21 @@ static inline void desc38_init(uint8_t *p_desc) desc_set_length(p_desc, (DESC38_HEADER_SIZE - DESC_HEADER_SIZE)); } -BITSTREAM_GET_SET(desc38, profile_space, uint8, 16, 2); -BITSTREAM_GET_SET(desc38, tier_flag, uint8, 18, 1); -BITSTREAM_GET_SET(desc38, profile_idc, uint8, 19, 5); -BITSTREAM_GET_SET(desc38, profile_compatibility_indication, uint32, 24, 32); -BITSTREAM_GET_SET(desc38, progressive_source_flag, uint8, 56, 1); -BITSTREAM_GET_SET(desc38, interlaced_source_flag, uint8, 57, 1); -BITSTREAM_GET_SET(desc38, non_packed_constraint_flag, uint8, 58, 1); -BITSTREAM_GET_SET(desc38, frame_only_constraint_flag, uint8, 59, 1); -BITSTREAM_GET_SET(desc38, copied_44bits, uint64, 60, 44); -BITSTREAM_GET_SET(desc38, level_idc, uint8, 104, 8); -BITSTREAM_GET_SET(desc38, temporal_layer_subset_flag, uint8, 112, 1); -BITSTREAM_GET_SET(desc38, HEVC_still_present_flag, uint8, 113, 1); -BITSTREAM_GET_SET(desc38, HEVC_24hr_picture_present_flag, uint8, 114, 1); -BITSTREAM_GET_SET(desc38, sub_pic_hrd_params_not_present_flag, uint8, 115, 1); -BITSTREAM_GET_SET(desc38, HDR_WCG_idc, uint8, 118, 2); +BITSTREAM_GET_SET(desc38, profile_space, uint8, 16, 2) +BITSTREAM_GET_SET(desc38, tier_flag, uint8, 18, 1) +BITSTREAM_GET_SET(desc38, profile_idc, uint8, 19, 5) +BITSTREAM_GET_SET(desc38, profile_compatibility_indication, uint32, 24, 32) +BITSTREAM_GET_SET(desc38, progressive_source_flag, uint8, 56, 1) +BITSTREAM_GET_SET(desc38, interlaced_source_flag, uint8, 57, 1) +BITSTREAM_GET_SET(desc38, non_packed_constraint_flag, uint8, 58, 1) +BITSTREAM_GET_SET(desc38, frame_only_constraint_flag, uint8, 59, 1) +BITSTREAM_GET_SET(desc38, copied_44bits, uint64, 60, 44) +BITSTREAM_GET_SET(desc38, level_idc, uint8, 104, 8) +BITSTREAM_GET_SET(desc38, temporal_layer_subset_flag, uint8, 112, 1) +BITSTREAM_GET_SET(desc38, HEVC_still_present_flag, uint8, 113, 1) +BITSTREAM_GET_SET(desc38, HEVC_24hr_picture_present_flag, uint8, 114, 1) +BITSTREAM_GET_SET(desc38, sub_pic_hrd_params_not_present_flag, uint8, 115, 1) +BITSTREAM_GET_SET(desc38, HDR_WCG_idc, uint8, 118, 2) static inline uint8_t *desc38_get_temporal_layer_subset(const uint8_t *p_desc) { @@ -77,8 +77,8 @@ static inline uint8_t *desc38_get_temporal_layer_subset(const uint8_t *p_desc) (uint8_t *)(p_desc + DESC38_HEADER_SIZE) : NULL; } -BITSTREAM_GET_SET(desc38_temp_layer_subset, id_min, uint8, 0, 3); -BITSTREAM_GET_SET(desc38_temp_layer_subset, id_max, uint8, 8, 3); +BITSTREAM_GET_SET(desc38_temp_layer_subset, id_min, uint8, 0, 3) +BITSTREAM_GET_SET(desc38_temp_layer_subset, id_max, uint8, 8, 3) static inline bool desc38_validate(const uint8_t *p_desc) { ===================================== mpeg/psi/desc_3f.h ===================================== @@ -104,7 +104,7 @@ static inline const char *desc3f_tag_extension_str(uint8_t tag) return "Unknown"; } -BITSTREAM_GET_SET(desc3f, tag_extension, uint8, 16, 8); +BITSTREAM_GET_SET(desc3f, tag_extension, uint8, 16, 8) static inline bool desc3f_validate(const uint8_t *p_desc) { ===================================== mpeg/psi/desc_3f03.h ===================================== @@ -58,10 +58,10 @@ static inline void desc3f03_init(uint8_t *p_desc) desc3f_set_tag_extension(p_desc, DESC3F_TAG_HEVC_TIMING_HRD); } -BITSTREAM_GET_SET(desc3f03, hrd_management_valid_flag, uint8, 24, 1); -BITSTREAM_GET_SET(desc3f03, target_schedule_idx_not_present_flag, uint8, 25, 1); -BITSTREAM_GET_SET(desc3f03, target_schedule_idx, uint8, 26, 5); -BITSTREAM_GET_SET(desc3f03, picture_and_timing_info_present_flag, uint8, 31, 1); +BITSTREAM_GET_SET(desc3f03, hrd_management_valid_flag, uint8, 24, 1) +BITSTREAM_GET_SET(desc3f03, target_schedule_idx_not_present_flag, uint8, 25, 1) +BITSTREAM_GET_SET(desc3f03, target_schedule_idx, uint8, 26, 5) +BITSTREAM_GET_SET(desc3f03, picture_and_timing_info_present_flag, uint8, 31, 1) static inline uint8_t * desc3f03_get_picture_and_timing_info(const uint8_t *p_desc) @@ -70,7 +70,7 @@ desc3f03_get_picture_and_timing_info(const uint8_t *p_desc) (uint8_t *)(p_desc + DESC3F03_HEADER_SIZE) : NULL; } -BITSTREAM_GET_SET(desc3f03_pti, 90kHz_flag, uint8, 0, 1); +BITSTREAM_GET_SET(desc3f03_pti, 90kHz_flag, uint8, 0, 1) static inline uint8_t *desc3f03_pti_get_scale(const uint8_t *p_desc_n) { @@ -78,8 +78,8 @@ static inline uint8_t *desc3f03_pti_get_scale(const uint8_t *p_desc_n) (uint8_t *)(p_desc_n + 1) : NULL; } -BITSTREAM_GET_SET(desc3f03_pti_scale, n, uint32, 0, 32); -BITSTREAM_GET_SET(desc3f03_pti_scale, k, uint32, 32, 32); +BITSTREAM_GET_SET(desc3f03_pti_scale, n, uint32, 0, 32) +BITSTREAM_GET_SET(desc3f03_pti_scale, k, uint32, 32, 32) static inline uint8_t *desc3f03_pti_get_trailer(const uint8_t *p_desc_n) { @@ -88,7 +88,7 @@ static inline uint8_t *desc3f03_pti_get_trailer(const uint8_t *p_desc_n) (uint8_t *)(p_desc_n + 1 + DESC3F03_PTI_SCALE_SIZE); } -BITSTREAM_GET_SET(desc3f03_pti_trailer, num_units_in_tick, uint32, 0, 32); +BITSTREAM_GET_SET(desc3f03_pti_trailer, num_units_in_tick, uint32, 0, 32) static inline uint32_t desc3f03_pti_get_num_units_in_tick(const uint8_t *p_desc_n) View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/d0ab06c1da6da3e94bde422647df94b517b8af8c...e3fa0b8373efb4cfb191bbd9614037e21439d4f8 -- View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/d0ab06c1da6da3e94bde422647df94b517b8af8c...e3fa0b8373efb4cfb191bbd9614037e21439d4f8 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Mon Oct 26 11:15:44 2026 From: gitlab at videolan.org (Christophe Massiot (@cmassiot)) Date: Mon, 26 Oct 2026 12:15:44 +0100 Subject: [bTSstream-devel] [Git][videolan/bitstream][master] 8 commits: mpeg/psi: accept 4093-byte private sections in psi_assemble_payload Message-ID: <6adf3660bb9f5_2588bd4d68f907872c0@gitlab.mail> Christophe Massiot pushed to branch master at VideoLAN / bitstream Commits: 3aef4e96 by Ankit Garg at 2026-10-22T23:01:15+05:30 mpeg/psi: accept 4093-byte private sections in psi_assemble_payload PSI_PRIVATE_MAX_SIZE is the maximum section_length (4093), which makes for a 4096-byte section once the 3-byte header is added. The validity check compared the total section size against it, so sections with a section_length of 4091 to 4093 were wrongly dropped as invalid. Compare against PSI_PRIVATE_MAX_SIZE + PSI_HEADER_SIZE instead, which matches the size of the buffer allocated by psi_private_allocate(). - - - - - 23e77d9a by Marton Balint at 2026-10-26T12:14:47+01:00 ietf/rtp: add rtp_get_payload_offset helper Signed-off-by: Marton Balint - - - - - cdc965db by Marton Balint at 2026-10-26T12:14:47+01:00 ietf/rtp: use rtp_get_payload_offset() in rtp_payload_size() To avoid some pointer arithmetic which could be undefined behaviour in case of a corrupt RTP packet. Signed-off-by: Marton Balint - - - - - bec1e4a2 by Marton Balint at 2026-10-26T12:14:47+01:00 smpte/2108: add stddef.h include for NULL constant Fixes "make check". Signed-off-by: Marton Balint - - - - - df3b77dd by Marton Balint at 2026-10-26T12:14:47+01:00 common: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - fa976daf by Marton Balint at 2026-10-26T12:14:47+01:00 dvb/si: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - 0d1bb1cc by Marton Balint at 2026-10-26T12:14:47+01:00 mpeg/psi: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - 23489c01 by Christophe Massiot at 2026-10-26T12:15:32+01:00 Merge branch 'AnKiT-GaRG2-fix/psi-assemble-max-private-section' - - - - - 1 changed file: - mpeg/psi/psi.h Changes: ===================================== mpeg/psi/psi.h ===================================== @@ -362,7 +362,7 @@ static inline uint8_t *psi_assemble_payload(uint8_t **pp_psi_buffer, uint16_t i_section_size = psi_get_length(*pp_psi_buffer) + PSI_HEADER_SIZE; - if (i_section_size > PSI_PRIVATE_MAX_SIZE) { + if (i_section_size > PSI_PRIVATE_MAX_SIZE + PSI_HEADER_SIZE) { /* invalid section */ psi_assemble_reset(pp_psi_buffer, pi_psi_buffer_used); *pi_length = 0; View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/e3fa0b8373efb4cfb191bbd9614037e21439d4f8...23489c017d85fb8c6c62c1bf8d2ea07a3dbf6a09 -- View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/e3fa0b8373efb4cfb191bbd9614037e21439d4f8...23489c017d85fb8c6c62c1bf8d2ea07a3dbf6a09 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Mon Oct 26 11:17:05 2026 From: gitlab at videolan.org (Christophe Massiot (@cmassiot)) Date: Mon, 26 Oct 2026 12:17:05 +0100 Subject: [bTSstream-devel] [Git][videolan/bitstream][master] 10 commits: haivision/srt: add timeout and crypto handshake rejection codes Message-ID: <6adf36b16ab5e_2588bd5a060f47882f3@gitlab.mail> Christophe Massiot pushed to branch master at VideoLAN / bitstream Commits: fd94567b by Kieran Kunhya at 2026-07-29T10:53:39-04:00 haivision/srt: add timeout and crypto handshake rejection codes SRT_REJ_TIMEOUT and SRT_REJ_CRYPTO, the latter being sent when the two peers have conflicting crypto modes (AES-CTR vs AES-GCM). Co-Authored-By: Claude Opus 5 (1M context) - - - - - 6f590849 by Kieran Kunhya at 2026-10-26T12:16:23+01:00 dvb/si: add the TTML subtitling descriptor Extension descriptor 0x20 of ETSI EN 303 560, which signals a DVB TTML subtitle stream in the PMT: language, subtitle purpose, text-to-speech suitability, the TTML processor profiles the stream conforms to, and the optional presentation qualifier. Only the profile list sits at a fixed offset; the qualifier, the essential font list and the service description text each move with a count read out of the descriptor, so validate() walks them rather than checking a single length. Co-Authored-By: Claude Opus 5 (1M context) - - - - - 2be6a5c8 by Marton Balint at 2026-10-26T12:16:23+01:00 ietf/rtp: add rtp_get_payload_offset helper Signed-off-by: Marton Balint - - - - - 863c5475 by Marton Balint at 2026-10-26T12:16:23+01:00 ietf/rtp: use rtp_get_payload_offset() in rtp_payload_size() To avoid some pointer arithmetic which could be undefined behaviour in case of a corrupt RTP packet. Signed-off-by: Marton Balint - - - - - 1d3ae048 by Marton Balint at 2026-10-26T12:16:23+01:00 smpte/2108: add stddef.h include for NULL constant Fixes "make check". Signed-off-by: Marton Balint - - - - - b43be8ea by Marton Balint at 2026-10-26T12:16:23+01:00 common: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - 19e3b939 by Marton Balint at 2026-10-26T12:16:23+01:00 dvb/si: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - 51affaf7 by Marton Balint at 2026-10-26T12:16:23+01:00 mpeg/psi: fix extra ; outside a function warnings Signed-off-by: Marton Balint - - - - - 1a118050 by Ankit Garg at 2026-10-26T12:16:23+01:00 mpeg/psi: accept 4093-byte private sections in psi_assemble_payload PSI_PRIVATE_MAX_SIZE is the maximum section_length (4093), which makes for a 4096-byte section once the 3-byte header is added. The validity check compared the total section size against it, so sections with a section_length of 4091 to 4093 were wrongly dropped as invalid. Compare against PSI_PRIVATE_MAX_SIZE + PSI_HEADER_SIZE instead, which matches the size of the buffer allocated by psi_private_allocate(). - - - - - e196e904 by Christophe Massiot at 2026-10-26T12:16:56+01:00 Merge branch 'kierank-srt' - - - - - 0 changed files: Changes: View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/23489c017d85fb8c6c62c1bf8d2ea07a3dbf6a09...e196e90470297678f90d4780d5b546d97f0270b7 -- View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/23489c017d85fb8c6c62c1bf8d2ea07a3dbf6a09...e196e90470297678f90d4780d5b546d97f0270b7 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help From gitlab at videolan.org Mon Oct 26 11:20:53 2026 From: gitlab at videolan.org (Christophe Massiot (@cmassiot)) Date: Mon, 26 Oct 2026 12:20:53 +0100 Subject: [bTSstream-devel] [Git][videolan/bitstream][master] 3 commits: dvb/si: add the TTML subtitling descriptor Message-ID: <6adf3795ccd84_2588bd59c967c78878f@gitlab.mail> Christophe Massiot pushed to branch master at VideoLAN / bitstream Commits: 5eb6c60c by Kieran Kunhya at 2026-08-27T10:05:57+01:00 dvb/si: add the TTML subtitling descriptor Extension descriptor 0x20 of ETSI EN 303 560, which signals a DVB TTML subtitle stream in the PMT: language, subtitle purpose, text-to-speech suitability, the TTML processor profiles the stream conforms to, and the optional presentation qualifier. Only the profile list sits at a fixed offset; the qualifier, the essential font list and the service description text each move with a count read out of the descriptor, so validate() walks them rather than checking a single length. Co-Authored-By: Claude Opus 5 (1M context) - - - - - d188fab4 by Christophe Massiot at 2026-10-26T12:19:16+01:00 Merge branch 'master' into ttml - - - - - 5bdcdb71 by Christophe Massiot at 2026-10-26T12:20:43+01:00 Merge branch 'kierank-ttml' - - - - - 0 changed files: Changes: View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/e196e90470297678f90d4780d5b546d97f0270b7...5bdcdb719b3e09b77f0e4201b67abb070ed561f9 -- View it on GitLab: https://code.videolan.org/videolan/bitstream/-/compare/e196e90470297678f90d4780d5b546d97f0270b7...5bdcdb719b3e09b77f0e4201b67abb070ed561f9 You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help