From patchwork Sat May 7 11:28:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35651 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp2121767pzb; Sat, 7 May 2022 04:31:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy7OxpmD2WlZjZJq9RNBNv1TgwKsJlbxPoVZ1o3gb3nIB8v++WV+n+y5LKbLiokhh4lDw2q X-Received: by 2002:a05:6402:28b1:b0:425:c39e:b773 with SMTP id eg49-20020a05640228b100b00425c39eb773mr8005427edb.237.1651923092393; Sat, 07 May 2022 04:31:32 -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 p11-20020a170907910b00b006e89ea10769si6721787ejq.861.2022.05.07.04.31.32; Sat, 07 May 2022 04:31:32 -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=IJUgvUVe; 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 E178568B418; Sat, 7 May 2022 14:29:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073108.outbound.protection.outlook.com [40.92.73.108]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 86B9768B428 for ; Sat, 7 May 2022 14:29:37 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cTAE4pelS1EQ1lkePm+qYlRrCYSjFu6RrukC41SIac3nokmDZjfknndmt4C6bQtO0XAsDY87w17CqYulLU0zPQyhwRCDUlgrdZFocbAI6YpfByXZ+yBXD9IQtB56zxqnvcJf5I+oy0PfUrPjjPD6LdCSRRZV9UFB6dXE+ZdJqSy3EG7kKPZylDxJqYlXLbKupcZ/jds8SdlO2oERby4/D3racSkPhtaKAIyWekozX/lAk+FfvkXHaa52X90j+O4Aq3TSL5rybqRUh/L34ZSreFzPvqyoO9mSB6T/ezy8GhZLEHbHaOQt4lnWjRg5ooPrS/zCDWAf+DohlCcPkWvmuA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=c0hzfJTh0u47zAJ0EhcudYe/M9wIclGElMqkcYxojJE=; b=PSyw7NH6Zpb2ziwB6psz4l0fE8ZGya1XPp38hwYY69bxnw4gz7aNlfJNUBJ/TgQkf8KojQybRevQmsDKy+h3tPI3xZB1S1RYZZ47bUx4XcGP1koc6hliqj3u7dypKn8jwveSUp4PxnJWa+FoaPZRLtMVocQHZKBelEx7t6LaNEaFlKEi67BHFiVUnxaZc+zq4cZHWqwj1fejbTtjIXfRj8Fr7t5tgEUoadzo+xzhXvB8upx5QuXicJY6LHFvbaKyeVcDwsXmRhCUeHO3Q3WDIHlAhA6qb+M+KNqmRqQ2aTCsjOu6IVZHIdMgrE005Eb98osCEGlYQxqBnd8td4N1Ow== 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=c0hzfJTh0u47zAJ0EhcudYe/M9wIclGElMqkcYxojJE=; b=IJUgvUVeKeJRfo7pCAbAVq5gXEPuIWjTrZWEoarXR5G6oPfKSdWU3Yxz3w7k51OgwSYxmKxc/+4Zingv1/Oe6PyJjZw8XFco6Dp0RF+jApW+YWrgkMMO/3Hsa8QEeuQX8oMUbwvDadIL6vhhSJRH83CeOLSWzPM5b/Pjg+uUUpz7nCivSdGBIm3db0a+lZ9Ns9GovQo8os4O79Oz3caDSZZjniSDZ/Dvji7o3G32T+jCdD5W4rZ+LGG0qZdZQmKMOwwAsuPzq1m+FOIowhe3mKtelJ1+B3vmcSyiyBKgbZ5KgI+rF7UktK8S4B037XTFi6HsjYM1sTjg5f6imRA/5g== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by DB6PR01MB3895.eurprd01.prod.exchangelabs.com (2603:10a6:6:4b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Sat, 7 May 2022 11:29:36 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::1854:2c30:7ba1:c431%6]) with mapi id 15.20.5206.024; Sat, 7 May 2022 11:29:35 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 7 May 2022 13:28:03 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [9d8zw/xj+rF9VULANcpy1jIcJdlL1L9I] X-ClientProxiedBy: ZRAP278CA0004.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::14) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220507112830.406162-16-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5294c190-1a9a-4098-61dc-08da301cdd4a X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVZjuqTokTVdg9S7+crVfX8xoRGLGy7eMqnpfwbdrxdfR8cH2iuWr3dkOrGYnejUAf78zfhxkT3XsnvweYI8V0kqIL7bp+2MS0wH7f8uL8qxa/3arHxfigf/I5RlIJ1Wzzl8nCY6FyK20LFtFHV3PYg4L/97J2schfKn9QNAdASP4fLQqZdaWRmzHJbCdE347R09VoKK7hFYPTVTAWfxadqoSYHjr1p7O4IylqqTr/AlUTMGMclstaK93/Wn6cYuuCvhycyFDMrjNmHswo9RIVeTnzfzGiechpQyClz4ILxDhIv0+NFlbdNk7lE2v6hA10PBt+sRAzoZ66uW1qkomDm5bVnbTyJtgd4axxRFBeMcmDmCCgbIREtSe2Am3KXcf6BO3yzXux1S1pFBPF/huxNiTOFolC6fGyNBplXVudqbgRkXSRkixD1VKR20KURT62tF6elJrERyZeeTV3jVlWWrYmh+7G9W8lFUbn0h60C+Ug7ONtxXheG6Tcve/XJMqxhTJu9JsFvc1bgYZxu6+NGiJdasPRMCEf4+baN9hJKbZuPZ8OTT+dRzZFGhdcoPFHhM8y2BkuLG8GGLKjeQJ2lZdDXgDmsuTio9s8qf6xV4UOFpAMqTqsuXOzAaVbfM0hIgWUCd0mczyy7DA/9cFmdY1DufptspV4wUyrYODViwxg9XfUL5xBHiEidpwmm2Aj4kbphrcRYOm/97q7D2M7G0siTuOwlgww= X-MS-TrafficTypeDiagnostic: DB6PR01MB3895:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PTr3KsGv7tUa6ku/whk6HyAjq1DcQCbOHjN5Yv22gzZbLHuCDXQI0aV/YQ4PHOhMBRHrAX6fma+NZTfaa7F9kPWMx1hXV9ltNOCUQUa/UD00HScObnmK/FaHLMKz08xWAYF+N3OVwHJq1QbcYdS7PpmANOLnBM6Ooe19+WAUMQsDJbs6rq24YxeUG4yobX0HBgGPkvErYxJrMJAJbarMI01G7MLt5uzOQpbJs+IquaG5Hx6yCfBLHYo4RwEUEv736gNt+ut/b/omS+Qd0Df/Yce4IEE3hAEAzvaAjomgZ+gaofFFr9KP9ZwL7qIlr4C62f3FjFUvCFeRgkOb/OR1N+Fyvsir0AJo3gj8egrsmf5ABXzwS7AFhZQpa2BWAz/XrgXoLwDwgVWvqngDoYBNVhLI7gzJuP4089Ytqde+FpLCF7F991Gz+QpIW9kchEGMUyHB+fxgMBiFASsKPMvivvmdyKoOsE0UQ8CMHBjsspZk8KOMUOSXDZAnUQiZAs76pm+CsFqj1KYMp7C4TJdCTsjZ1n2hE/7HVVcqKXnW/kwtWZcQdt/S5/iIYvFKF/eKOtEsmyLY2bXhQTtiiEzJJBH5HfzjqiaxaUjs8/uo9blCerdpWhH85sWP0GFpxwVd X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: BjPXDt38+g15KWa3NDi+5FdsHXQxs3RxJpBLYpBidDxHFxkLQYoTDEupWpDp/egl3C9+hjOt5VGsgVxeDru1zMtBlhW928Cv+uzc/vcJ2VVOKzWGEh+158e4TfsfmrGsSeALGX9GHQedq1+zyUICjKO6hCFtDtXG4n8WBg5rmqiBIf6a9OB9OsHotNsuRji7kvsWIPO6JuQutWgTuBaMmXgjXcQkqHYhH7V63/wOm8gHG2eZfR0FaTAP0Xwb/S27rl/Dba27kg0BxQms1ITY1emyIu1fxB+cqn4XK4tO0STJ+Ssyi4TIjT6qMvgPs0PLthy+C4Mpkfq7xv/CHqbblCNuJYwUi3FQInqU1TNAXfPpJwx5Hj80Vk5Jehj2UB/CJWxf5kB9V5UgzjtboyqqoCfebVms9i+YaL6oSJGRYKJxYXkG5tqi245PK3P5lxwBgPzBuUChAzZyobpsfVv1OtNrLjWQXr21i81TnR08JuJQN70Hxs/I3vbyFG/vcTdZ1AXBZp9qwkxDOL1pnzAtKGYTt09Z/rJWQiY8gUuTm0/2jjD2Q3Uac6ZJSJDI9cM69YFPg+PH1EUzMYpqoZa85nL/dpsRg0LoMV6lyipQJBZgFcdBJs8dQBziPMRoRk0cJocjcWqmJdwh+HZxBCaLaLuNnRNq4oscfmegR1wzYMD9dBXg1g9itYxw3fmYH/oud1749VoiLs7eYnNMq7bz/RjWflON9T4mbE5QG0AhDLiLRZQvU9KXxXPy0g7JFCKw7TlUpH4Pku8wQj/lRtbZWgdg8qcsdoH3GCdM/t6QeqVpszsmuUm4WfztNdsq3ADK1wIJkm/jeIYl40Zhv2VPOncWYJQuhhpitSP89IL4E3YbI6J349MWTJGadLE1x4qC/k5v9Ge7jdgQuUexdyMD507KCg3emizNHhHfpeh5fOafVPXXeOaHfPqVPe1ERMegyLD/TTuoZcsTwVlWb6/mB8byKwdg6hcrLmBp0H0kdXL0CbHT6KB7HK/7A9BPf0t1BwPzpdtcT3Y9TPsonZ0L9eF7Nw9GIVChORo+Hhwyo5ew/5if+nZ5mfJ25coDcml3FSp/y8Hcji6kg3uYKnsfTv4M3b2KW10Wh2JqPqosBJUsX8lhB2cRb6Fr33BMxIXKd4DbrSpxZlrjQ7nAnVZOtSDVGVxYRchX/s9abJrYJeRthoEESaiSMB5bXKtXNOJRrmDHKqIgEA8tViRnKMIShsSOHVQeBC/umuGxjVxbq+F//No8T6OwnCI70vpC4tTjsqIWHWQOqHn4qaou1Nk35NmGKv7gWy8D9iXyhna8YNtAmn8ojI+E7E6Ty9cDkkHJBZzFajS4qSaVSRxr8Pz3m1J9Bu8ird6reDY1RXIUX8uEZC+jAuzeisY6NfAXkbrTwFTClzRLR5A9u3cjGvgbD4qvnOo3u/SgH9Q6TDukEcrKTYHxL6CCRCQdDXfOat7P X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5294c190-1a9a-4098-61dc-08da301cdd4a X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 May 2022 11:29:35.8078 (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: DB6PR01MB3895 Subject: [FFmpeg-devel] [PATCH 17/44] avformat/utils: Move parser functions to a new file, demux_utils.c 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: z0Qe2++il0mz This file is both for the various public APIs that are demuxer-only as well as for the demuxer-only internal functions. Signed-off-by: Andreas Rheinhardt --- libavdevice/v4l2.c | 1 + libavformat/Makefile | 1 + libavformat/demux.h | 2 ++ libavformat/demux_utils.c | 34 ++++++++++++++++++++++++++++++++++ libavformat/internal.h | 2 -- libavformat/utils.c | 10 ---------- 6 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 libavformat/demux_utils.c diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index 2ecfb9fae7..1f009af4de 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -34,6 +34,7 @@ #include "libavutil/avassert.h" #include "libavutil/avstring.h" +#include "libavformat/demux.h" #include "v4l2-common.h" #include diff --git a/libavformat/Makefile b/libavformat/Makefile index 52c53ea3db..a03fd7f256 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -10,6 +10,7 @@ OBJS = allformats.o \ avio.o \ aviobuf.o \ demux.o \ + demux_utils.o \ dump.o \ format.o \ id3v1.o \ diff --git a/libavformat/demux.h b/libavformat/demux.h index c667f304a5..ff8d998d56 100644 --- a/libavformat/demux.h +++ b/libavformat/demux.h @@ -171,4 +171,6 @@ void ff_rfps_calculate(AVFormatContext *ic); void ff_rescale_interval(AVRational tb_in, AVRational tb_out, int64_t *min_ts, int64_t *ts, int64_t *max_ts); +void avpriv_stream_set_need_parsing(AVStream *st, enum AVStreamParseType type); + #endif /* AVFORMAT_DEMUX_H */ diff --git a/libavformat/demux_utils.c b/libavformat/demux_utils.c new file mode 100644 index 0000000000..10ae887359 --- /dev/null +++ b/libavformat/demux_utils.c @@ -0,0 +1,34 @@ +/* + * Various utility demuxing functions + * Copyright (c) 2000, 2001, 2002 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "avformat.h" +#include "demux.h" +#include "internal.h" + +struct AVCodecParserContext *av_stream_get_parser(const AVStream *st) +{ + return cffstream(st)->parser; +} + +void avpriv_stream_set_need_parsing(AVStream *st, enum AVStreamParseType type) +{ + ffstream(st)->need_parsing = type; +} diff --git a/libavformat/internal.h b/libavformat/internal.h index b72c051afe..cbd8b2170d 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -415,8 +415,6 @@ static av_always_inline const FFStream *cffstream(const AVStream *st) return (FFStream*)st; } -void avpriv_stream_set_need_parsing(AVStream *st, enum AVStreamParseType type); - #ifdef __GNUC__ #define dynarray_add(tab, nb_ptr, elem)\ do {\ diff --git a/libavformat/utils.c b/libavformat/utils.c index 175f9caf8a..2d5ee8f7bc 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -63,16 +63,6 @@ int ff_unlock_avformat(void) return ff_mutex_unlock(&avformat_mutex) ? -1 : 0; } -struct AVCodecParserContext *av_stream_get_parser(const AVStream *st) -{ - return cffstream(st)->parser; -} - -void avpriv_stream_set_need_parsing(AVStream *st, enum AVStreamParseType type) -{ - ffstream(st)->need_parsing = type; -} - void av_format_inject_global_side_data(AVFormatContext *s) { FFFormatContext *const si = ffformatcontext(s);