From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id BEBC448E6A for ; Mon, 29 Jan 2024 14:55:13 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 35FE368D201; Mon, 29 Jan 2024 16:55:06 +0200 (EET) Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01olkn2059.outbound.protection.outlook.com [40.92.107.59]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 344FC68D164 for ; Mon, 29 Jan 2024 16:55:00 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mWXh+B37E8NKG11rcBjJyPRRJvnpOsi6JI+Ol497CUFCySf+zgQKkXMZPpFfmmPLNpsSpltW9xFodJYGvtEqmXle+xipSpQe+1kQ6NqnfJdmRinZz7TDfZ/tQa24TZxQr/gt6cMR40zLzGrZLkkpw7iOdM4H1XTUaJdfrzWJSMB1IA/mILNrN5Ykc5gPdfF/EvoloCLbkvv+uLoaTW87cIpFXQYACUv5LWVf4k3wCoroIDOViqYl8yKJMBDxvr73L/uI1xBnNRTjOQRNAi/73oaK72giE1NaoFuKGi6j6EYAunuqPIn9AYKwQ5IANYT5NmHekq4pmI6SzSEFKgMAOw== 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=l4LjObjmA5n/06oN7f6DOnVd8fANF0gDN1CEocYblpU=; b=a+rhcUMjhMN32PuqNhwb4TzCy8MSuI/BAH2GRvUjR0G6e8KVDXGjZ3cTEPWZ23r1D/Hdq0+9IRh3mDLGYJo1bn6eOSJwSixbmTARdWMSvkddEMGXZ9qvRnVWV5vpB4iDMJku52GEAerO3DEQ6dGVbL6ZSxE+nVqK9m+Ho2BduiKjNfzJS1Dd8vKzBeiegUKFTLlts4fYFwmdQ6Zto22H9X45vBKioTl1EVInBuDo2xjfzPB/rUzyW2mpJC6puOFc4WILnMP65nG8OYfrHJ892rDnjvK9Eq7wTzcVS3+7/ae5WjooKy6D2nK16B4cZTZWLpX0p66j3k0dzf3Vkgz6Tg== 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=l4LjObjmA5n/06oN7f6DOnVd8fANF0gDN1CEocYblpU=; b=qMGPma+HGhnFUq3fRsRYUTueh9ywnI3y2xXDJJt3eumT1ALABXhES0CZikFvJF0oI3Kx5mPGeLroFABIAWzNass/p+lCZYiba4HDyZlfRJNn/dqy01EhIQXlXk5b+/HAFaX95tDSmpclKeJ45sFmC0LO2cgnt5N0NOmtdojLf8ZEZtVdAH/LQWAUs3b0s0EbiYFjLKhGt7TyDsrfsA13TCuK1TkU78AFyQ3r2+g4pCxq5FolxRQtDp4YL9ptUvph0JIkqy8TKNFxAStfkr+t3dIV1PZwP2rkPNER1Xs87hCXSUC4FmIYkihE4DhlsQsxyR9iskj3+jNg7j+P18cP2Q== Received: from TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) by SEZPR06MB6383.apcprd06.prod.outlook.com (2603:1096:101:12c::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.32; Mon, 29 Jan 2024 14:54:52 +0000 Received: from TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::e139:fd7a:1b66:a3f7]) by TYSPR06MB6433.apcprd06.prod.outlook.com ([fe80::e139:fd7a:1b66:a3f7%7]) with mapi id 15.20.7228.029; Mon, 29 Jan 2024 14:54:52 +0000 From: Nuo Mi To: ffmpeg-devel@ffmpeg.org Date: Mon, 29 Jan 2024 22:54:28 +0800 Message-ID: X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240129145432.9053-1-nuomi2021@gmail.com> References: <20240129145432.9053-1-nuomi2021@gmail.com> X-TMN: [J3eAKbyyjEMjFyuMcBg4NiIJGgSmKBMG] X-ClientProxiedBy: TYCP286CA0232.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c7::18) To TYSPR06MB6433.apcprd06.prod.outlook.com (2603:1096:400:47a::6) X-Microsoft-Original-Message-ID: <20240129145432.9053-3-nuomi2021@gmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 2 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYSPR06MB6433:EE_|SEZPR06MB6383:EE_ X-MS-Office365-Filtering-Correlation-Id: 6975ed14-fc45-4a06-c6bb-08dc20da3fb5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XOq8w5FKBQUBVB41GdwxUbq9eBGoJdNIqkeMKJCqDdQAPC5w/PeXugu/sfbPNS9uuOIgpqkBlUYmETd/Mj7VCll8Il7y95JWHzn7b9arOamAJ1llkiYK2boqHVrS+l0mv2hJlKKKshB1fHAiMeILOxpILKIt7jnSfMAo7/KCG/e7/n1VmFc7vUFnSHAaVOyOCkOT09BfrR6ziimlWvdkTUqltSBORFuaIiiRqRa96NbisfzqqxjYRMmgL8GzKmOYy6EuMSWgq7JhFQsUQSwWsxO8huS8i4q4UQ8aA2y4hliyQAV2fM8xQ0IBQDskbz7CwuOugdMym4HmEqwhnbroSE2sU0MK8VODJ2W4kxnEo6Sel57b9scDvSdcH4KLcpuKdjkiuDgV6IJMcQrmti0eahMV4TCudZ7SshKvsduHZCOGOMqY1qw7JM1npPaO2bPlIDkxTKRcF4RKQepJBR48ABJIlmyljxjmbubKoZ0zsNTaOHAY1mRMUfmTLKXrn/Jizre5spTqfyP40FoJPtVaRs49BUNvuZ+Vv+PnuGkMCBk7PQqOcJp3TDfqDuOIg3hXhpfylJQY5kXVfoThLfGWdRFCJaHLXc0PwR8yxeXVYFS/yg3M379ztH0Nxs8r+O42 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KcSor/GZxlgKZVlezbcpAcZcf/OZBESHeOftmh/4Bbj73Ghf2JZim3yoJkjf?= =?us-ascii?Q?H4YBvX3us+RoPgCiIdrkXXtmpkjS5COy/U2JvqRQou3/8iy8xe88OP7j0qLP?= =?us-ascii?Q?f0S/hfb1gO/T0UbbkqPck27GWAzDl5IwA8ylFKKOnI2XRG24eqrLpZvkTEgB?= =?us-ascii?Q?OOdbHV02iDWC1dj0gnMJfiAxvR+Vk1YQ40digpqFcAbwulXbmGVVbpa2AKb/?= =?us-ascii?Q?gJfvz76yGpgZJkJzsUgPjFWUCfrHey14H8eDidAsD12NI3NexXop4vVQRyXG?= =?us-ascii?Q?KxoVOIu517Rt+B3yUffxva4IAPw7kqJcDMY6VjhovkBNWrfE7Xlr1bt2OLjK?= =?us-ascii?Q?LirHsXGXlFrE0jaZoo2bj6DRekVKTXXZuHHxOX+GyrtaXu/yJtpwyPIpIdCP?= =?us-ascii?Q?Le+Lpw4s2lEQ41RJdq0gsTbOMt5bidMGJ/quD5h5hFkBJajF8u84FHDmnMpY?= =?us-ascii?Q?agkkXo3I7IfJ+WUInDtAE3wX3z0LdC8m4iAQPtmxzFnsp2t12/TtT507N189?= =?us-ascii?Q?B6Urf6T2ZEPpjMiTCRd+FPpMv3ocRfKzp/mPXNrqKA8+QQUZQNxvpYkPys4i?= =?us-ascii?Q?LqqDAaLjTlShVKNJ6LjSerOZDRO76k/WmcZ+wFQ/zv1KIFKvhoCOxds5A+Df?= =?us-ascii?Q?BMqfCqG8HUyx9xJ4gSYFjnC3k2BeRlGHZGJaG/IvjRKIzz+gHcahCjPjmIqR?= =?us-ascii?Q?wVgC7j2Kr2kGrxzxvN6rJevjiqaf+JWVfHPSzFcid18htnKBb9E/X6E2zOXB?= =?us-ascii?Q?VNtJLsyQ3EmYAq9Onx07zuyv1EiCVMFy513B5HkLSeWTglB4mg3+l9KZq+54?= =?us-ascii?Q?TJl6ntHdtCkpHRY1xr9OpIy3fgpWzI6O5Nr9zm5md3hEB278cX9MatDgP9Yk?= =?us-ascii?Q?b2XJAVVJ7kxX5Ep9gV7fb//DHUZl31M5lPl4eDTSZnJCdU/bquGH+wLsNY8K?= =?us-ascii?Q?3qaT3ucJI4KIO8YKApPMhbMnO3R9Xf/hDIshchaMO8SsA7KGmB33XJQekVdN?= =?us-ascii?Q?UU05VyqPSqsroOlJc4EdrOEn6hktRVIQjaTrXThRg1UkxTuLI43PDXV0rew0?= =?us-ascii?Q?kkwE3impim9glGOc4JdZY8EzxDk02tgt7nFucLekGQZdnR7t/gZNMH9Uhtoi?= =?us-ascii?Q?g0pa5S6ShqAsTF9f0oQY2MT4gbmLfRt36GOHE2sdl3eI4T6ODQfD8O9kYz71?= =?us-ascii?Q?/shkFpUtl4DCsLZI1am44nSXMh9DBNNmWth9XKPAGYLkl/KQotYVrGSeWvmk?= =?us-ascii?Q?r1sgZfNfnU16ztf5a9Lw?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6975ed14-fc45-4a06-c6bb-08dc20da3fb5 X-MS-Exchange-CrossTenant-AuthSource: TYSPR06MB6433.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2024 14:54:52.5798 (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: SEZPR06MB6383 Subject: [FFmpeg-devel] [PATCH v4 2/6] avformat/mpegtsenc: refact mpegts_check_bitstream to loop up table 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: Nuo Mi Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --- libavformat/mpegtsenc.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 84edd418f0..4e5c264d2a 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -2257,23 +2257,26 @@ static void mpegts_deinit(AVFormatContext *s) static int mpegts_check_bitstream(AVFormatContext *s, AVStream *st, const AVPacket *pkt) { - int ret = 1; + const struct Entry { + enum AVCodecID id; + const char *bsf_name; + uint8_t mask; + uint8_t value; + } list[] = { + { AV_CODEC_ID_H264, "h264_mp4toannexb", 0xff, 0x01 /* configurationVersion in AVCDecoderConfigurationRecord */}, + { AV_CODEC_ID_HEVC, "hevc_mp4toannexb", 0xff, 0x01 /* configurationVersion in HEVCDecoderConfigurationRecord */}, + }; - if (st->codecpar->codec_id == AV_CODEC_ID_H264) { - if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 && - (AV_RB24(pkt->data) != 0x000001 || - (st->codecpar->extradata_size > 0 && - st->codecpar->extradata[0] == 1))) - ret = ff_stream_add_bitstream_filter(st, "h264_mp4toannexb", NULL); - } else if (st->codecpar->codec_id == AV_CODEC_ID_HEVC) { - if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 && - (AV_RB24(pkt->data) != 0x000001 || - (st->codecpar->extradata_size > 0 && - st->codecpar->extradata[0] == 1))) - ret = ff_stream_add_bitstream_filter(st, "hevc_mp4toannexb", NULL); + for (int i = 0; i < FF_ARRAY_ELEMS(list); i++) { + const struct Entry *e = list + i; + if (e->id == st->codecpar->codec_id && + pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 && + (AV_RB24(pkt->data) != 0x000001 || + (st->codecpar->extradata_size > 0 && + (st->codecpar->extradata[0] & e->mask == e->value)))) + return ff_stream_add_bitstream_filter(st, e->bsf_name, NULL); } - - return ret; + return 1; } #define OFFSET(x) offsetof(MpegTSWrite, x) -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".