From patchwork Wed Apr 14 00:14:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26902 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id D0D5C449EB2 for ; Wed, 14 Apr 2021 03:15:19 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 907DE68A64E; Wed, 14 Apr 2021 03:15:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f44.google.com (mail-qv1-f44.google.com [209.85.219.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A89DE6898F6 for ; Wed, 14 Apr 2021 03:15:13 +0300 (EEST) Received: by mail-qv1-f44.google.com with SMTP id iu14so9078277qvb.4 for ; Tue, 13 Apr 2021 17:15:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=PAVscAOFJQB36jupmq5f+3uxtNWt416vx7GghBj8pkw=; b=VQNwmKZBkBN56fzHF05VVWWw+Th5eW5M/9Ta7N7FwJvaHpFUuFcQVtpLhb+2VkgDkq sXfzVim0VRpgDgNTmXqPZPnSvVsdA8In0xzcf17g0raARRFmn5f6GD6tQ1pubosAL2BW jvdtEp49kZXBzfzUFTxtsIGe83rpcQ8PzmWm/8c+S5uVxPm5HXEL5iZDmYb5lygVfR91 l4mfL5iiqwwM4xQudgiYNc0n5tH4J615tKinnJNR1IVG3S1/LrfoXRdS2rJDe1GzVqeC HTLNwJBzy3oXD7QVk/5fB9Vw56raP1xHi0JZogZmy5ZeXBZTSaYouPcE+ILq+F4RfLnL DGUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=PAVscAOFJQB36jupmq5f+3uxtNWt416vx7GghBj8pkw=; b=mQ5Bk6Eaasd6/HNYre8+aT5PcJufqVeV9frTiNhzptsQC0xZ3Vv4zOl6uKCIqtK47a mGMkkiAJM5klTm3M0+pmadwPgZECp+pI5HGWL3kpV0ZSt2Z22KLyXcgd3ciKQUoAxXvo AbB5r0CW9OD5YW+K50KB/JaqrtXgmm6F/9NWRDBhPikCxKNnsOVB13pCZ5AAUtyjQW3m lDr2NlOUHZpsb85uPU/lXEnL/xr5gOGIRrkv+9FL85soo7dOzc8azMF7aW8jY8RO9xzJ nYPKM8sn+/Sf1Fj/cN/XEoyCN2M/aSxtwP88eiO152jPmXYMfeWMiabeIuRtEXmgVDaZ svng== X-Gm-Message-State: AOAM532P6VXILnEeAnLKRhZFsCk8eYv/+Q3cH/IqANCU4x1DmYR8lCLh StXlfGcTGljQp0rgcDLhgvwJhHmM9TA= X-Google-Smtp-Source: ABdhPJw+opLdEOQVoCYvl0VHZqo9gmb3dFS26wriqTtBsnawiMf06ExMs9KyXhrqHZxhxVTeinzCOg== X-Received: by 2002:ad4:44f4:: with SMTP id p20mr25700943qvt.32.1618359312171; Tue, 13 Apr 2021 17:15:12 -0700 (PDT) Received: from localhost.localdomain ([191.84.237.33]) by smtp.gmail.com with ESMTPSA id h14sm10539075qtx.64.2021.04.13.17.15.11 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Apr 2021 17:15:11 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 13 Apr 2021 21:14:13 -0300 Message-Id: <20210414001413.4149-1-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/libaomdec: export frame pict_type X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Should fix ticket #9180 Signed-off-by: James Almer --- libavcodec/libaomdec.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c index 1fc0a0001d..6de3bcc5c3 100644 --- a/libavcodec/libaomdec.c +++ b/libavcodec/libaomdec.c @@ -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,