From patchwork Mon Apr 12 14:38:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26878 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 7C4EC44A135 for ; Mon, 12 Apr 2021 17:39:15 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5071268799C; Mon, 12 Apr 2021 17:39:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E7003680533 for ; Mon, 12 Apr 2021 17:39:08 +0300 (EEST) Received: by mail-qk1-f178.google.com with SMTP id d23so1820881qko.12 for ; Mon, 12 Apr 2021 07:39:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=CHWBMhSOnIsmr/NN7itRbji3/fx1dm0mnbA4sbzxbcc=; b=SqOEhV8YkVbMAbPHZdcA6xmEGvIsLrQ+FpNOjhUsVb6Ekpk5MMPHNBCxWghOeA8d7G 5YaKGOQDIZ7gMPf+p2yRCkNWhMtuPQdqa0I+QeSITmC+xEbU4E59DiekknH32ex8bEkO hFpZyzhtHN0JM7XUdP0O6ZosEo01bne5q+4WPuihQbwNzB0t/Bh1K2lT/RJrR/6z6t9X FZJC1WkdTqDVJWtq5qpop/tmqOjCUufOOmJOs0cBE47eYwr67tElEopMWlC4yeCYVkWt kziHdJlQovbv/PujZWb776F01RsKrK8REYYyXktwRfsCh/GjwmM45v16USPyLu3fsjyo AD8A== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=CHWBMhSOnIsmr/NN7itRbji3/fx1dm0mnbA4sbzxbcc=; b=W6Wj0ShWfK7KJBlZxjft9b9vKjCye0xNQQjfQcGsrqGgYWVsb4HSbEe1BTFhXyDL2H vPk/JBdZJGMWbUYvAeISdjLAD1yIBK12iUeTHG/62hLO4U8VVV8xOVVbUupaPPkQsdZr KloZ5zw4airNBsn0wofTb1fEDpn568V5+2r1e2Xjg0xYkZg/jroRTzPiw70UyAULsAWE nig0pcni+RtDKAeI6oqJFEqJuwjuA4GC8egVT9oGPEebDmXVpTpR2ckkjOOEyauoLspU AIf4j/oVfyZPwAxIat1cW5aELb0CaXY6XSansfn6La/2b+d1MDtMdGz849fh8KPoQj/o F/Zw== X-Gm-Message-State: AOAM532Fa6d6b7Ir28V52T/DB98Pl6UO1S/kbqN7m5mZwA5IeyKYR6FX xrmuMpW/rYiQ46bwkb+McyB51ImPNoCdSQ== X-Google-Smtp-Source: ABdhPJw4by2NMF8B38pzzRlxXrVTXeDS8GEsiD+ZPDfnOTzeQAR2ngpaF11za1D++IUWC1rbqLeUBg== X-Received: by 2002:a37:e213:: with SMTP id g19mr704692qki.260.1618238347161; Mon, 12 Apr 2021 07:39:07 -0700 (PDT) Received: from localhost.localdomain ([191.84.237.33]) by smtp.gmail.com with ESMTPSA id a11sm6924777qkn.12.2021.04.12.07.39.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Apr 2021 07:39:06 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Apr 2021 11:38:02 -0300 Message-Id: <20210412143802.286-1-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210410210023.27057-1-jamrial@gmail.com> References: <20210410210023.27057-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 5/5] avcodec/mpeg4videodec: update exported AVOptions in the user-facing context 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" This prevents bogus values being reported on frame multithreaded decoding scenarios. Signed-off-by: James Almer --- libavcodec/mpeg4videodec.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c index 2c440a5026..de66fe8b83 100644 --- a/libavcodec/mpeg4videodec.c +++ b/libavcodec/mpeg4videodec.c @@ -3495,6 +3495,18 @@ static int mpeg4_update_thread_context(AVCodecContext *dst, return 0; } + +static int mpeg4_update_thread_context_for_user(AVCodecContext *dst, + const AVCodecContext *src) +{ + MpegEncContext *m = dst->priv_data; + const MpegEncContext *m1 = src->priv_data; + + m->quarter_sample = m1->quarter_sample; + m->divx_packed = m1->divx_packed; + + return 0; +} #endif static av_cold void mpeg4_init_static(void) @@ -3585,6 +3597,7 @@ AVCodec ff_mpeg4_decoder = { .pix_fmts = ff_h263_hwaccel_pixfmt_list_420, .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg4_video_profiles), .update_thread_context = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context), + .update_thread_context_for_user = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context_for_user), .priv_class = &mpeg4_class, .hw_configs = (const AVCodecHWConfigInternal *const []) { #if CONFIG_MPEG4_NVDEC_HWACCEL