From patchwork Wed Dec 1 13:48:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 31863 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp9279903iob; Wed, 1 Dec 2021 05:48:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJydO43UUlof0bJvUYpXNvBe1vmYpvqHhN9KmR41iXyjZky7Xt5jOTylarXI7m5l7ol4B7JW X-Received: by 2002:a05:6402:174c:: with SMTP id v12mr5523747edx.168.1638366519207; Wed, 01 Dec 2021 05:48:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1638366519; cv=none; d=google.com; s=arc-20160816; b=zmgIx/Jj0vFZNggiTxXmVrOajaKDvu+TRA1o8ghZaXV8CTcZ+eKB7Sg3ovCeST0v7v jtv7stSwcFzYaEdCmb4kEuNlt2wu4M/uK7ZRGdnyka70+gnnJ25rd3mXcicb8fJop8Nd 647P35yseBF3wDdNQ4hJ3RU0xZwSm1//1tqmbU/bgcRIJoKcu65cXx4DABdcsDFqo4WE +s4nuByjRvS90UXxH+BqSCcdd8+jzt/jlWXIoWAZbx42ucSslEDO76lalfIZJanKCfsI QXW9J//VMndGYAPN3HO7QhWDLmwjoeoxjzR4wG9hP+ZzJRsJuDwBI/g3K/rQyPUhDpjO MPtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=2QdcO13aS3lZ/AHHnZoI+KkiXUZnTbEZk3JdK3BVvGU=; b=OZQz/YpYabW5/id00XmuDVu9xI+Q+W+DZXatswuLFqPnr4k7QiTSZEURW45MaPlItI d76XV4EOYtNU0Jpj1AfRuuD3FEtiZ8pKukf5uFn6xx7pecImoXz5XL8w9J82nLX3+M7H lchb7JHUvycJthwKw1b/c2yzzHOw7LgjSrufyxJiSatA3Nk3fRU9JOr1ZJxkbEv6iYs6 HVhn/8VUTogdC4Bc1bopEi7elHeiuXDkFk7rojxSa8gMLnd7koK+NmWUir/RCfe2ACd9 XjZ6OyFE4Zv2Z+PdhYHpO8fJeu0V/cZV+0/NFN01iqXR49DOXWLgFA73uSFsgDs3waXK OiuA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fLZnycuI; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c22si29487787eds.462.2021.12.01.05.48.38; Wed, 01 Dec 2021 05:48:39 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fLZnycuI; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E468668AFA4; Wed, 1 Dec 2021 15:48:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D9D2068A576 for ; Wed, 1 Dec 2021 15:48:28 +0200 (EET) Received: by mail-pg1-f180.google.com with SMTP id l190so23666209pge.7 for ; Wed, 01 Dec 2021 05:48:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=QiR0itSnOQWLKaBxe1+iG4cLJZio8s8RdJHawxoweiM=; b=fLZnycuI7IKx9yaPGS8Y4JIFBFBiffMDTUjZIuvvXeI6miGhsGuTPfptKGFU2TAffH 4vgPtCDdutHzMY0EDvivFdFFDzo9C3AIVV/s8jgjk0GtEC5Hnxy6+dsTvseI+9jMmE43 DUbGKogXBP+H0KeF/mBmIierTCWjuexpsVajJlQqS6iLXBtAVx9aLj2UaSHD5b+rr/DO yvrh009JpIhBaLw5P1A1fkkHEtd+W8B+jHy6M8Zlpk64YFoxtL6dRJvtLkjae1A3ai2h xrYr3YB18PqWxi+0Ac0Aa7jlQHXEJgXjrqkLxJIXF3E5rqNKlvmk2h7fVQoDFFtrxAXQ 2eDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=QiR0itSnOQWLKaBxe1+iG4cLJZio8s8RdJHawxoweiM=; b=AiMOD1whBTsgsPW9J0Of1LmcCOS5yqDqucqQaBwFL+Itd+3Md0pA8ezKNBox4fcbVX qeHHTwNdtA+vv5cv2W5/W7x3aC4Qab9COgGnNSc+64Fkc2IRKFh181ZQVFb0zyNP5NrS 2O+PQEY5PGOzXcI9i8lwiNhJPdtDCmu1T/sKU4SNtmEwjabjKiGYnDdeyod+LYDgCDS4 JSZizgybgE4FpVhFUzgcS1PVxU5nyvkZOsIAf7Vp9rr1TfmbHhau16TvI7yo2oan2YXN Cq0uxR0b5ntzS012ffts1YoibtqRZHGm1H2EjtF8g93kLI+D85W8X9o1B7FO0L9WYkYW pUVA== X-Gm-Message-State: AOAM533LazBysFz7cy11EF3ZsbrdSsgZPHrZyTSVe6XZ8PJC61bXsxtN 960zHLb+sdCpjVzxUMo5Yjrs80tDD7Y= X-Received: by 2002:a05:6a00:807:b0:49f:d6ab:590c with SMTP id m7-20020a056a00080700b0049fd6ab590cmr6285581pfk.32.1638366507203; Wed, 01 Dec 2021 05:48:27 -0800 (PST) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id j6sm25380010pfu.205.2021.12.01.05.48.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Dec 2021 05:48:26 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Wed, 1 Dec 2021 21:48:23 +0800 Message-Id: <1638366503-30013-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638365954-29420-4-git-send-email-lance.lmwang@gmail.com> References: <1638365954-29420-4-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2 4/5] avcodec/bitpacked_dec: support for frame thread decode X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Cc: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Zaxu6cDjeYa9 From: Limin Wang Signed-off-by: Limin Wang --- libavcodec/bitpacked_dec.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/bitpacked_dec.c b/libavcodec/bitpacked_dec.c index a2edccc..90e5bcc 100644 --- a/libavcodec/bitpacked_dec.c +++ b/libavcodec/bitpacked_dec.c @@ -30,6 +30,7 @@ #include "internal.h" #include "get_bits.h" #include "libavutil/imgutils.h" +#include "thread.h" struct BitpackedContext { int (*decode)(AVCodecContext *avctx, AVFrame *frame, @@ -64,11 +65,12 @@ static int bitpacked_decode_yuv422p10(AVCodecContext *avctx, AVFrame *frame, { uint64_t frame_size = (uint64_t)avctx->width * (uint64_t)avctx->height * 20; uint64_t packet_size = (uint64_t)avpkt->size * 8; + ThreadFrame tframe = { .f = frame }; GetBitContext bc; uint16_t *y, *u, *v; int ret, i, j; - ret = ff_get_buffer(avctx, frame, 0); + ret = ff_thread_get_buffer(avctx, &tframe, 0); if (ret < 0) return ret; @@ -149,6 +151,7 @@ const AVCodec ff_bitpacked_decoder = { .priv_data_size = sizeof(struct BitpackedContext), .init = bitpacked_init_decoder, .decode = bitpacked_decode, + .capabilities = AV_CODEC_CAP_FRAME_THREADS, .codec_tags = (const uint32_t []){ MKTAG('U', 'Y', 'V', 'Y'), FF_CODEC_TAGS_END,