You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avcodec/libaomdec: export frame pict_type
Should fix ticket #9180 Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
		| @@ -161,6 +161,7 @@ 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) != | ||||
| @@ -198,6 +199,19 @@ static int aom_decode(AVCodecContext *avctx, void *data, int *got_frame, | ||||
|         if ((ret = ff_get_buffer(avctx, picture, 0)) < 0) | ||||
|             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; | ||||
|         } | ||||
| #endif | ||||
|  | ||||
|         av_reduce(&picture->sample_aspect_ratio.num, | ||||
|                   &picture->sample_aspect_ratio.den, | ||||
|                   picture->height * img->r_w, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user