From patchwork Fri May 21 09:17:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27890 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp348417iof; Fri, 21 May 2021 02:32:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKC9RLzZu4Q0lJ+WPuGrNxqyCg2AA0a2jKk6kjPZPZs4mVjS7aF++26A7+ufAhgrCfVEoB X-Received: by 2002:a17:906:1cda:: with SMTP id i26mr9567343ejh.412.1621589578195; Fri, 21 May 2021 02:32:58 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id z16si4420559edd.136.2021.05.21.02.32.57; Fri, 21 May 2021 02:32:58 -0700 (PDT) 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=@outlook.com header.s=selector1 header.b=QqZUXG5c; arc=fail (body hash mismatch); 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 270916807C8; Fri, 21 May 2021 12:32:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075095.outbound.protection.outlook.com [40.92.75.95]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 877D76807C8 for ; Fri, 21 May 2021 12:32:48 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JCw23Xxs10hLf9w4doZ9EbqOsuzrC2bqaII66OFiv5M5bi/NprdlZH/iZ0u090Q5wc9tXdFAm2Q3XdMIWlSu2122Ms6va1I75z7uIcCfiAjc7dkCPT0IuzHPBqAc6bqYxqP63vKWiw/f8B2cHyPfovELk7Oq3v8s2tfHsiZtoKQvhzOn2S5WVn1+eWN6SwCyEB93QnBCqYavHXj/2uHUjNMExjoSyWftNxMtXXKRwBwJQX2RBCQZK88V8Gz9zQwuUVEWQhdOmOrbsBXkp5FEypOOyQjDWuNO4u/5LOF/qSLlsVqr8loNx7A47MBgq28NPunTnQo+OgaKzMpciADdqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bdBB96jAlNxPVKG9dpgo/DYHUCBgomA16vEnujPBD3o=; b=JPEWacSF78xGnbxtW/TymBVmTmRY+CTRuyMqLcxMNQUk9FzBT3wqmNczQ/GcJckly2Gu/tqvj1A4VYVzTLoMf1youapjzXoW+yq3V5k4MPSovMvXRRIATsb1sPfPwV8ncgreaolPCV/K4VXRVqVbPZzpCqKe8A1bBdDrYT1ChSBHrsD/I3JY98JdjL/kRLpRSKLkIghGD+acg5+EEawR2jKxIXZI1XNVyG46LS7PZZS/inHUzHOP/q2MuGv1o7mH9tIWWB54VculvSWqk9HTDOmroOCoGB4V0mR1gRsyFZbnuns8cPMlT4gn3w84UcVFRzSQBHGRMGw6bRPeiVkH4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bdBB96jAlNxPVKG9dpgo/DYHUCBgomA16vEnujPBD3o=; b=QqZUXG5co1A86Z6VCvNHJZuoSW9HiYOy1Xb3ZI0lEResXGCPH7JA370K1uhdCSIJS8ZOyVQCIm1F3PgtrqgrOasYXFPBqNONTke4YTA5Nxd7ZTmNYofIHkqNRrK6/WsflWNP3sHMNRHOaW6crvCsclc0Biysvll+qbJUbvOtv14bKVbUwr80CifEpUNt6rtKcLi0PMwXLcftt1yyoix93b+EvfSBFqC5eKAOOIcORidwh3cZ0Ez74orpbcMoReWrtp+Va8FXJdFiZUBacjGZuLl8x3F3dnw7fnrhfCz4zXX0666/YDp03Vp5wknm0Qnhn/vSdYYpTG+sTOqkrlhhtQ== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::52) by DB3EUR04HT016.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::444) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25; Fri, 21 May 2021 09:18:30 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Fri, 21 May 2021 09:18:30 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:1CC0F2FB3DA6DE0B534EFAAE09CF8A347503DD8A38E03555A55FDF981387B5FF; UpperCasedChecksum:190022F19EDC2FE93BF35E3CB893A8328FB81999A30ACB029DB4BC2309F73384; SizeAsReceived:7582; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb%6]) with mapi id 15.20.4150.025; Fri, 21 May 2021 09:18:30 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:28 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [jZ7ykyvneuOwY5ShZBHlrsfH0lBUynJu] X-ClientProxiedBy: PR0P264CA0070.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1d::34) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210521091742.184902-24-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.95.27) by PR0P264CA0070.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1d::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.23 via Frontend Transport; Fri, 21 May 2021 09:18:29 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 1adfb8f0-ad92-4b94-ca58-08d91c3965e7 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfau0R68P8nyX6jHiBTd48gO0OztJ6acMsQIjGIIm3DfDJmVb1r85LDa6wdwnEZCPY1sLCALjIefYrYE3+ZrKYwAfCPOxYx5BwERha+QZcM8omraFjaSkOM4/3Cw6rK6AJNm+wgQ4ZjOTIznFOWkq0mDIMWKf43FQA+e726bE4Q1mR3Xj25n3aOeTmz5TAkDaPX/+KiT1BpVG6mqov/Q0ys1CW44dxcqKAIypSqiGV5ZbgMbd71A/GNChH8iPUeLE29S72X9RNltqCBZ2DsGUwVlYJmUNucqx643bj4PQZIrIjaGx9Zx9d9icq5J13L+2Nb0qPP9Jutv23LRheI2aTqQgB1iVVpryy7qhk3QdmzPO+CNMV6ktmaWNEY7+g1TR2gfMjr8RXPwlwkk+wBzEj5noE1YsapHCvfmW6r4iKAo3rF6ie8FoesDmfbldwxbG9Fr2o11sUItquC00Nd3D/L8hzIpBcd6/BP6QDGk8KcgP8fA530t1kRkXhbcbQPY1BvZnYgGvoYZbH6C6tPGr366zxCW8nAULS3SEJRztXkqZRi+qf/JWXibnMylB6dWvr3qr29O3/k+SvR5SmlHGsrwhCzeBDD/3gtctkgEqBuUj8GBuxthpelDtRPS04Mhkr29slnCSUFuTNYrONtTi+Q/FSIoZOKh2AMjbyvUvmJWwciMOTM0IlknPNYKF5ZxfiGw7I5fQ/lgZYs= X-MS-TrafficTypeDiagnostic: DB3EUR04HT016: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KviXcIEStAx3QeBuRkOTalDhjWI5KIeaAqopTb8gOafZFyFqq4T2i6Va10HkJRSZ7cYkWo2oXouINE2nKGT0cR2akwXC6ZlDy4ppzITVfkCqDIblq0aSYY9Kncns4EJcnQQsxNA3YfxFnKvHxgjIAKMcR/0wXRu4QQLHLZz44ZZszuk6sJy0o5qTrRIg6IEIJVvxtH6FJxFNVmCHmou3F9+xbujkluP1dR7oBkFWIbgDfvMzeGYU6G5txBrbM2X8e+wEZo07YfmzLtgQgxiL7QuVzOwGl9mJvjWN71hvcjIjkhKRkXOft/7ky0HMGoe6EMVbZkk0WhM6FdZSGSwCrfqgayeTrZRpxozxDAH0OPRgwtyEZ2PvmXUi0JKgCCo0DwBCzsLxduOvmd7pn9fhxw== X-MS-Exchange-AntiSpam-MessageData: jRBkcdxPkP50hyvL6sAIiEQ3PYcJ3G4+X+6NUhRkLWUTg/vWTMPlmXkPr+fELB1iWIdBy2VbNVrcN2Ujdm8pMqcgo+SsLxhjaIJIVW0GwF/UQcdexgeVntGsLNNrrEpwltxsI8uo78CV8P+PLFk5mA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1adfb8f0-ad92-4b94-ca58-08d91c3965e7 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:30.0077 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3EUR04HT016 Subject: [FFmpeg-devel] [PATCH 25/39] avcodec/libxavs2: Allow user-supplied buffers 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Ojylf158ESCb Here the packet size is known before allocating the packet, so that supporting user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/libxavs2.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/libxavs2.c b/libavcodec/libxavs2.c index 99fe0e3286..9c5a576e90 100644 --- a/libavcodec/libxavs2.c +++ b/libavcodec/libxavs2.c @@ -23,6 +23,7 @@ */ #include "xavs2.h" +#include "encode.h" #include "mpeg12.h" #include "libavutil/avstring.h" @@ -214,10 +215,9 @@ static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } if ((cae->packet.len) && (cae->packet.state != XAVS2_STATE_FLUSH_END)) { - if (av_new_packet(pkt, cae->packet.len) < 0) { - av_log(avctx, AV_LOG_ERROR, "Failed to alloc xavs2 packet.\n"); + if ((ret = ff_get_encode_buffer(avctx, pkt, cae->packet.len, 0)) < 0) { cae->api->encoder_packet_unref(cae->encoder, &cae->packet); - return AVERROR(ENOMEM); + return ret; } pkt->pts = cae->packet.pts; @@ -230,7 +230,6 @@ static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } memcpy(pkt->data, cae->packet.stream, cae->packet.len); - pkt->size = cae->packet.len; cae->api->encoder_packet_unref(cae->encoder, &cae->packet); @@ -290,11 +289,12 @@ const AVCodec ff_libxavs2_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libxavs2 AVS2-P2/IEEE1857.4"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_AVS2, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS, .priv_data_size = sizeof(XAVS2EContext), .init = xavs2_init, .encode2 = xavs2_encode_frame, .close = xavs2_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, .caps_internal = FF_CODEC_CAP_AUTO_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },