mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-26 01:02:33 +00:00
avcodec/cbs_h2645: Move zero_byte check to its own function
Signed-off-by: Mark Thompson <sw@jkqxz.net>
This commit is contained in:
parent
71de4ebede
commit
2ad21ee9d4
@ -1207,6 +1207,22 @@ static int cbs_h265_write_nal_unit(CodedBitstreamContext *ctx,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cbs_h2645_unit_requires_zero_byte(enum AVCodecID codec_id,
|
||||
CodedBitstreamUnitType type,
|
||||
int nal_unit_index)
|
||||
{
|
||||
// Section B.1.2 in H.264, section B.2.2 in H.265.
|
||||
if (nal_unit_index == 0) {
|
||||
// Assume that this is the first NAL unit in an access unit.
|
||||
return 1;
|
||||
}
|
||||
if (codec_id == AV_CODEC_ID_H264)
|
||||
return type == H264_NAL_SPS || type == H264_NAL_PPS;
|
||||
if (codec_id == AV_CODEC_ID_HEVC)
|
||||
return type == HEVC_NAL_VPS || type == HEVC_NAL_SPS || type == HEVC_NAL_PPS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx,
|
||||
CodedBitstreamFragment *frag)
|
||||
{
|
||||
@ -1241,14 +1257,7 @@ static int cbs_h2645_assemble_fragment(CodedBitstreamContext *ctx,
|
||||
frag->data_bit_padding = unit->data_bit_padding;
|
||||
}
|
||||
|
||||
if ((ctx->codec->codec_id == AV_CODEC_ID_H264 &&
|
||||
(unit->type == H264_NAL_SPS ||
|
||||
unit->type == H264_NAL_PPS)) ||
|
||||
(ctx->codec->codec_id == AV_CODEC_ID_HEVC &&
|
||||
(unit->type == HEVC_NAL_VPS ||
|
||||
unit->type == HEVC_NAL_SPS ||
|
||||
unit->type == HEVC_NAL_PPS)) ||
|
||||
i == 0 /* (Assume this is the start of an access unit.) */) {
|
||||
if (cbs_h2645_unit_requires_zero_byte(ctx->codec->codec_id, unit->type, i)) {
|
||||
// zero_byte
|
||||
data[dp++] = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user