[libdvdnav-devel] [Git][videolan/libdvdnav][master] dvdnav_internal: avoid forcing a higher length in bitfield structures
Jean-Baptiste Kempf (@jbk)
gitlab at videolan.org
Mon Aug 11 12:19:47 UTC 2025
Jean-Baptiste Kempf pushed to branch master at VideoLAN / libdvdnav
Commits:
7038a7ca by Steve Lhomme at 2025-08-11T12:18:39+00:00
dvdnav_internal: avoid forcing a higher length in bitfield structures
LLVM ends up using the size of an unsigned int if it's used in the bitfield.
In other places the bitfields are using unsigned char which always uses the
proper size in the packed structures.
Similar commit as [^1] for libdvdread
[^1] https://code.videolan.org/videolan/libdvdread/-/commit/ea158e812abe9990c971b095a13d35c9bfae4cc7
- - - - -
1 changed file:
- src/dvdnav_internal.h
Changes:
=====================================
src/dvdnav_internal.h
=====================================
@@ -94,15 +94,15 @@ typedef struct read_cache_s read_cache_t;
#ifndef audio_status_t
typedef struct {
#ifdef WORDS_BIGENDIAN
- unsigned int available : 1;
- unsigned int zero1 : 4;
- unsigned int stream_number : 3;
+ unsigned char available : 1;
+ unsigned char zero1 : 4;
+ unsigned char stream_number : 3;
uint8_t zero2;
#else
uint8_t zero2;
- unsigned int stream_number : 3;
- unsigned int zero1 : 4;
- unsigned int available : 1;
+ unsigned char stream_number : 3;
+ unsigned char zero1 : 4;
+ unsigned char available : 1;
#endif
} ATTRIBUTE_PACKED audio_status_t;
#endif
@@ -110,25 +110,25 @@ typedef struct {
#ifndef spu_status_t
typedef struct {
#ifdef WORDS_BIGENDIAN
- unsigned int available : 1;
- unsigned int zero1 : 2;
- unsigned int stream_number_4_3 : 5;
- unsigned int zero2 : 3;
- unsigned int stream_number_wide : 5;
- unsigned int zero3 : 3;
- unsigned int stream_number_letterbox : 5;
- unsigned int zero4 : 3;
- unsigned int stream_number_pan_scan : 5;
+ unsigned char available : 1;
+ unsigned char zero1 : 2;
+ unsigned char stream_number_4_3 : 5;
+ unsigned char zero2 : 3;
+ unsigned char stream_number_wide : 5;
+ unsigned char zero3 : 3;
+ unsigned char stream_number_letterbox : 5;
+ unsigned char zero4 : 3;
+ unsigned char stream_number_pan_scan : 5;
#else
- unsigned int stream_number_pan_scan : 5;
- unsigned int zero4 : 3;
- unsigned int stream_number_letterbox : 5;
- unsigned int zero3 : 3;
- unsigned int stream_number_wide : 5;
- unsigned int zero2 : 3;
- unsigned int stream_number_4_3 : 5;
- unsigned int zero1 : 2;
- unsigned int available : 1;
+ unsigned char stream_number_pan_scan : 5;
+ unsigned char zero4 : 3;
+ unsigned char stream_number_letterbox : 5;
+ unsigned char zero3 : 3;
+ unsigned char stream_number_wide : 5;
+ unsigned char zero2 : 3;
+ unsigned char stream_number_4_3 : 5;
+ unsigned char zero1 : 2;
+ unsigned char available : 1;
#endif
} ATTRIBUTE_PACKED spu_status_t;
#endif
View it on GitLab: https://code.videolan.org/videolan/libdvdnav/-/commit/7038a7ca9d2eceb6f8ad345f65e37119f270219d
--
View it on GitLab: https://code.videolan.org/videolan/libdvdnav/-/commit/7038a7ca9d2eceb6f8ad345f65e37119f270219d
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the libdvdnav-devel
mailing list