forked from FFmpeg/FFmpeg
avcodec/cbs_h265: move the payload_extension_present check into its own function
Will be reused in the following patch. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
bdfc1d3cd3
commit
3a41bac4e2
2 changed files with 13 additions and 6 deletions
|
@ -233,6 +233,16 @@ static int cbs_write_se_golomb(CodedBitstreamContext *ctx, PutBitContext *pbc,
|
|||
return 0;
|
||||
}
|
||||
|
||||
// payload_extension_present() - true if we are before the last 1-bit
|
||||
// in the payload structure, which must be in the last byte.
|
||||
static int cbs_h265_payload_extension_present(GetBitContext *gbc, uint32_t payload_size,
|
||||
int cur_pos)
|
||||
{
|
||||
int bits_left = payload_size * 8 - cur_pos;
|
||||
return (bits_left > 0 &&
|
||||
(bits_left > 7 || show_bits(gbc, bits_left) & MAX_UINT_BITS(bits_left - 1)));
|
||||
}
|
||||
|
||||
#define HEADER(name) do { \
|
||||
ff_cbs_trace_header(ctx, name); \
|
||||
} while (0)
|
||||
|
|
|
@ -1572,7 +1572,7 @@ static int FUNC(sei_buffering_period)(CodedBitstreamContext *ctx, RWContext *rw,
|
|||
int err, i, length;
|
||||
|
||||
#ifdef READ
|
||||
int start_pos, end_pos, bits_left;
|
||||
int start_pos, end_pos;
|
||||
start_pos = get_bits_count(rw);
|
||||
#endif
|
||||
|
||||
|
@ -1651,12 +1651,9 @@ static int FUNC(sei_buffering_period)(CodedBitstreamContext *ctx, RWContext *rw,
|
|||
}
|
||||
|
||||
#ifdef READ
|
||||
// payload_extension_present() - true if we are before the last 1-bit
|
||||
// in the payload structure, which must be in the last byte.
|
||||
end_pos = get_bits_count(rw);
|
||||
bits_left = *payload_size * 8 - (end_pos - start_pos);
|
||||
if (bits_left > 0 &&
|
||||
(bits_left > 7 || ff_ctz(show_bits(rw, bits_left)) < bits_left - 1))
|
||||
if (cbs_h265_payload_extension_present(rw, *payload_size,
|
||||
end_pos - start_pos))
|
||||
flag(use_alt_cpb_params_flag);
|
||||
else
|
||||
infer(use_alt_cpb_params_flag, 0);
|
||||
|
|
Loading…
Add table
Reference in a new issue