From patchwork Sun Aug 22 11:20:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29719 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1197519iov; Sun, 22 Aug 2021 04:21:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyzxeX/j7+mVj6y9zMbH0MUm9DcKnSmAgGItC+uxL5ercmC2eq0Ofllzr+LN03mNbcHbp1M X-Received: by 2002:a17:906:fa92:: with SMTP id lt18mr30768903ejb.359.1629631282253; Sun, 22 Aug 2021 04:21:22 -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 e9si2550174edy.604.2021.08.22.04.21.21; Sun, 22 Aug 2021 04:21:22 -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=LNckcqrB; 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 5465B6801E6; Sun, 22 Aug 2021 14:21:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-VE1-obe.outbound.protection.outlook.com (unknown [40.92.72.60]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B610C68030F for ; Sun, 22 Aug 2021 14:21:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RD3JlcFiS4bu4q+0q+8cDYHdgiDTU+FDetdntrpuHTlimK8X1+ES50DSckMkCPqj7q23sBImxqQX8eZo5N5VCCwGay+Wqa5ouBxZAxBAn4EdZaRNZhx1LBDbTxc+erpGnquuFBytcqLnfMwlygQ/uWAEhylJbWtkVxzm4jH5S+ZUvwlRYn9pTmuq3zb38u5eatVbFoCFJj4EA8N6wp+HFuOtADYJ2n1KPLOnAVXztZGjY5xexUeZSV3SonYED5Z8D9qVoeZmsAA7RrnSS329ND39/klX72P4qJG9lIMx3Gji94cfUXIh/rTF6Px2YDJbjxDVAMVe6le4d/sLjy/20Q== 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=ZJl7umVOphF4/35vCzZgl5cd7CCOeohQ8YqvSb4Ytzg=; b=Ug48VNeotgqPvWSkc3nbsCtrSPiaGHtLlwoXRr5W20haiYJH/lLD/oBjZlxcFP3vBrhehvG+62nySe2Nf5wWboTHznOL6St5a7n5q7FbKy/+lHBvqb/B0H5G3L/0MLiCS9yEQv4ZuDF63/HWcVXg+ZUy4BJ0LlckNU3BAos3iXEko89EzWV1N2KYkisENEJAn1CpEAuXu0X6j8KNNX2bOcAcH13NXBLPMEuQHuhQW0UfSPt7Mftkxck0waCZadRJbiIZLgJr/oaZLCFLvb87gIEiglcxDt0ox7oTFMbZ53BCbLX6RqG8YBSQcOLhFdsZgFwbLADVAbI8VauxDTJbUA== 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=ZJl7umVOphF4/35vCzZgl5cd7CCOeohQ8YqvSb4Ytzg=; b=LNckcqrB+/e+04nAot6KfuiAQogiT6Lw0hF98ihlY1rL6aHpQ9PIpuUrUgn8hO4uxYu5MKJ7yRwuYb51QWrD7hS0JxfqjaG0yth0c3DVvVUUQNG1M1HF3+wpVqiEpANVq3q9of2Rry/qvqxd8QSmy2WdrabYMNn7VjZMw64fAAJ7070tRTQ9oXVKwSPv8qsT/vaQSHs4uHkHwzb7arTYOngfffi9kSFVA7TH8N2wAnYMWApTADg8ex/GroL5fBoe6B0caKUFnDbxCg6mjmNM3cyqz305aXRZZ5KivCEWCzQFzvclTh5rG8c6JOyzIoVyJC9Y+d87wLQcxfMz4RmPRQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6548.eurprd03.prod.outlook.com (2603:10a6:20b:1c2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Sun, 22 Aug 2021 11:21:08 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.023; Sun, 22 Aug 2021 11:21:08 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Aug 2021 13:20:57 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 X-TMN: [4MZKwDhhLvWirAeRn5XwfZv75Y3eLynl] X-ClientProxiedBy: AM4PR0302CA0010.eurprd03.prod.outlook.com (2603:10a6:205:2::23) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210822112101.1434378-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM4PR0302CA0010.eurprd03.prod.outlook.com (2603:10a6:205:2::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Sun, 22 Aug 2021 11:21:08 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: aa2404ed-827c-451b-fc51-08d9655ef03f X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTwpFlTyQGqvcPFYyI24dYLlRYR+TqpxpHKZzYP2wMFfOSRL+VHTuMAyr7+tF/6po1raASxCCNKlEx3kxRB0s8UK3rLFMAc8GS8pGr2q65WYge/lB7rb6B3srHE6KHb7VkepKILVSFEGHwyFvEc/wJBLCNQn64vZ5jiiQNqh4RVcY5cjRkdDO0Y388P4NLc8AtiJPQuz15eU+YnrwsFh3BOryX3GAVumQV/TB0aefS9VEp98+pOBZL/862mfYip2EhXMr4lZNdFvlyD+EBQ8+KHHuk3wiyqxPfpYd4DnqhTy565XpF+e2SLJ955ptKOigX5oB2M/193Y288K2GREjd8shRN1gPkhnvpEHi1JlmiL5OHD+IyhF1Q/7PRpJdJS0KpiYrzc49EPeNB153UdLCv2vCUG23jU2682zp9GSsuIveYqjSVpYjccR063zRHWQCZIeqoRu9/wg4pGBBdRRxz973eEPEK9FiTniPVfjTGRahZa3v+In2Q/SF9HTOQRe6Syt/aZtnFwKEsH0xn+FCql+Wz0h4CUGscw1uLviTY3T2dfxU8OPvpt3Hfli6UZ/bD3oqgN/qFL0XNWwZFbUvveFNqmzUuG4qOkcgNf3FAFkTms2rdVcZFiPV+LSEMnJMb54i0rq96JaptBnP1P0Iq2heWdfuuo2kspu6vSNkbDuPUij9t1xSIfAEiYPwerwbffe2q0t79vchGKPayI6ROYQ3vXdelXyL19Yz0I3eOidUVXYBAJoP/C8kdfpIx5Lc= X-MS-TrafficTypeDiagnostic: AM7PR03MB6548: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ze3MRd3GGIhPzzZTgIfWHrb4wgmfINe1PHzHL/FNlZBii4uAAQSIwhY4SG/mcmMbb6xWjCyykJehyjGloWovCb+nzvmQlB9VAXZaQIvQBt8YZdXqiJthm6i/lc2hsVTAdJRRmgHoee9DZbgmyIzBzMDLn89TpAzUSLT/m/pttznqOUzvMjxs3C1ZL8AxMUqqBX6jBVbarkF4BhU/hQIyDO1q6W2hXi1T98DVfs8AKYvkkDYtvoBr+mB8+wYVomzEsMD8+rCZ6ZnF/1crZkwewH7Q9LKZahuIwrxcOWNUhT6l3wBxxnL83TMX5wyJ6GC0NQe6oYMhP92NSTVswr40gnQ1nS5AzSsv4WSjhxsbd6OTatFWkM7KPqOcZT+ebMjJXpTnhjEXTo+VUO7CP0jQPKR/GFSpb1A7Olt2MBFtHFmpViZW2i23Et9c+5Q2HWkP X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: L0LSH8nxpd4ZDERZYQduyraq9XYYziSDBBJDbjR8r6XmAvo6egwv8+88F9h2BwZ4HXnGjv24COO1bVgz9bj+n3bcdGb6pWnoMxDsTHAOnm1rFnxIHiRQdOXkDEjW5MfWo2L9D1+SXN7rhytVQK9sxw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa2404ed-827c-451b-fc51-08d9655ef03f X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2021 11:21:08.5167 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR03MB6548 Subject: [FFmpeg-devel] [PATCH 1/5] avformat/av1dec: Set position of AVPackets given to BSF 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: 61XocbheXtB8 Signed-off-by: Andreas Rheinhardt --- libavformat/av1dec.c | 44 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 29 deletions(-) diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c index f6c575069e..e021615c1f 100644 --- a/libavformat/av1dec.c +++ b/libavformat/av1dec.c @@ -22,7 +22,6 @@ #include "config.h" #include "libavutil/common.h" -#include "libavutil/fifo.h" #include "libavutil/opt.h" #include "libavcodec/av1_parse.h" #include "libavcodec/bsf.h" @@ -299,7 +298,6 @@ typedef struct ObuContext { const AVClass *class; AVBSFContext *bsf; AVRational framerate; - AVFifoBuffer *fifo; } ObuContext; //For low overhead obu, we can't foresee the obu size before we parsed the header. @@ -372,9 +370,6 @@ static int obu_probe(const AVProbeData *p) static int obu_read_header(AVFormatContext *s) { ObuContext *c = s->priv_data; - c->fifo = av_fifo_alloc(MAX_OBU_HEADER_SIZE); - if (!c->fifo) - return AVERROR(ENOMEM); return read_header(s, &c->framerate, &c->bsf, c); } @@ -383,37 +378,26 @@ static int obu_get_packet(AVFormatContext *s, AVPacket *pkt) ObuContext *c = s->priv_data; uint8_t header[MAX_OBU_HEADER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; int64_t obu_size; - int size = av_fifo_space(c->fifo); + int size; int ret, len, type; - av_fifo_generic_write(c->fifo, s->pb, size, - (int (*)(void*, void*, int))avio_read); - size = av_fifo_size(c->fifo); - if (!size) - return 0; - - av_fifo_generic_peek(c->fifo, header, size, NULL); + if ((ret = ffio_ensure_seekback(s->pb, MAX_OBU_HEADER_SIZE)) < 0) + return ret; + size = avio_read(s->pb, header, MAX_OBU_HEADER_SIZE); + if (size < 0) + return size; len = read_obu_with_size(header, size, &obu_size, &type); if (len < 0) { av_log(c, AV_LOG_ERROR, "Failed to read obu\n"); return len; } + avio_seek(s->pb, -size, SEEK_CUR); - ret = av_new_packet(pkt, len); - if (ret < 0) { - av_log(c, AV_LOG_ERROR, "Failed to allocate packet for obu\n"); - return ret; - } - size = FFMIN(size, len); - av_fifo_generic_read(c->fifo, pkt->data, size, NULL); - len -= size; - if (len > 0) { - ret = avio_read(s->pb, pkt->data + size, len); - if (ret != len) { - av_log(c, AV_LOG_ERROR, "Failed to read %d frome file\n", len); - return ret < 0 ? ret : AVERROR_INVALIDDATA; - } + ret = av_get_packet(s->pb, pkt, len); + if (ret != len) { + av_log(c, AV_LOG_ERROR, "Failed to get packet for obu\n"); + return ret < 0 ? ret : AVERROR_INVALIDDATA; } return 0; } @@ -425,7 +409,10 @@ static int obu_read_packet(AVFormatContext *s, AVPacket *pkt) while (1) { ret = obu_get_packet(s, pkt); - if (ret < 0) + /* In case of AVERROR_EOF we need to flush the BSF. Conveniently + * obu_get_packet() returns a blank pkt in this case which + * can be used to signal that the BSF should be flushed. */ + if (ret < 0 && ret != AVERROR_EOF) return ret; ret = av_bsf_send_packet(c->bsf, pkt); if (ret < 0) { @@ -448,7 +435,6 @@ static int obu_read_close(AVFormatContext *s) { ObuContext *c = s->priv_data; - av_fifo_freep(&c->fifo); av_bsf_free(&c->bsf); return 0; } From patchwork Sun Aug 22 11:29:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29723 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1201961iov; Sun, 22 Aug 2021 04:30:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwUFt97M+Jt7Pr8pSRw+T8ndnrWJOWCmTRzy3RUb8cv6iID+QSmvFmT/WJZGU0VcGMf6P+H X-Received: by 2002:aa7:dcd1:: with SMTP id w17mr31332124edu.322.1629631817956; Sun, 22 Aug 2021 04:30:17 -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 gn42si14088480ejc.607.2021.08.22.04.30.17; Sun, 22 Aug 2021 04:30:17 -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=DKPFKkcH; 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 3E96A689FB2; Sun, 22 Aug 2021 14:30:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (unknown [40.92.91.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7BD656898A8 for ; Sun, 22 Aug 2021 14:30:07 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CgfbknmbEIexx/bdBmnusgNbPOMZva9/aNqz6IRHjqDgxUZSyKqjunfvTUW0xIHcZExvGbG9KWorjMiOKeoNy7WthNHn+IFukYzImsnCGRA5i8P82mb/XB6UAH4l9N9Byx7WwRbIxO5SA8VgQEWjEaK9qysyKr1p+GLVMtgRa3dkhg9DXsa4i9TOEaKZfPROM/X4dOeqE1Vosxz84wdQ12A3Guc1Ei5S6COCT0N7UW0pZF9OKBGGdoNpuQ6eUVNfu36M2LCKcAx279K+t0eIF7qMCQS1NEX9kDPLqiUbuI//3rijDP6XDvjKWyvLbSovQ/jPX8a3ua1oj6cWlOGZig== 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=XU7VCPq9gYbXhHRp9WrbtaOWEHuu8uNNgYHHVxq66+8=; b=Ftbb7MXR7bPGIHojoETEjZvxTlY1P2dHwSekskZ6EIIDnQd2UkMpBzJWtOkJC6AFOOBgaOP4sZGciP34P+Aq9CB/UQJeOFgQRgh9lNMPzv/8nsFb3kwhB6zIc7qvnZL/Bx2IZ8SjCz+37k7XgdN6yKXggcQneWcgKAdzeL8W6Vevgyuwt8+cMx27yXQ48H+6N0mB12j0RVAUE4zLmW2RZViwP7ens+7bRaivyBE4qjJLhCSXBYtv+dlerERV4IBhbbLzP1P7HcACYp2kBmNqQIr3f1RqpmHMDyx+e8hh3exEpfHT7rGBJ9WrFs0jvKk8zmWYqq+NNQBDmziiStewvg== 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=XU7VCPq9gYbXhHRp9WrbtaOWEHuu8uNNgYHHVxq66+8=; b=DKPFKkcHi4RhpvesEYSbschOWb7+SPpQa599lFbzzuq04PDnAI86v5bka86oQNoUUVGhwVtHof9OS1Zr4niJia4hRZ5+G21dp9yJ3DAZ1a/9gEFmC729yt5rOWiZ2dlWvvjJ54hVDVJbbtLEDJVFGLZEXAXfU9Q+YL7mOdG6zn873JVkNE0ERsQpvCj/zi+HLycaUSZVsXE0LudVjzePoPSPj82Vj1TfHsWFrTFkNs+CtxCKzX+PZIx6NIR8G6UonbJjGq2LoeC9aw1419IGxS8j5cJlG+JkjyAgj2oUwmI1K+bdGGeo/2HbNOHrfqcBa+0nhSNTGj/fnjifC5h7mw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3765.eurprd03.prod.outlook.com (2603:10a6:209:2d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Sun, 22 Aug 2021 11:30:05 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.023; Sun, 22 Aug 2021 11:30:05 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Aug 2021 13:29:52 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [+Txi4bFN/BC/OXrStnaULvGSRQA0jogy] X-ClientProxiedBy: PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210822112955.1434452-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Sun, 22 Aug 2021 11:30:05 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bbd5c2fe-3a92-4a7a-52e5-08d96560309b X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTwpFlTyQGqvcPFYyI24dYLGPSndylGNLnIZ8xo5aHteL/DRJu0AeRwN2oKzW8fax6mBK5sakkfR5HjGFJ/v/urw3aMR1QCjzAz3U5BKEDhcPuWtrdNiZleVOy5tfryr1V4Ek68NdUslehUDJPjf0WFfNxUDKDgXu09Ig1x+N6enjJ9STXixZGmFxRwwsMsexMcXeTzljn7Kv+wI/THgW3UnJVhRtwsPLPbBak6jfIVx5Fzu4Y4invAJsbxnBGKgyCa2mI408ai65PO2RyztuqV1idg3lCUaiyF2wcEMMWim2TTKp3sjYFXxttBG/2CSP5DSp9SzVZecp8kJDvPJXTxV/9lDa68KFh8dN2iM6TdSWjMFTJW5ZqbxeG9jkU7M90NDv3SbwVyIsEYmOoabc28a88cGrysqgso0J0Q04nx1yvrBAmXTa67FFbG8unxYQkmwP3xRM4lnp1w+DF9DueXi8G3MZW9xvRQtFVKILp/2Ymp/lpEfXoviC71pNq357nGeuYHxTr0Z1OZTzomBKnyQfeJ1CxeetGbXIAJkoFRPhSDBms5aOaK64r0sAuY8lI0ahHyqfEMQfyuYYG9h2ymLoJXeBbQFqCibO7/BDE9h3x/eQCtasHML8XaRZ6L6b/XiOpEAkhPTNNxruBGN1OP5oGX4ZKKBBXbaI/4FRJzkX5vrDoDZmb0o9Txef5dqu9w+wg5pEpCE+t9diuEDO/op2tF2Se0W7GKaVLpTCXXL1S2YqoI556hZfq7cB1laBA= X-MS-TrafficTypeDiagnostic: AM6PR03MB3765: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HnUhBIfOOdjDVl00+unhKQTXkr2eiiILO3kWnpmyLxu+7jNR277X+mi5XF5sJjqOHDz0JlNl1CAjQBaEFnAPhRjDyt0PTq9Feh2GF/gCCQGFsbWtPKfTgSo3+/l1Ezh8wBQQE3cARmWJU+Y+PP/ZJLSj9Gzi15yDNMzU4FYDRZfnBO9zFP3t3g6AhR6qcrnv2695bkoZbjlV19bsSU0Tz3cArKzukhzOLVNp1prq8pDzuywoG9tJojqIPfoh1rswely7kNbdJLqeH0AmMAm73FzFRdrHPzPsLtx/genu5xdyOy3/dIi3K4FrLFT+kD9V6tLUCooGK2lBUA98ed+r6BWDSC32dwjTjQJ1o7jGRG7Fair2fVEfEY4Wiv8/dr2bjwCFQpfW/k7tex/II0HjklMeYTa0oWiIUxrKuTJ6NUJeONG0fTKwIahNwew4/JlD X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: hB3r1aFWJNws/0F46DX8rttIV0DZ8V8WeA2ARpS/bCZxRLjHBAV/P2H2IW5cmzvBAmC5kC6z/yxEv8B8S8pCPwDa53gx0QoT91QsFzALoj6N8zdLO1F77k0jitO7pQPWqeA3Lz3U/tXfGvFb8/oZcg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbd5c2fe-3a92-4a7a-52e5-08d96560309b X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2021 11:30:05.8607 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB3765 Subject: [FFmpeg-devel] [PATCH 2/5] avformat/av1dec: Deduplicate Annex B and low overhead OBU AV1 demuxer 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: RTGlp0lxXM9X Signed-off-by: Andreas Rheinhardt --- libavformat/av1dec.c | 133 +++++++++++++++---------------------------- 1 file changed, 47 insertions(+), 86 deletions(-) diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c index e021615c1f..d5d4548d8b 100644 --- a/libavformat/av1dec.c +++ b/libavformat/av1dec.c @@ -29,6 +29,14 @@ #include "avio_internal.h" #include "internal.h" +typedef struct AV1DemuxContext { + const AVClass *class; + AVBSFContext *bsf; + AVRational framerate; + uint32_t temporal_unit_size; + uint32_t frame_unit_size; +} AV1DemuxContext; + //return < 0 if we need more data static int get_score(int type, int *seq) { @@ -48,14 +56,15 @@ static int get_score(int type, int *seq) return 0; } -static int read_header(AVFormatContext *s, const AVRational *framerate, AVBSFContext **bsf, void *logctx) +static int av1_read_header(AVFormatContext *s) { + AV1DemuxContext *const c = s->priv_data; const AVBitStreamFilter *filter = av_bsf_get_by_name("av1_frame_merge"); AVStream *st; int ret; if (!filter) { - av_log(logctx, AV_LOG_ERROR, "av1_frame_merge bitstream filter " + av_log(s, AV_LOG_ERROR, "av1_frame_merge bitstream filter " "not found. This is a bug, please report it.\n"); return AVERROR_BUG; } @@ -68,35 +77,49 @@ static int read_header(AVFormatContext *s, const AVRational *framerate, AVBSFCon st->codecpar->codec_id = AV_CODEC_ID_AV1; st->internal->need_parsing = AVSTREAM_PARSE_HEADERS; - st->internal->avctx->framerate = *framerate; + st->internal->avctx->framerate = c->framerate; // taken from rawvideo demuxers avpriv_set_pts_info(st, 64, 1, 1200000); - ret = av_bsf_alloc(filter, bsf); + ret = av_bsf_alloc(filter, &c->bsf); if (ret < 0) return ret; - ret = avcodec_parameters_copy((*bsf)->par_in, st->codecpar); + ret = avcodec_parameters_copy(c->bsf->par_in, st->codecpar); if (ret < 0) return ret; - ret = av_bsf_init(*bsf); + ret = av_bsf_init(c->bsf); if (ret < 0) return ret; return 0; } +static int av1_read_close(AVFormatContext *s) +{ + AV1DemuxContext *const c = s->priv_data; + + av_bsf_free(&c->bsf); + return 0; +} + #define DEC AV_OPT_FLAG_DECODING_PARAM +#define OFFSET(x) offsetof(AV1DemuxContext, x) +static const AVOption av1_options[] = { + { "framerate", "", OFFSET(framerate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, INT_MAX, DEC}, + { NULL }, +}; +#undef OFFSET + +static const AVClass av1_demuxer_class = { + .class_name = "AV1 Annex B/low overhead OBU demuxer", + .item_name = av_default_item_name, + .option = av1_options, + .version = LIBAVUTIL_VERSION_INT, +}; #if CONFIG_AV1_DEMUXER -typedef struct AnnexBContext { - const AVClass *class; - AVBSFContext *bsf; - uint32_t temporal_unit_size; - uint32_t frame_unit_size; - AVRational framerate; -} AnnexBContext; static int leb(AVIOContext *pb, uint32_t *len) { int more, i = 0; @@ -193,15 +216,9 @@ static int annexb_probe(const AVProbeData *p) return 0; } -static int annexb_read_header(AVFormatContext *s) -{ - AnnexBContext *c = s->priv_data; - return read_header(s, &c->framerate, &c->bsf, c); -} - static int annexb_read_packet(AVFormatContext *s, AVPacket *pkt) { - AnnexBContext *c = s->priv_data; + AV1DemuxContext *const c = s->priv_data; uint32_t obu_unit_size; int ret, len; @@ -256,50 +273,22 @@ end: return ret; } -static int annexb_read_close(AVFormatContext *s) -{ - AnnexBContext *c = s->priv_data; - - av_bsf_free(&c->bsf); - return 0; -} - -#define OFFSET(x) offsetof(AnnexBContext, x) -static const AVOption annexb_options[] = { - { "framerate", "", OFFSET(framerate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, INT_MAX, DEC}, - { NULL }, -}; -#undef OFFSET - -static const AVClass annexb_demuxer_class = { - .class_name = "AV1 Annex B demuxer", - .item_name = av_default_item_name, - .option = annexb_options, - .version = LIBAVUTIL_VERSION_INT, -}; - const AVInputFormat ff_av1_demuxer = { .name = "av1", .long_name = NULL_IF_CONFIG_SMALL("AV1 Annex B"), - .priv_data_size = sizeof(AnnexBContext), + .priv_data_size = sizeof(AV1DemuxContext), .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = annexb_probe, - .read_header = annexb_read_header, + .read_header = av1_read_header, .read_packet = annexb_read_packet, - .read_close = annexb_read_close, + .read_close = av1_read_close, .extensions = "obu", .flags = AVFMT_GENERIC_INDEX, - .priv_class = &annexb_demuxer_class, + .priv_class = &av1_demuxer_class, }; #endif #if CONFIG_OBU_DEMUXER -typedef struct ObuContext { - const AVClass *class; - AVBSFContext *bsf; - AVRational framerate; -} ObuContext; - //For low overhead obu, we can't foresee the obu size before we parsed the header. //So, we can't use parse_obu_header here, since it will check size <= buf_size //see c27c7b49dc for more details @@ -367,15 +356,9 @@ static int obu_probe(const AVProbeData *p) return 0; } -static int obu_read_header(AVFormatContext *s) -{ - ObuContext *c = s->priv_data; - return read_header(s, &c->framerate, &c->bsf, c); -} - static int obu_get_packet(AVFormatContext *s, AVPacket *pkt) { - ObuContext *c = s->priv_data; + AV1DemuxContext *const c = s->priv_data; uint8_t header[MAX_OBU_HEADER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; int64_t obu_size; int size; @@ -404,7 +387,7 @@ static int obu_get_packet(AVFormatContext *s, AVPacket *pkt) static int obu_read_packet(AVFormatContext *s, AVPacket *pkt) { - ObuContext *c = s->priv_data; + AV1DemuxContext *const c = s->priv_data; int ret; while (1) { @@ -431,39 +414,17 @@ static int obu_read_packet(AVFormatContext *s, AVPacket *pkt) return ret; } -static int obu_read_close(AVFormatContext *s) -{ - ObuContext *c = s->priv_data; - - av_bsf_free(&c->bsf); - return 0; -} - -#define OFFSET(x) offsetof(ObuContext, x) -static const AVOption obu_options[] = { - { "framerate", "", OFFSET(framerate), AV_OPT_TYPE_VIDEO_RATE, {.str = "25"}, 0, INT_MAX, DEC}, - { NULL }, -}; -#undef OFFSET - -static const AVClass obu_demuxer_class = { - .class_name = "AV1 low overhead OBU demuxer", - .item_name = av_default_item_name, - .option = obu_options, - .version = LIBAVUTIL_VERSION_INT, -}; - const AVInputFormat ff_obu_demuxer = { .name = "obu", .long_name = NULL_IF_CONFIG_SMALL("AV1 low overhead OBU"), - .priv_data_size = sizeof(ObuContext), + .priv_data_size = sizeof(AV1DemuxContext), .flags_internal = FF_FMT_INIT_CLEANUP, .read_probe = obu_probe, - .read_header = obu_read_header, + .read_header = av1_read_header, .read_packet = obu_read_packet, - .read_close = obu_read_close, + .read_close = av1_read_close, .extensions = "obu", .flags = AVFMT_GENERIC_INDEX, - .priv_class = &obu_demuxer_class, + .priv_class = &av1_demuxer_class, }; #endif From patchwork Sun Aug 22 11:29:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29720 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1202379iov; Sun, 22 Aug 2021 04:31:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxcV3AyTXE1KcV/+E05Umr8ZK4N7Y3Ej4/0GA/wSHRblFBEZ6z3t2UaR6XWt269Rmci4WHj X-Received: by 2002:a17:906:3542:: with SMTP id s2mr30779192eja.379.1629631868736; Sun, 22 Aug 2021 04:31:08 -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 f9si11281010ejl.743.2021.08.22.04.31.08; Sun, 22 Aug 2021 04:31:08 -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=S0VIzcqB; 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 595A16800D4; Sun, 22 Aug 2021 14:31:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2041.outbound.protection.outlook.com [40.92.90.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E49CE6800D4 for ; Sun, 22 Aug 2021 14:30:59 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QwDW3bqt7TJcmDz4XNn3RCvkhTWJEE3IFWYaSORUrTb82AuPxbdMF5SotsNCv7SVbsvZn27RlmRN9ICkyxMshV2quLbxYGEyfIyYpiY20Ju/bs7dhYLIa8OZ9/l0hTUpfzx0wq3nf2+YUWKZQGYz4DzJb7ammtJeczY8immlUVFNnQQ5aVWEPIRiZhvxeQpjdoT3oxOUCeuyp5I89O9i4zV+tMtIFO3ytInnQziGZ45y9JTykQ+4YRmXUtoG63Au4HLvprkvh8ZoZQis96bNueyy268hsRiYGsgFruyWsuEPK8t8YaCbi857LSsv0ZkoBWLY6rugce0cDyX9agWkSw== 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=RbuNLc3F+t4nSVLCesTI+rPZ5YLiiljK5wzIsYW5400=; b=gPLCW7FOhePOgvxGdSrF6Jw1KtBKtUdfQZwkaJOcKXQYl0qtbnKwE+VjeC6+ckZk9CDJI18FatcTTyf4ZJ/PwpCcN7e4Fk32qmHj6yz8saHBNY25n397JiW26IiaI2/aaI7P5VzU8lF67d5VqlKs5Sq7XCuKSjmEKqTWGVgkh+geL8AIWPvQ1RHeBzNHLfjIfXOGmdnYLRxL2Ibu2LPzl7AXG82QzUr9+08MGja2a990VJg7Qs6daaEdf9HTyb8RMPw6Utoz7v4C3wEFnEv5Sb4Q0HPvntRe4TTseUfLTK/944HSbUMIbf9kw8jwn0gnJIsNQthWV8KBv+Ti9DimXg== 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=RbuNLc3F+t4nSVLCesTI+rPZ5YLiiljK5wzIsYW5400=; b=S0VIzcqBAMIJf1aesuEKW7Ki4iXfboChnG6NlsQNy5VSbDk4JLS7tZhV9qM++oIkjn3PsA+rYqrribl2OjgRavINP4ZskLK9TeS5kROXKBfYO8AC5/t9iXU6PcXDp2csMGaDPFW7rx2ClsLthBcl4/jOYBtgD1xXOR3UXE7JUuof/kSlvs9WsyCD+1Pq7wekY/jMW4/kQ2gNCsSFLm9exS6tIVkajVg3YlOuIqmTXXCEBnzYsomGUlZm8yoJgqCYS7XcMZKfM2Bq/xCzD7tPMMDxaAJq1GcZ1/EphnFUx0k+KYch2ZzCHUcvRY5dGSUZeNkitnyxNsLLh0aO9rf7GQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3765.eurprd03.prod.outlook.com (2603:10a6:209:2d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Sun, 22 Aug 2021 11:30:58 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.023; Sun, 22 Aug 2021 11:30:58 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Aug 2021 13:29:53 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [KlaejX2qi73ZJUe7OoEIjFWJyuqpywjk] X-ClientProxiedBy: PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210822112955.1434452-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Sun, 22 Aug 2021 11:30:58 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e1c56c64-4547-41ae-749d-08d965605011 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTwpFlTyQGqvcPFYyI24dYLWGDSDWqc1T9bGF103Qpo1Pn6jkBO6UpE8TP2XG7IbY21plRQmc3xiYgFWvJ8+NEecaIn95IgQtGn37G+MKdsNT5XP5jL5t43qpSln5QKCm5NBxge7M7hUPiLOvNVJkKvSdtoLZrtNMSx+PYSbyOwS/7TJOsd1IhbDL8wIhG2xo6PN+24Ux4PefhBZtVFXpTdXLVTII8oB7UgV4KU4VxXyELJuX/iFACbPGzEfjjS57LxJgeBCNzu61GofH6HGiqNuj/xGYIFvyYVHD6a7vB+1QXXcppCMrBwlMajHQV5xlpYV0705x4kPGgpCLEcKoijEf/7OJzgWpgkw7v/bg56FEvFZoYDNpcTDr52wu8Q+qBuyAJk2EKfD9/wYYtpgc2fqLbmilXd7VmA7hl/YdSDbzCE6iLx0RDLCbPUd5GglHXRoE8n3iCISHj0//VmLKzpehXWMBKJ2jFGTajsMwbvMKZWSEZR9LhhpbG1jQNA+qHqlYxiEEijvwQEzZ+Auo0/eZ8kgDOOe+kiV4MmpTmWK7Vs/ma4x4hOWlkJ25FfuhxAH5ObH0CPl2Q7MDJi8cnvel8RjLMLt1OE0WV3dXUxRds1EXbpC5UzmdF83/EtZIx2CTVOO9o2g+M2lx4TWA8sLZKP7sTKUgrTthukNyQl+TycaTiE6llIFvcOjzBJbNZCq4XBRnYhfIk8UNfSpmbLYkwY+8R0nzKn0OSGCAsdAiG08KkqpbVmjLs+iSU6P9s= X-MS-TrafficTypeDiagnostic: AM6PR03MB3765: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: t11Xp7b1FeKWoc8aUcQV7yKOK1fh+c2HeZZlIfFQmCDcdCpi6bxrqxmlTG27QcjTfZholIfDcabSeW2O1tHX5xVpJryRdjN61I+ztKQSdPgAyTSvCoQceHgvgYZECfRp5LNIkS+Evea5+9Tp6/zlYze3MxMKKtTFKDmZ1bq+MBBBZvKS8xEE8hZUy7UWFHgQ3e98c6ts/5YCA7Hv/V7wbyOi5Zb7AjzBV2ywFWxlSAD2DAsRk+h+SM83FqNTVxT4I563A+uccpoRhOUvQqXxq0HrzSspFt0lZOZ/cY4ZjCRL3GDJP9O0Xi4B6jWiaohy1yt45z0v0rDL8Lbj28io7mNMYsGEfJ1hA6ditmIopxcQHTUCJsHnW6JojOGiq9AGnoQWxQ8ZLjGRSfCmB6Rrfx4awR1QjgdrMrXw9qvOAKZmfvRykWs+plFBUaT6WDNB X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 07+nsLUfnq0zZ0BnsE7uRjW4JvNuviVaFvL41V3jfPL5gRYiml5KvBydK0DOFNM/lvBT+zlXKwoIoxulchtkvxBGpBHtvvBribPUk6DDoWO65oIVOXK6d9epyNwxgU52WclQT8goWT/T9gAjvwnw9Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1c56c64-4547-41ae-749d-08d965605011 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2021 11:30:58.6214 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB3765 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/av1_frame_merge_bsf: Passthrough pos in case of no timestamps 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: 6RSTDPlHCSE1 This is needed by the AV1-Annex B and AV1-OBU demuxers. Signed-off-by: Andreas Rheinhardt --- libavcodec/av1_frame_merge_bsf.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libavcodec/av1_frame_merge_bsf.c b/libavcodec/av1_frame_merge_bsf.c index fce5bdb67e..19b9cd01a8 100644 --- a/libavcodec/av1_frame_merge_bsf.c +++ b/libavcodec/av1_frame_merge_bsf.c @@ -103,10 +103,15 @@ eof: err = AVERROR(EAGAIN); } - // Buffer packets with timestamps. There should be at most one per TU, be it split or not. - if (!buffer_pkt->data && in->pts != AV_NOPTS_VALUE) + /* Buffer packets with timestamps (there should be at most one per TU) + * or any packet if buffer_pkt is empty. The latter is needed to + * passthrough positions in case there are no timestamps like with + * the raw OBU demuxer. */ + if (!buffer_pkt->data || + in->pts != AV_NOPTS_VALUE && buffer_pkt->pts == AV_NOPTS_VALUE) { + av_packet_unref(buffer_pkt); av_packet_move_ref(buffer_pkt, in); - else + } else av_packet_unref(in); ff_cbs_fragment_reset(&ctx->frag[ctx->idx]); From patchwork Sun Aug 22 11:29:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29722 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1202482iov; Sun, 22 Aug 2021 04:31:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwLnrGFQzsvu7wFlLcmcewxZRW6vYDddq7b9jCrePsG31J7VEFSzAJ7QHhml+Fm602caHPt X-Received: by 2002:a17:906:5a69:: with SMTP id my41mr30142771ejc.220.1629631878023; Sun, 22 Aug 2021 04:31:18 -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 y21si11127964edq.281.2021.08.22.04.31.17; Sun, 22 Aug 2021 04:31:18 -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="aaCC/P8Z"; 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 778FB68A2A2; Sun, 22 Aug 2021 14:31:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2041.outbound.protection.outlook.com [40.92.90.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0920F6898A8 for ; Sun, 22 Aug 2021 14:31:05 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S8aQXRF/Eh6DFTxkTxXb+N6ufFL+sLujTQ7loZ1mp++wnrfqbJtz/enq+Rh/256oVK1yOTi2w5a14pMnAJMuYKmpRAobaQtbvlzQLFn0opvUNY2cAiHyV2PriuwYpq5rNmR8taEZOMqo+haaZ0qshWpsewOV/1ixSrX5QCGCCicvXUSoXbPt0j9OhCQHufZG8W6JO0+aVfnPk3+Vff3Oz+ofNPUUZVF2VpuOPdZuapCKTGVCSXtRRfKMCSdAO49aL7sS7yTcC6rGAcS5c3F9ui5BGkosEFUN1nYwufzGJPv2q3a8ut71YdbCyH2g49tpzgTGAEul/jU2VAmIkzblFg== 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=g0qTPHgbNzYdn813W1+RvOiAPPKKx+x2d5ZWc5ogIWs=; b=XnoUyOHQtzWaFJjAVQKheyDxQjgW3/Kt4cLHFHdf3fwbHyy9GCr6iyXoF/CcJnImhRS9dRm7QT+uzy+p0hob8kucElviRaEtoIeOI3RS2o0Jh+cLQRqAIGKVJ2p40k+JeZ5z1DxAKGjF4jPCiYsR+6oCJZL9S5jmhtbW0yOXd6PQxgz7+uhfgm69e6YR5WM/SOVfpDViqRRJ7OyAcEQr3/M45/NsaFa3RVEFMUCwisVDKtYADtSd4h/mxXnax1XQWX0HqTwsvQUO5hUZPWBeDmoRl+TCkjPWCct3XrGnhHkt8IMeoBXtxKM2wIAhi9EbCSNwVmdMoYFwpOQwQl1HoQ== 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=g0qTPHgbNzYdn813W1+RvOiAPPKKx+x2d5ZWc5ogIWs=; b=aaCC/P8ZGj+/nvm1uZwjhTl7WgXQcwfVPW4FEuEhQtVqhgV1kPF6dSvTnrp8k/3YbJoTKojrPMxo2zoVYFkvokgu47u9K/bDRNBpNEnNWIUehr7UukYLSpwFXvaiXVxLd9cXYPY4m2aAyJR7PpibNfTeUVqm47NMO969tll/Jg6fxr8RCsnodAHl8uQbETsEuAnAGEEQGAquJXsYZeTUHP5E+2Hj5YOUiVfWU4I8G17qhEzDQmWLZKzKhveiqgUtAu2qbBhm4MK0dTZKamQ/D/I/awj7MPP9WlNA43m5pdKxnYEktHtLAgolE19aPZ/DEe+YsH/Wcq1X9mDaOCpiSQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB3765.eurprd03.prod.outlook.com (2603:10a6:209:2d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Sun, 22 Aug 2021 11:31:00 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.023; Sun, 22 Aug 2021 11:31:00 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Aug 2021 13:29:54 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [8/qcrX6O5vQkuOZvJwVyHYn87cDvn3Mf] X-ClientProxiedBy: PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210822112955.1434452-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Sun, 22 Aug 2021 11:31:00 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2e3ef06f-389b-43a0-2125-08d96560514f X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiTwpFlTyQGqvcPFYyI24dYLdl8P1++thyWukzGWuqnuuKLgQowCMQ4yv8PlAUHzAKMYYOvcROjTN27Rpt0cD+YB2l513BksjIWf0tWyXvLwNNiOiBMCl0GBCTUmIsXYYBZ0IGVBInXf6liE4h9XFtTBFeH1wwicfp5uRAumNlEDXJO8XyxJqxL3t6vHUN9j/Zm8S4mKgthlMDP+gMXLa9uko3hXSNXKEdQK0OfPHDFUfNc7XaG47xjJPudcV5Z+a3/qp8gG0yuzDjjDt5W+M5u03aRDoSer4nOTEZU7QnXYMOBwpD99qhKl63Aj0+yIvfHmiK7Nu6pa6OFuH+Yy718zI4SEmB6SY4wU+NutNwIV8sJzd8K/Zi/n9CWAFrHoNucYIY/qpxX4f4gPstgjLPT8ms+EaYw1RII/lMUabjt5/YHUxMQd3Jzkn5LZ6nyywsEPy9pMerYttnkvPmvMEOmV55t/DGwjDsD46ALkMtI57fEVqr5prUhS2jq1TrH6qnzzoE76W6DuBWNw8hi+CBZQH4wiLTV04wU7Z9TwTwqxNpIUguhG/iBPuZ1R+hkeUmNqtOmEfZ1QXQbpwXQ1ut8uAK+JeLuWXw0RP/q/Yc5/wSrHUKr9kFspsW5WKPr6NzDCuzk3VZSiCGMB0SgLwZZMmzs3L+A/CSFwpQK1ZjSUz1099S5A8Hx4j7G11qgkKorygO1Abwnw8JyzUSri+d3PVC7K3MVPowtuD8sNkcSaeiM0fW5WThdZwaCK4hvhDkU= X-MS-TrafficTypeDiagnostic: AM6PR03MB3765: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9kKceeM/RLJ6MAZBPmIdWh5bWihShc9Ux8f786AnVl98mHrbAJKRegLhOZwq+s/0dED4mNvNwJJ4BzfazS4cu2vNstlz0UwzyoPVU8ThOfbtwS9bCepWLFl/zFNAI4/O1pRteZnsw0C+VTWAZzCz2JvHlp+P569oJuHBWWfgVhIjb7OHpRoCe+511QWdGAysbU51L1eIiT+8/McXaK9AetWoAy0C/v4A+WXaHqkuT4Q72LbXuLJBTw+ZVpnnBJDqOoZb+5Q+8utiithk6TOxNY1MrDCPb2RZwPCe1AwJAw8jzmAXwGLEN4WyUrHMgTtiynCIe7YbVRxfCseh9F4OLP8+O7OeohboZ0wGB1zKAmTKyuWV1JvM8YoGabil9KYzH0O1ocTcMCHFeyb2n+V8jlDc2aX2vNW8n+JDENKldcafoz3mHvPSmVGObDtP6sJe X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /GvkWKKm2t4fWnrDuh4QNfcnk36cjRrRdJfsVfrc0My4cRifzwOWZo3ABGI7ONBOSF/ySR024DiKXofv65ETtmdcVhDEHttuoCvr2cTQwngcBTOnngLYUZu5QokWBe7pjmPJd6WCCgmso7Nn2wPXag== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e3ef06f-389b-43a0-2125-08d96560514f X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2021 11:31:00.7282 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB3765 Subject: [FFmpeg-devel] [PATCH 4/5] avformat/utils: Also set io_repositioned for generic seeking 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: g4EljojHoKVr It allows demuxers to perform certain tasks after a successful generic seek. Signed-off-by: Andreas Rheinhardt --- This io_repositioned and the flags which contain which type of seeking a format supports are IMO implementation details that are only public because up until recently there were no internal flags. libavformat/utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/utils.c b/libavformat/utils.c index 5754fc1537..39f082d98d 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2354,10 +2354,12 @@ static int seek_frame_generic(AVFormatContext *s, int stream_index, ie = &st->internal->index_entries[st->internal->nb_index_entries - 1]; if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0) return ret; + s->io_repositioned = 1; avpriv_update_cur_dts(s, st, ie->timestamp); } else { if ((ret = avio_seek(s->pb, s->internal->data_offset, SEEK_SET)) < 0) return ret; + s->io_repositioned = 1; } av_packet_unref(pkt); for (;;) { @@ -2392,6 +2394,7 @@ static int seek_frame_generic(AVFormatContext *s, int stream_index, ie = &st->internal->index_entries[index]; if ((ret = avio_seek(s->pb, ie->pos, SEEK_SET)) < 0) return ret; + s->io_repositioned = 1; avpriv_update_cur_dts(s, st, ie->timestamp); return 0; From patchwork Sun Aug 22 11:29:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29721 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1202559iov; Sun, 22 Aug 2021 04:31:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxNezV3V0AN3aCSIMSapIl8pmMemGHfOhUT948gbaCJj9PwdQQTSoC4QPN/x1G9uddq+tfm X-Received: by 2002:a50:c31e:: with SMTP id a30mr4651745edb.123.1629631888428; Sun, 22 Aug 2021 04:31:28 -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 u24si594137edq.233.2021.08.22.04.31.28; Sun, 22 Aug 2021 04:31:28 -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=Cf+j3r9C; 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 A981868A2B1; Sun, 22 Aug 2021 14:31:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071048.outbound.protection.outlook.com [40.92.71.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6B92268A0BF for ; Sun, 22 Aug 2021 14:31:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dh01nDMUToHQFuyauGiqEjC6KHY/ogfxKEd0c++Uv8bDl2RPEqImVHnmTlwCbg6EV11aH03avJfApe0np0ybqGSOl8tHvmOwRdVc7jzj6jfv7MzF2kG6rxmh1KRz6/hwgo0YB9uLV/RCILVP6pGqhWC35jPRFn9nlgVGJKwXiJAgQnpwtcjC6uviXSRQXUqezPEumVDgtrOsCTlQvI1WoaDOYOREdcNmIDbqpUOXVdXUZg5EbYjZx7X5sC8FOhszr9gvg1DNj6Hx2I8d7dgcZ4UY32MtyM92WTy24/QXlDaqQFybwinmR1Mb0ZsG8wtJVA6+vN9Mjm3jR56Xs2yytg== 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=5DP9MHMaqw414aSDekvk/IESV5g4oaFeNjAThb3LHcI=; b=dUFC5sqYQyueDXxZcpASBCJg7oKILGy/XIr7x5a8/VLyW4mSedBKRTMbhymCX0ClhLh2LOcVBv/JTOYamz2sIWCYt3TS6pmF8lIIX75h4zaig1/9zFGLyTEaRvC9hVA+EEOZEy88lLeS86UtOgQK2uLuZ91exqio+K2kG3hFHhV3jG41Fn2gCv7JZBPLx+AAN0BqmlOndWomZahcZ2RHO8aWzJS0G6KLAIvXSEb+jTwKDGquJtWCdQIf0qcPwPe1wEUy/QDEZPDLaygKik0t4+Pdz0UE9Q7YjtptnU10YtQznV6PERtoA6J004bHVEw1ztv1N0od1SJFqTBesWAp+g== 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=5DP9MHMaqw414aSDekvk/IESV5g4oaFeNjAThb3LHcI=; b=Cf+j3r9ChFnnkuHpb3AFYpDj9j6i9Ctz9SYVF9XgT+3f+NZIcQSR9zkYG42YQ4YUOVFjNXyTztk4ryNrO1GPXhx/bQz7xwBRsA2iiJAorRGn8XCo3zSBs2BR5Vzuw1v4eYL9L+/nTAFV6Y/HCbOFz2xLRGfQygiMLl1z3AMiAYYpI7E4f1uxL07J4qb695ieVIZJkWRRRsisiQ3r3lLN1dEaVFl9fGUWDEk+ZNO4Cj+hmfLwydKAP/0B7uj1FcAesw4DL2HeN4AU+Qb+tTGWLSIuqDFGNB9TF4/RbsXU1dzGy0eyGrfu8E5NseHsjpVnzyBkK7kmDHo1gGLhMjjXRg== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5606.eurprd03.prod.outlook.com (2603:10a6:20b:f1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Sun, 22 Aug 2021 11:31:08 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::5574:1fd:cce2:d590%5]) with mapi id 15.20.4436.023; Sun, 22 Aug 2021 11:31:08 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Aug 2021 13:29:55 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [ZXThjCo1mN6W5HFw/NGCYPysn/+C2p7n] X-ClientProxiedBy: PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20210822112955.1434452-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by PR1P264CA0033.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:19f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Sun, 22 Aug 2021 11:31:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7fa8b1f9-c260-448a-707b-08d9656055d8 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWLCY04HziaJ2LtNI9h87mIVRfq1s7gMjn2vUqcxfeOJCyKSVfDQOBmifVQhuk13phZb+frFaIMWM9WT+U5oLCeaePzXlyFpXbFalci+xsMV8eOynHWQmwskldck1E8UkgTh9hbp8q5Z7Gthhlb/65dhLSGM1ArKUTuxQbuoKgA7kR/SqrCblYY0K91292TxToycPdhH5MbqXsNqMgBTpiI87Yp+1Em04n8VrPswF15hYT4g3REKE4Ri8seLxcBJG9Ds+0G8U2EuZpYBYHBQr07p5RlNv5yXkJtRGCWTJWPna+NmbfGgKDLjJjE3lC+NJTsYRyJrtROkFsvxW6RComSCUfUo6GMrziTT4CNPRI2PomjdfwehB9hYIJgXF8WSiablXw4UnPeSOCfuqqytAybaZpSFVLs6weFJighVbSS+iNcMuaqPRYnESCyw/F7ZpZNuOLFbxv26kaVOggNa++gnB7qhLexY7HNhOrvB6rEtWHy4KtDPEwGu9KFyuzLVUpcMvkp7vr9pDxzetkuYF+HiFBt7lgInDLLY9DujJlmiq38U/iyNhEQu+PIScMFWNJG5Mmy/52auaPqaXABhK2GOuagC5oiEZdjnPygxJbf/YSfv8OIbW86oMGJ6Un16DO3/TZ3/yoRXOpx5ZheLTcfm7ao1iqLNSx7iraZlLlPm2Tl1Grd72DYPmp8mRQGqxgzM0a2VlbQck0MlBRuCaAhqGuM3buP3pw= X-MS-TrafficTypeDiagnostic: AM6PR03MB5606: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iv761EZrFZDU/baZu01pWtGqlozDxpro4gHhIs3lV+OnJ9VwNrwCQFt0+ThZRHN245uiQPJuapgDWJpF42XrqTd6cNaww/lUDeG0ZhcKkEZjUrT8QeKX/TAEirTWuIHbH5JJ8yRHXPlK3OSduNM951bLHCYFyjn2CTV7UXP1mdwSLUPzPDAiTPtZdoCtlWN6WVx4RSQvkGxVAFMzvP8q1mmzzzSACbkufPHcxEXBFn9kZcfg1vszkk3Nfw4ugT99H5qE6TCKGNrBk7jeCYqCeX7cQppDjo0MohhLb89fKngyY/3qIQj2xtMSmwMFZWXo0Tzsd9QsJX+iyXChCsni25+vOIrppuWeNHNcT8SwsPPV4Grs/hDjYCqzGlp2LNbMWH/ORTXtfcHycCT+QhKXhr0sk/VDVuhTI1BvjEzigXvlUlRGACrywqb+jTj6/92o X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HiS9v8Yu+MbOAZpv1BP0UZKxKAIUG2UU3U1Y6P5BChUcI3M2/eVGxSxglNQn/CgG0VPT2IIMSdlq2y5cIglvCKBClqM1PjkvjLCy4XMChT1FtNTWWqk23pDqwA70rlwCFKzDi0cbFuxCvsWVBLFfjw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fa8b1f9-c260-448a-707b-08d9656055d8 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2021 11:31:08.3270 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB5606 Subject: [FFmpeg-devel] [PATCH 5/5] avformat/av1dec: Flush BSF upon seeking 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: sWUjAuL27fsE The av1_merge_frame BSF outputs its cached data when it sees the beginning of a new frame, i.e. when it sees a temporal delimiter OBU. Therefore it typically has a temporal delimiter OBU cached after outputting a packet. This implies that the OBU demuxer must flush its BSF upon seeking because otherwise the first frame returned after a seek consists of an old temporal delimiter OBU only. Signed-off-by: Andreas Rheinhardt --- The AV1 Annex B demuxer also has two issues: It records the wrong positions (it is off due to the annex b packetization) and it needs to flush the bsf, too. Will look into it. libavformat/av1dec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c index d5d4548d8b..88a3c325e4 100644 --- a/libavformat/av1dec.c +++ b/libavformat/av1dec.c @@ -390,6 +390,10 @@ static int obu_read_packet(AVFormatContext *s, AVPacket *pkt) AV1DemuxContext *const c = s->priv_data; int ret; + if (s->io_repositioned) { + av_bsf_flush(c->bsf); + s->io_repositioned = 0; + } while (1) { ret = obu_get_packet(s, pkt); /* In case of AVERROR_EOF we need to flush the BSF. Conveniently From patchwork Sun Aug 22 13:25:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 29725 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp1270353iov; Sun, 22 Aug 2021 06:26:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw7/VD5AV2ca7hqsROjxy+D4A68EPufhdpynPdXgBM4hLcRF6Mv9rlFa1+It6DekoeVKEET X-Received: by 2002:a05:6402:1767:: with SMTP id da7mr32359340edb.66.1629638807491; Sun, 22 Aug 2021 06:26:47 -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 i10si5299829ejd.99.2021.08.22.06.26.46; Sun, 22 Aug 2021 06:26:47 -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=MXuY+3Y4; 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 B8948689F2C; Sun, 22 Aug 2021 16:26:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (unknown [40.92.74.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 027E46882CB for ; Sun, 22 Aug 2021 16:26:35 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KORJ2tnI2sTHl9Fu4eJr9HbnAwtG2CHp1fVK5ue76+kVHVo3whYeY8J/BM5FGu7FEKY1qjfMo4IgwYsgmty4eEFUgo9LjNBxOjqD2RKHdxnm+mwtQUBTE30jVDpnl5/s4vgQc8ZUUI6hegjnfwL19xdkS9rc8bWCn77QW1281qBW76NVIfE+lheE8y5XWjhJpnQy4PMIA8TQ24Xl6zwdKy8DpryLvfx1hmf6wuJG0NY0HEBoJVUx7FSTS7UeoNiOeRe1TgzToUCC5tVOuaiHxmhmAxIM2yxapPm576gsWCc8TtYM83RcY8PwrErcxq1DkTOdnzWppPAi4Z9LwZBHAA== 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=ubsGrpMRfDmkR/NeRU2x5bYtg4GC047KHClCPxsvjCk=; b=I2NlpSKXIV0IlljiSRQWw+XUaImqEholv/m91bAV6PQT3Z6YjjoGYX+jr1rGMWjUwJVoeMHOtEs3nAhfYxKI6bSm8ib5vySxVOkLnvT7idP5TtXKd5Vq0HPrzWCNcNh8lvhkuiPosVZtZClI4xqz1VPZiBPZSFiuFN2GP1xDSHKqtuFAngSPTKESCjLprw4UIzle+95CM8swF9v7qo2pn1JwZcI/W1icrCI2fiZNxnwcBLBAF8sYTDze4C6UjzMyuLkRbUWwxc7EdG+IQW748SckosYqD+hA8x99Ys9xqcqEZ/HWXBTlxilNDZopGtnFdslOzvneEgZ3jLajSyR1SA== 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=ubsGrpMRfDmkR/NeRU2x5bYtg4GC047KHClCPxsvjCk=; b=MXuY+3Y4QTarjN1EyHNhMTS47/esdqrbGYReHg/DnM8VUVtIwRmCUfHfwdynSMClMc+4WqnQpC8izew7jQ+cGjab33aAxoHKGT5TepyG0rhdv9GzrhqgVrM/RRu0tgKXDKz7B9U4rjUOepej0Na8+m0wvR/ghOvk4kc/jMOFyixXyJOU9GbWrXHp6B24tQydD4DU2tFbxCzxARFNeLCpd8YPMsAcuqHz5wCD4JjPNskgEoOgHcMfIo8xiOV+gv3oofVLp2pPN1vQqPtYQFVes0mn1VxAxhXXxw7/WQOqeyn4wy159H4vRKlcW0izCm5U4Gey5CAb7H58ifU73Awx2Q== Received: from PR3PR03MB6665.eurprd03.prod.outlook.com (2603:10a6:102:7d::6) by PA4PR03MB7469.eurprd03.prod.outlook.com (2603:10a6:102:105::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Sun, 22 Aug 2021 13:26:34 +0000 Received: from PR3PR03MB6665.eurprd03.prod.outlook.com ([fe80::2924:e83a:49ed:92f0]) by PR3PR03MB6665.eurprd03.prod.outlook.com ([fe80::2924:e83a:49ed:92f0%5]) with mapi id 15.20.4436.024; Sun, 22 Aug 2021 13:26:34 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Aug 2021 15:25:48 +0200 Message-ID: X-Mailer: git-send-email 2.30.2 In-Reply-To: References: X-TMN: [S9wSaWC6N8c0nlOVlQJ8hAQpGEIFdwAp] X-ClientProxiedBy: AM0PR06CA0106.eurprd06.prod.outlook.com (2603:10a6:208:fa::47) To PR3PR03MB6665.eurprd03.prod.outlook.com (2603:10a6:102:7d::6) X-Microsoft-Original-Message-ID: <20210822132548.1436305-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.142.38) by AM0PR06CA0106.eurprd06.prod.outlook.com (2603:10a6:208:fa::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Sun, 22 Aug 2021 13:26:33 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5d120da0-a7dd-4066-7181-08d9657075e7 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWLCY04HziaJ+YeaMriy7mIKi0iGzYlnvUAEcN2AWX3o/MK7cl1nBbBkle0Am82c4JpbaT7mB3WhxiTf0OfSA2zBwNjNEieBLvtySut7eJ12FdYBrCbz668W9kE3R2MOO5EIMEOrOqe1bdYaiXMolFv3m1KlW1vgrT0W7tbtq+BelZkyvsVIExpE7HZGHqxOutMDku8Qkc4o8zhwAKjZSza2qOs5tVaMQrtv1Yuk+n/O4o9UC1NeF6MD8h2+lSXjTnLA739hXEhKXTpMFq0uCANBHyd6q9+/3iiLsX1Q07ZiiOK3+T5h+BU/iMEDeyxxb+Af/NRQryWPFPApPnLB5AWFc7tqxiQuT8E+CWqdWiQBxPjx0Jowedj0ObMbIm7MzIafnTt9hwoWYynaZANJWe0k6mD97kkr29U9AABgcC96wIIK1jTxv++/APufuAAyin6y6G2SY63Froh3ISiAcrDNCX7jakD2JFsx/aZGoyCEv1ffKDoUkvPpVgjM0m+ZM8RHPai8kKZ3t2Gs+g6mTl49jcbbu73opBMRTrPG6zR8QzXCv1h139o4nhyhZx6imJKPn7Cm0cMVhE611JyHjmO0j4GKox9DMVGRPaJDM40oMsvxvabuoecjKccxCUvUuYUt0F1+t+ictMY+JN0wop+9AoD36J7LzYyd4F+6a3d/QDWQv+AJsQSFJ64YVOT83DCGBySzpZgSprsiEZrVXdPirFDnUIStbw= X-MS-TrafficTypeDiagnostic: PA4PR03MB7469: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BYFBHybDZh54yITEErnkZZD/x67ZxXgt/iFTbaLzzITJATtUUWKp4Cl3DWRDCEWTSB2CNbG2VZMMald7r2gvpvoAuO5wJS01BZXuz52B3TH8vrKpuO0XAXCX8D6XQxATtw9JkM/PTjy0AzPYeIA5nznJ/WyHfOWoK76UEQ0NO40a8ft2emPfgXBQ9yNEJLXdWHuk5V+41bZCAzsTF+rIdt64DpxHcBBbgLusOZSGccFbtLIdWAp0WJPjE+4oyvbVHjSIaakJfOq6jip0RIcv2+JNpsvOw8wiA7ArO0jizDnccc4hQyZXmO8FSkhZAiciC3tomGaCaJOcF2wxVo3tAJ1XjFrR4PKrsPu0/lnDG5oiZu2VEBggfTt8NYTeLWRYG5DGYOSZp7IcHZsVtIuFOOngK+plU6Lmm35y9aSsdZkO8qJjizNp1d6c/AH9BM8P X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ouFLRiwDgB79wwdHPJN8mPwsc3KwOMU+vSwfc1iZujkCJ/i2tmxT8WBuNpcSf/9CP1B36jyAMdrOUYoHCerO/Fa+fSSsZG/pDyhCUyV1NlJfh6K5X/krzJyLaiso324Ljz/5IxlPN7j6Lte/BiHYQQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d120da0-a7dd-4066-7181-08d9657075e7 X-MS-Exchange-CrossTenant-AuthSource: PR3PR03MB6665.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2021 13:26:34.1407 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7469 Subject: [FFmpeg-devel] [PATCH 6/6] avformat/av1dec: Disallow seeking by bytes 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: bQx52fAIRZyU The low overhead OBU format provides no means to resync after performing a byte-based seek; in other words: Byte based seeking is just not supported. Signed-off-by: Andreas Rheinhardt --- The reason I didn't disallow this earlier was that there is one scenario where such a seek would work: When one already knows the correct position for the start of a frame. But otherwise it just doesn't work. Somehow ffplay tries byte based seeking even for formats with the AVFMT_NO_BYTE_SEEK flag set. Line 2837 should probably be changed to no longer do that. libavformat/av1dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c index 88a3c325e4..37f21483b9 100644 --- a/libavformat/av1dec.c +++ b/libavformat/av1dec.c @@ -428,7 +428,7 @@ const AVInputFormat ff_obu_demuxer = { .read_packet = obu_read_packet, .read_close = av1_read_close, .extensions = "obu", - .flags = AVFMT_GENERIC_INDEX, + .flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK, .priv_class = &av1_demuxer_class, }; #endif