#define FUNC_H264(rw, name) FUNC_NAME(rw, h264, name)
#define FUNC_H265(rw, name) FUNC_NAME(rw, h265, name)
+#define fixed(width, name, value) do { \
+ av_unused uint32_t fixed_value = value; \
+ xu(width, name, fixed_value, value, value); \
+ } while (0)
+
#define READ
#define READWRITE read
static int FUNC(rbsp_trailing_bits)(CodedBitstreamContext *ctx, RWContext *rw)
{
int err;
- av_unused int one = 1, zero = 0;
- xu(1, rbsp_stop_one_bit, one, 1, 1);
+
+ fixed(1, rbsp_stop_one_bit, 1);
while (byte_alignment(rw) != 0)
- xu(1, rbsp_alignment_zero_bit, zero, 0, 0);
+ fixed(1, rbsp_alignment_zero_bit, 0);
return 0;
}
break;
case H264_SEI_TYPE_FILLER_PAYLOAD:
{
- av_unused int ff_byte = 0xff;
for (i = 0; i < current->payload_size; i++)
- xu(8, ff_byte, ff_byte, 0xff, 0xff);
+ fixed(8, ff_byte, 0xff);
}
break;
case H264_SEI_TYPE_USER_DATA_REGISTERED:
}
if (byte_alignment(rw)) {
- av_unused int one = 1, zero = 0;
- xu(1, bit_equal_to_one, one, 1, 1);
+ fixed(1, bit_equal_to_one, 1);
while (byte_alignment(rw))
- xu(1, bit_equal_to_zero, zero, 0, 0);
+ fixed(1, bit_equal_to_zero, 0);
}
#ifdef READ
uint32_t tmp;
while (show_bits(rw, 8) == 0xff) {
- xu(8, ff_byte, tmp, 0xff, 0xff);
+ fixed(8, ff_byte, 0xff);
payload_type += 255;
}
xu(8, last_payload_type_byte, tmp, 0, 254);
payload_type += tmp;
while (show_bits(rw, 8) == 0xff) {
- xu(8, ff_byte, tmp, 0xff, 0xff);
+ fixed(8, ff_byte, 0xff);
payload_size += 255;
}
xu(8, last_payload_size_byte, tmp, 0, 254);
tmp = current->payload[k].payload_type;
while (tmp >= 255) {
- xu(8, ff_byte, 0xff, 0xff, 0xff);
+ fixed(8, ff_byte, 0xff);
tmp -= 255;
}
xu(8, last_payload_type_byte, tmp, 0, 254);
tmp = current->payload[k].payload_size;
while (tmp >= 255) {
- xu(8, ff_byte, 0xff, 0xff, 0xff);
+ fixed(8, ff_byte, 0xff);
tmp -= 255;
}
xu(8, last_payload_size_byte, tmp, 0, 254);
}
if (pps->entropy_coding_mode_flag) {
- av_unused int one = 1;
while (byte_alignment(rw))
- xu(1, cabac_alignment_one_bit, one, 1, 1);
+ fixed(1, cabac_alignment_one_bit, 1);
}
return 0;
static int FUNC(filler)(CodedBitstreamContext *ctx, RWContext *rw,
H264RawFiller *current)
{
- av_unused int ff_byte = 0xff;
int err;
HEADER("Filler Data");
#ifdef READ
while (show_bits(rw, 8) == 0xff) {
- xu(8, ff_byte, ff_byte, 0xff, 0xff);
+ fixed(8, ff_byte, 0xff);
++current->filler_size;
}
#else
{
uint32_t i;
for (i = 0; i < current->filler_size; i++)
- xu(8, ff_byte, ff_byte, 0xff, 0xff);
+ fixed(8, ff_byte, 0xff);
}
#endif
static int FUNC(rbsp_trailing_bits)(CodedBitstreamContext *ctx, RWContext *rw)
{
int err;
- av_unused int one = 1, zero = 0;
- xu(1, rbsp_stop_one_bit, one, 1, 1);
+
+ fixed(1, rbsp_stop_one_bit, 1);
while (byte_alignment(rw) != 0)
- xu(1, rbsp_alignment_zero_bit, zero, 0, 0);
+ fixed(1, rbsp_alignment_zero_bit, 0);
return 0;
}
static int FUNC(byte_alignment)(CodedBitstreamContext *ctx, RWContext *rw)
{
int err;
- av_unused int one = 1, zero = 0;
- xu(1, alignment_bit_equal_to_one, one, 1, 1);
+
+ fixed(1, alignment_bit_equal_to_one, 1);
while (byte_alignment(rw) != 0)
- xu(1, alignment_bit_equal_to_zero, zero, 0, 0);
+ fixed(1, alignment_bit_equal_to_zero, 0);
return 0;
}
int profile_present_flag,
int max_num_sub_layers_minus1)
{
- av_unused unsigned int zero = 0;
int err, i, j;
if (profile_present_flag) {
if (profile_compatible(5) || profile_compatible(9) ||
profile_compatible(10)) {
flag(general_max_14bit_constraint_flag);
- xu(24, general_reserved_zero_33bits, zero, 0, 0);
- xu(9, general_reserved_zero_33bits, zero, 0, 0);
+ fixed(24, general_reserved_zero_33bits, 0);
+ fixed( 9, general_reserved_zero_33bits, 0);
} else {
- xu(24, general_reserved_zero_34bits, zero, 0, 0);
- xu(10, general_reserved_zero_34bits, zero, 0, 0);
+ fixed(24, general_reserved_zero_34bits, 0);
+ fixed(10, general_reserved_zero_34bits, 0);
}
} else {
- xu(24, general_reserved_zero_43bits, zero, 0, 0);
- xu(19, general_reserved_zero_43bits, zero, 0, 0);
+ fixed(24, general_reserved_zero_43bits, 0);
+ fixed(19, general_reserved_zero_43bits, 0);
}
if (profile_compatible(1) || profile_compatible(2) ||
profile_compatible(5) || profile_compatible(9)) {
flag(general_inbld_flag);
} else {
- xu(1, general_reserved_zero_bit, zero, 0, 0);
+ fixed(1, general_reserved_zero_bit, 0);
}
#undef profile_compatible
}
}
if (max_num_sub_layers_minus1 > 0) {
- for (i = max_num_sub_layers_minus1; i < 8; i++) {
- av_unused int zero = 0;
- xu(2, reserved_zero_2bits, zero, 0, 0);
- }
+ for (i = max_num_sub_layers_minus1; i < 8; i++)
+ fixed(2, reserved_zero_2bits, 0);
}
for (i = 0; i < max_num_sub_layers_minus1; i++) {
return AVERROR_INVALIDDATA;
}
- {
- av_unused uint16_t ffff = 0xffff;
- xu(16, vps_reserved_0xffff_16bits, ffff, 0xffff, 0xffff);
- }
+ fixed(16, vps_reserved_0xffff_16bits, 0xffff);
CHECK(FUNC(profile_tier_level)(ctx, rw, ¤t->profile_tier_level,
1, current->vps_max_sub_layers_minus1));