mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-10-03 09:27:53 +02:00
hevc: remove disable_au option(cherry picked from commit e90b3f6753d645fec076e951a0597a5dc2d2fe31)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
23c0698499
commit
1912842045
@ -2107,35 +2107,34 @@ static int decode_nal_units(HEVCContext *s, const uint8_t *buf, int length)
|
|||||||
HEVCNAL *nal;
|
HEVCNAL *nal;
|
||||||
int extract_length = 0;
|
int extract_length = 0;
|
||||||
|
|
||||||
if (s->disable_au == 0) {
|
if (s->is_nalff) {
|
||||||
if (s->is_nalff) {
|
int i;
|
||||||
int i;
|
for (i = 0; i < s->nal_length_size; i++)
|
||||||
for (i = 0; i < s->nal_length_size; i++)
|
extract_length = (extract_length << 8) | buf[i];
|
||||||
extract_length = (extract_length << 8) | buf[i];
|
buf += s->nal_length_size;
|
||||||
buf += s->nal_length_size;
|
length -= s->nal_length_size;
|
||||||
length -= s->nal_length_size;
|
|
||||||
|
|
||||||
if (extract_length > length) {
|
if (extract_length > length) {
|
||||||
av_log(s->avctx, AV_LOG_ERROR, "Invalid NAL unit size.\n");
|
av_log(s->avctx, AV_LOG_ERROR, "Invalid NAL unit size.\n");
|
||||||
ret = AVERROR_INVALIDDATA;
|
ret = AVERROR_INVALIDDATA;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (buf[2] == 0) {
|
|
||||||
length--;
|
|
||||||
buf++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (buf[0] != 0 || buf[1] != 0 || buf[2] != 1) {
|
|
||||||
ret = AVERROR_INVALIDDATA;
|
|
||||||
goto fail;
|
|
||||||
}
|
|
||||||
|
|
||||||
buf += 3;
|
|
||||||
length -= 3;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (buf[2] == 0) {
|
||||||
|
length--;
|
||||||
|
buf++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (buf[0] != 0 || buf[1] != 0 || buf[2] != 1) {
|
||||||
|
ret = AVERROR_INVALIDDATA;
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf += 3;
|
||||||
|
length -= 3;
|
||||||
}
|
}
|
||||||
if (!s->is_nalff || s->disable_au)
|
|
||||||
|
if (!s->is_nalff)
|
||||||
extract_length = length;
|
extract_length = length;
|
||||||
|
|
||||||
if (s->nals_allocated < s->nb_nals + 1) {
|
if (s->nals_allocated < s->nb_nals + 1) {
|
||||||
@ -2578,8 +2577,6 @@ static void hevc_decode_flush(AVCodecContext *avctx)
|
|||||||
#define OFFSET(x) offsetof(HEVCContext, x)
|
#define OFFSET(x) offsetof(HEVCContext, x)
|
||||||
#define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
|
#define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
|
||||||
static const AVOption options[] = {
|
static const AVOption options[] = {
|
||||||
{ "disable-au", "disable read frame AU by AU", OFFSET(disable_au),
|
|
||||||
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, PAR },
|
|
||||||
{ "strict-displaywin", "stricly apply default display window size", OFFSET(strict_def_disp_win),
|
{ "strict-displaywin", "stricly apply default display window size", OFFSET(strict_def_disp_win),
|
||||||
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, PAR },
|
AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, PAR },
|
||||||
{ NULL },
|
{ NULL },
|
||||||
|
@ -756,7 +756,6 @@ typedef struct HEVCContext {
|
|||||||
|
|
||||||
HEVCLocalContext HEVClc;
|
HEVCLocalContext HEVClc;
|
||||||
|
|
||||||
int disable_au;
|
|
||||||
int width;
|
int width;
|
||||||
int height;
|
int height;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user