Message ID | 20210417173111.20314-1-anton@khirnov.net |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] lavc/libaomdec: fix build without AOM_CTRL_AOMD_GET_FRAME_FLAGS | expand |
Context | Check | Description |
---|---|---|
andriy/configure | warning | Failed to apply patch |
On 4/17/2021 2:31 PM, Anton Khirnov wrote: > --- > libavcodec/libaomdec.c | 22 ++++++++++++---------- > 1 file changed, 12 insertions(+), 10 deletions(-) > > diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c > index 6de3bcc5c3..143c45b620 100644 > --- a/libavcodec/libaomdec.c > +++ b/libavcodec/libaomdec.c > @@ -161,7 +161,6 @@ static int aom_decode(AVCodecContext *avctx, void *data, int *got_frame, > AVFrame *picture = data; > const void *iter = NULL; > struct aom_image *img; > - aom_codec_frame_flags_t av_unused flags; > int ret; > > if (aom_codec_decode(&ctx->decoder, avpkt->data, avpkt->size, NULL) != > @@ -200,15 +199,18 @@ static int aom_decode(AVCodecContext *avctx, void *data, int *got_frame, > return ret; > > #ifdef AOM_CTRL_AOMD_GET_FRAME_FLAGS > - ret = aom_codec_control(&ctx->decoder, AOMD_GET_FRAME_FLAGS, &flags); > - if (ret == AOM_CODEC_OK) { > - picture->key_frame = !!(flags & AOM_FRAME_IS_KEY); > - if (flags & (AOM_FRAME_IS_KEY | AOM_FRAME_IS_INTRAONLY)) > - picture->pict_type = AV_PICTURE_TYPE_I; > - else if (flags & AOM_FRAME_IS_SWITCH) > - picture->pict_type = AV_PICTURE_TYPE_SP; > - else > - picture->pict_type = AV_PICTURE_TYPE_P; > + { > + aom_codec_frame_flags_t av_unused flags; > + ret = aom_codec_control(&ctx->decoder, AOMD_GET_FRAME_FLAGS, &flags); > + if (ret == AOM_CODEC_OK) { > + picture->key_frame = !!(flags & AOM_FRAME_IS_KEY); > + if (flags & (AOM_FRAME_IS_KEY | AOM_FRAME_IS_INTRAONLY)) > + picture->pict_type = AV_PICTURE_TYPE_I; > + else if (flags & AOM_FRAME_IS_SWITCH) > + picture->pict_type = AV_PICTURE_TYPE_SP; > + else > + picture->pict_type = AV_PICTURE_TYPE_P; > + } > } > #endif LGTM. For context, aom_codec_frame_flags_t in libaom 1.0.0 is defined in aom_encoder.h, whereas for newer versions it was moved to aom_codec.h
On 4/17/2021 3:15 PM, James Almer wrote: > On 4/17/2021 2:31 PM, Anton Khirnov wrote: >> --- >> libavcodec/libaomdec.c | 22 ++++++++++++---------- >> 1 file changed, 12 insertions(+), 10 deletions(-) >> >> diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c >> index 6de3bcc5c3..143c45b620 100644 >> --- a/libavcodec/libaomdec.c >> +++ b/libavcodec/libaomdec.c >> @@ -161,7 +161,6 @@ static int aom_decode(AVCodecContext *avctx, void >> *data, int *got_frame, >> AVFrame *picture = data; >> const void *iter = NULL; >> struct aom_image *img; >> - aom_codec_frame_flags_t av_unused flags; >> int ret; >> if (aom_codec_decode(&ctx->decoder, avpkt->data, avpkt->size, >> NULL) != >> @@ -200,15 +199,18 @@ static int aom_decode(AVCodecContext *avctx, >> void *data, int *got_frame, >> return ret; >> #ifdef AOM_CTRL_AOMD_GET_FRAME_FLAGS >> - ret = aom_codec_control(&ctx->decoder, AOMD_GET_FRAME_FLAGS, >> &flags); >> - if (ret == AOM_CODEC_OK) { >> - picture->key_frame = !!(flags & AOM_FRAME_IS_KEY); >> - if (flags & (AOM_FRAME_IS_KEY | AOM_FRAME_IS_INTRAONLY)) >> - picture->pict_type = AV_PICTURE_TYPE_I; >> - else if (flags & AOM_FRAME_IS_SWITCH) >> - picture->pict_type = AV_PICTURE_TYPE_SP; >> - else >> - picture->pict_type = AV_PICTURE_TYPE_P; >> + { >> + aom_codec_frame_flags_t av_unused flags; You can probably remove the av_unused attribute. >> + ret = aom_codec_control(&ctx->decoder, >> AOMD_GET_FRAME_FLAGS, &flags); >> + if (ret == AOM_CODEC_OK) { >> + picture->key_frame = !!(flags & AOM_FRAME_IS_KEY); >> + if (flags & (AOM_FRAME_IS_KEY | AOM_FRAME_IS_INTRAONLY)) >> + picture->pict_type = AV_PICTURE_TYPE_I; >> + else if (flags & AOM_FRAME_IS_SWITCH) >> + picture->pict_type = AV_PICTURE_TYPE_SP; >> + else >> + picture->pict_type = AV_PICTURE_TYPE_P; >> + } >> } >> #endif > > LGTM. > > For context, aom_codec_frame_flags_t in libaom 1.0.0 is defined in > aom_encoder.h, whereas for newer versions it was moved to aom_codec.h
diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c index 6de3bcc5c3..143c45b620 100644 --- a/libavcodec/libaomdec.c +++ b/libavcodec/libaomdec.c @@ -161,7 +161,6 @@ static int aom_decode(AVCodecContext *avctx, void *data, int *got_frame, AVFrame *picture = data; const void *iter = NULL; struct aom_image *img; - aom_codec_frame_flags_t av_unused flags; int ret; if (aom_codec_decode(&ctx->decoder, avpkt->data, avpkt->size, NULL) != @@ -200,15 +199,18 @@ static int aom_decode(AVCodecContext *avctx, void *data, int *got_frame, return ret; #ifdef AOM_CTRL_AOMD_GET_FRAME_FLAGS - ret = aom_codec_control(&ctx->decoder, AOMD_GET_FRAME_FLAGS, &flags); - if (ret == AOM_CODEC_OK) { - picture->key_frame = !!(flags & AOM_FRAME_IS_KEY); - if (flags & (AOM_FRAME_IS_KEY | AOM_FRAME_IS_INTRAONLY)) - picture->pict_type = AV_PICTURE_TYPE_I; - else if (flags & AOM_FRAME_IS_SWITCH) - picture->pict_type = AV_PICTURE_TYPE_SP; - else - picture->pict_type = AV_PICTURE_TYPE_P; + { + aom_codec_frame_flags_t av_unused flags; + ret = aom_codec_control(&ctx->decoder, AOMD_GET_FRAME_FLAGS, &flags); + if (ret == AOM_CODEC_OK) { + picture->key_frame = !!(flags & AOM_FRAME_IS_KEY); + if (flags & (AOM_FRAME_IS_KEY | AOM_FRAME_IS_INTRAONLY)) + picture->pict_type = AV_PICTURE_TYPE_I; + else if (flags & AOM_FRAME_IS_SWITCH) + picture->pict_type = AV_PICTURE_TYPE_SP; + else + picture->pict_type = AV_PICTURE_TYPE_P; + } } #endif