From patchwork Sat May 7 11:28:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35636 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp2122578pzb; Sat, 7 May 2022 04:33:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzsjl720sYdHiQ/EWTAkujvsdn3D4hHRFMIyTRvEyPYtvfsDGlf58770GrDXmAhXrR0JtLp X-Received: by 2002:a05:6402:50d2:b0:428:b39:5c08 with SMTP id h18-20020a05640250d200b004280b395c08mr8200581edb.146.1651923229108; Sat, 07 May 2022 04:33:49 -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 gz12-20020a170906f2cc00b006e89020bc79si7096314ejb.937.2022.05.07.04.33.48; Sat, 07 May 2022 04:33:49 -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=NQ3lcphC; 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 0EEB768B48D; Sat, 7 May 2022 14:30:35 +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-oln040092073042.outbound.protection.outlook.com [40.92.73.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 65CE768B3E7 for ; Sat, 7 May 2022 14:30:31 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eXW6scgi4j0OCGKfRup/PW6PoyS/MRYfbfEDQA3QkgwbuceY7FkI8newCHw6dZM/XssS1TNJq5f/yWLhs3wzV9JTQO3xPyl7hx7NfVEiPUQJ2g2e+yNAKOpt+S6JlzU7C5X5m+K3A/9MlzJYcC41rFe5ctwnLCxtGZ2haS/JHewVbI02QlSR/eLi7RieMOR+UBQK/jRl4H+6UA2OVDS416xYe1S0wCoDhghDHjkv67+Iba/R9iMpvPivvbxElXBb3MGT3/6pdTedSxJyULyNNUqUYFcD9EW2qjPbkrbqrE9HBX92LUH3H3PVG0zjMtJVLohXrcwtnAKVayRPrcMBmA== 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=HlZITpRKrayjjFIK/LXih78uiC167x7I+TQ6gjQRNfA=; b=LfSH+7Er5a/6U+SmQbPpklX1RpyD745ySoaLtbJ5F3s/BvRANmGz8n9cSBLerO+/Rh1tz9elwTIb0zqktuAdMXcRbFGskU4aX8MOyhENEBcZNWP6ba0fND7OR/I9YxJCmDvYCiCMNE0/yWXuia9uLsZF3utHhe7pnnxlgKsbo1jfOpANCsOdSYQxlQ9pJTnFaZlJl4zeNMD6S+cEm4pmKuD41VmnK9lz36LWt9cSW5NHuM/j1OziS/6Hpr4Ok//mmV3PWMSj4Rr2J37Av/tcqEZorVfYRqR9K3dUiReo1Lc1lRMnk1pioMYJS+gk7qtmQsAd+xwFecyuQ4CDwbXw4w== 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=HlZITpRKrayjjFIK/LXih78uiC167x7I+TQ6gjQRNfA=; b=NQ3lcphCf4ccA5r+zh4tIjCbxzwQQvfkjgSKh1lqXG/2djqzftqUJvS8hFpRTW8A4X8kfpAhEWSzqw8lzys/2PwaXrKGCTtXmbWbLVLmy0f8LyzT4h2fLsa7pxSdPGyPodLfKJ/EvfWdt2z8APRXsfIqQWkV2P6pDFhhYLbAuSWny9aOASiCpxifz+IK/2yBLUn4ORK16zrAmeB4ldGwvPu8Q2rGOfLmYBfqUf1uYb6q8GaC1hmyUVXS3k4T5OEfkTFneuB8Q9VUZa1z9G8Mw1lyckUseMS/ESYx1juIBJvYi9Lou6wY+ew3Es0fPPKewL5wwTXAa51KneaJd8INCw== 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:30:29 +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:30:29 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 7 May 2022 13:28:16 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [Z5N+JMSnnjDxNdktjRNOLA7b9p7rr1+d] 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-29-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 26b4bb61-915e-439e-8e5a-08da301cfd65 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNVZjuqTokTVdg9S7+crVfX8tD/ejvgItuUm7ostWEp2CZ+kOzZazytaJ08dSN1t2gXrJrw2KvY5vevXYwkXWLLd4+I4g876OP+oQogjg67SFh8mCGMHbuqSVjHEnPevpAByUpJrdIxOgbFwotmgmfOBSZNQiItZjWHtA45yrpuWcxNWjKEM1uovnvyXZqJaQOFTO7mLHICdaHnCwD+zDKdWKRr9bKmYmnfKcW/hsk1O6L9Cz098bdQ2HmuzIO+xKJ6WdtfRJKuqKjGWv7ZVBP/IDfxCKSgabzLSsiJ1zGPg+/+GlPW6KiAhRfFtl7wM0wc68do6eztoqM4MyQd4f9uf6aTRsBL6C8d/0imuQ0uMGHTguJxz2mbDIoRszNHPibmjsJWMK7i6oIhYjumB3TU6rgJenD8e2hsOe1nv8M39D3u8OgyNSniT42HWqA3j5irTolL9BHdfbfJsH4nOTNQYecButHdWoatlmLURDk1UMUoucZjWEFO7oRj4fqlQG2eMi6AHpb31MSEccDPj8NFFk+3D+vs4ttaRVoLfdhrGqvjaqznL2AiB7mAZXl9+CGzgSuRpSO/gNMjeZFBCsWyjgU+fVfgK2JGCBzdgI0KMY9zDcHiqbp33XC2AF7YVXARhYdRgwskcn6vdu1uCt6H06RfQjxcIdT+y01KBdUNt4htzoNxC2L2N6FEQvFcjFyLzxmk9PNByJjW6fFr9WtGjmFf6yvwH/Ec= X-MS-TrafficTypeDiagnostic: DB6PR01MB3895:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YTPPh/2RIHKOuW3lKqJ6qPlCyVvRSW1lWqjpOJwjFqkIX8CH04UOQULxTBTFxXwXS6ule/1eabeoiQw1jBIDO6xfp7M2JiaceFSrNY57VljoURW7sisAvjzCgMrW0axxk50QAoV8gl38jWN8as1yYOSA1SW/hM16KUi29Ij8UwrF2a1HafUYOcRGEK161f0jlP4DyZ9s3F37gpKIcdkpquF1zZxh6S12UN2uw335Oa2cfbVdIZ/v+b0psi9MZAZ3ME5/a1Pcuvn++mEUJwTIBJo7wtTeQ5AH7OqjoPRCNPzqVJX5lot2RE7FFkqdD4m/cAlBGW1aFLuewY2SOAXvxHMmbg9tG5ZPggGmFitCpdpNU/UO20JrQDkENcT7nsVPBQM57ykumMRfT7clZTfVOzI+WsjvZkC6vhnFW1P+pTdHAN0gANVdn81gI2C0Fcw7zu6sOVEQTry+P4SvLsJqVvjY/7c2DCVKVTHXJS2vrbZJdxB1iCKSGpztEv9sGX1CPdExQaq0fxw3xYpyF5MKFFSPEJCig9jWTVd1XP+is7TIINa6ugxIQ3oL4QVwGzTSfMfI7q6wIi6WTpunvYjf9kfKAmZ+8LQcRXp2omPhL2DREscOKY7q69Di/sQKyUny X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: H8EKMR+1Hn4ekeXrkMuNx9jI5AhixoXg2zzBTgM3qUCAe3mDc30U+hMKqXnOZI9zqjHNaWAxSmyO/mW/n03bu4tlAPY5Gf1Ng1Z32Zu83PiraT1gpQmCpcho4NffnzepyzAISfhMAGU/8e+tZI2Z1VDkOhFyNeTbHexgx2aaTOUHl6BbKuDdFBb0kAhv8MhWLNDwofkMXgnNxDLIDVN1Ad4lCWcXWgeqanEAwieAeNzJSjopeAya+XDo0ovu7peYSyfUeLp9Bpku63L0Y+/GG2ajI1K5dXeQGoHp32jTYk4YraAXm1y53li55Nex9fCOYTcf1Gt8t/+JMQGdvPlpprl5bosXFhlQBvkSFq/dN3v07Q0HJpGB6w9hBeaA/6S32i0uhTgalwTDNcZTFZxp0496G5yHMTjs1XabZI1bl4jfNcBnbhjd3plkS5/yXpQAHvXfr82/eSI8EJyaJIVjRDGfHBeRWBrlajTD6yQEZvCynvmlmu/W13WzhJUXi2Ei1vCKV432ZWgrAcOiRReJ0I6RHuUurZ3KkWFln55Hw3TziUBeCXEMo4ZZWUzKAF8BTw4mOFMOT/HjSRL4bRQ5J6cmWJEY+cQTrKmHiS9ak4rja+VyDEVAJgP3PmUgtc5L2mY8nxFUUz1UsjBa47XEocaMfX03RCrD39BhnEIXAdgkCE87cadOJAqjlwrE2HlNuWDSpIsrMV78p5P1P5cds/Gt7/k8V3scTzt/wT+bBmIZm6KZuSeDz4SNsj8QQA+yM8/C4wwRaaZ2FsbUrwhKC5eUtVu98RhMMuHarmESf2LuZ9zk9ZlBBtP/PU///m1+yEauML3KC8GY0ZopUxnpR7yYHt+vVEYXV8yWygpbQ07qeGCI9TL9dusDaGGJzl+jy0tWHiUmZMKHV0kkLNfVDIVqz4UeyRuDz2uHR+Q6m0lnosgV9vOIV7/XXs6oz93kTc4kktS4+WxgRMkX9DSUuqFEr09DTm3iOkNiJaSo7tUtc6klyCN/2ldr1xqkcvUniCEgs9RCXF/gFQlVJXN8Rb3UGGJzwRzOhEzeCdYDM/vl9VzuQvUV17er8GLHdXXelAlZVtC7b7ioDlSiJjPPz05JYSXz2jyjTPqPcdLNmqO2P3Y3XmNGWzF8VwnNhW+0ptEJx0CTLGVhQV4sPZuW5JkG35oIwpHpLdezbdYvODwu6okHHJIphmqfvgetx4dFsHqA7eIuo2v3xGvtmOL+Ok2R7nIbcLNYs/FazMZsIyy3gzCkQp34/FxNweCjmv3KtCzTsKmi+Rr9BCUZjSi39a7PdmYJ44uu3I3bnEdOM4BqC76NcIjbaYfaFTDRjOv4x4SbM+BgDOpWtHkPs7kI179fVQexoq1D/M39GsK7uoTL8KkHEsX2HsC0imU4JmT9COurBzacTMTMchCx30q/pgmDCMX2uJzkWCkIuitxFaYB9FKIQ0aJSijB67gx/Dsa X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26b4bb61-915e-439e-8e5a-08da301cfd65 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:30:29.7030 (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 30/44] avformat/utils: Move adding AVProgram to avformat.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: JWK9xXmupqm5 Signed-off-by: Andreas Rheinhardt --- libavformat/avformat.c | 58 ++++++++++++++++++++++++++++++++++++++++++ libavformat/utils.c | 58 ------------------------------------------ 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/libavformat/avformat.c b/libavformat/avformat.c index baad2acde1..0b86ff025c 100644 --- a/libavformat/avformat.c +++ b/libavformat/avformat.c @@ -196,3 +196,61 @@ uint8_t *av_stream_new_side_data(AVStream *st, enum AVPacketSideDataType type, return data; } + +AVProgram *av_new_program(AVFormatContext *ac, int id) +{ + AVProgram *program = NULL; + int ret; + + av_log(ac, AV_LOG_TRACE, "new_program: id=0x%04x\n", id); + + for (unsigned i = 0; i < ac->nb_programs; i++) + if (ac->programs[i]->id == id) + program = ac->programs[i]; + + if (!program) { + program = av_mallocz(sizeof(*program)); + if (!program) + return NULL; + ret = av_dynarray_add_nofree(&ac->programs, &ac->nb_programs, program); + if (ret < 0) { + av_free(program); + return NULL; + } + program->discard = AVDISCARD_NONE; + program->pmt_version = -1; + program->id = id; + program->pts_wrap_reference = AV_NOPTS_VALUE; + program->pts_wrap_behavior = AV_PTS_WRAP_IGNORE; + program->start_time = + program->end_time = AV_NOPTS_VALUE; + } + return program; +} + +void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned idx) +{ + AVProgram *program = NULL; + void *tmp; + + if (idx >= ac->nb_streams) { + av_log(ac, AV_LOG_ERROR, "stream index %d is not valid\n", idx); + return; + } + + for (unsigned i = 0; i < ac->nb_programs; i++) { + if (ac->programs[i]->id != progid) + continue; + program = ac->programs[i]; + for (unsigned j = 0; j < program->nb_stream_indexes; j++) + if (program->stream_index[j] == idx) + return; + + tmp = av_realloc_array(program->stream_index, program->nb_stream_indexes+1, sizeof(unsigned int)); + if (!tmp) + return; + program->stream_index = tmp; + program->stream_index[program->nb_stream_indexes++] = idx; + return; + } +} diff --git a/libavformat/utils.c b/libavformat/utils.c index e7788f3f40..3267db432e 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -457,64 +457,6 @@ int ff_stream_side_data_copy(AVStream *dst, const AVStream *src) return 0; } -AVProgram *av_new_program(AVFormatContext *ac, int id) -{ - AVProgram *program = NULL; - int ret; - - av_log(ac, AV_LOG_TRACE, "new_program: id=0x%04x\n", id); - - for (unsigned i = 0; i < ac->nb_programs; i++) - if (ac->programs[i]->id == id) - program = ac->programs[i]; - - if (!program) { - program = av_mallocz(sizeof(AVProgram)); - if (!program) - return NULL; - ret = av_dynarray_add_nofree(&ac->programs, &ac->nb_programs, program); - if (ret < 0) { - av_free(program); - return NULL; - } - program->discard = AVDISCARD_NONE; - program->pmt_version = -1; - program->id = id; - program->pts_wrap_reference = AV_NOPTS_VALUE; - program->pts_wrap_behavior = AV_PTS_WRAP_IGNORE; - program->start_time = - program->end_time = AV_NOPTS_VALUE; - } - return program; -} - -void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned idx) -{ - AVProgram *program = NULL; - void *tmp; - - if (idx >= ac->nb_streams) { - av_log(ac, AV_LOG_ERROR, "stream index %d is not valid\n", idx); - return; - } - - for (unsigned i = 0; i < ac->nb_programs; i++) { - if (ac->programs[i]->id != progid) - continue; - program = ac->programs[i]; - for (unsigned j = 0; j < program->nb_stream_indexes; j++) - if (program->stream_index[j] == idx) - return; - - tmp = av_realloc_array(program->stream_index, program->nb_stream_indexes+1, sizeof(unsigned int)); - if (!tmp) - return; - program->stream_index = tmp; - program->stream_index[program->nb_stream_indexes++] = idx; - return; - } -} - uint64_t ff_ntp_time(void) { return (av_gettime() / 1000) * 1000 + NTP_OFFSET_US;