From patchwork Thu Apr 22 12:03:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: zheng qian X-Patchwork-Id: 27211 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:5014:0:0:0:0:0 with SMTP id e20csp530323iob; Thu, 22 Apr 2021 05:27:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyaaLx8tqDPskCm4lV7Of37kiGhN5D0rSm+tN7a78T0wYnDzB///Q+jw5txvmX/Pomf6CxV X-Received: by 2002:a17:906:d922:: with SMTP id rn2mr3201145ejb.165.1619094476518; Thu, 22 Apr 2021 05:27:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619094476; cv=none; d=google.com; s=arc-20160816; b=dGIsiXwjMcIz7yDkhdtAkuWSTRXq4zMBGL+koMuI5CX6EQb1DpvtYhMRSr5iNSd2/q 8b9JiHHlfju2dAP3ovrXV610FUKxsHIS6qsZRMZIe7+cfjlkaUMeA8RFzgHSRNjA9Wqy 9x/0xCwJUD1N66OF/dYKIB+UsHOv5FV/MH3VDUAPWrcZfesbveDVWstxlrgZEJQ79kOt Ktwzi/Qo0WqJ5rCLjoN78iUQsEAQy2XeGr+c/WRSyL+wq6xbcKOpVAijM4Zpq/wPQuSb heu8wqfmj0DA2WGsc0Y3lJso7jCL69GElNb5CN+tCLOpiW4k8it3rAKN0raCWgn2XY6K kefg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=UzZ4jrMtovKsUd+ndjBD/uMPgeeIXgydELv6moElYd8=; b=CnDNRY3ecSGtkelJnWp1p8UlSzw6EKo24DJ3Rk8B5Umw/nB7/zLvo3zO3K0DuI/s5V qz+vrTVDw2mydAla33U5paIJRBoskbzW4qSHny7RXTTw8KlzB+WS/79UidkbFtbnXzjL V/D+AVA9+urv/urb8R9YIPt3Z1JI0Jqb4Th6rOFvdF8+aQ5RIveOKYKpMNLu8Up1AxHx abnWm8YJajIBeB/VniqKoKG5zgZDI5yUzfZqSxcUk8WL+9UwILh8TwTsSynoomL+Sm0Q RxsxEeaB1dCv4q2ALMlw7f/R4mkPRM7SVm8u0MTgcNl86Atd+N0w1GOPrqRnNi4zoPO7 CUTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@xqq-im.20150623.gappssmtp.com header.s=20150623 header.b="YGRjIZe/"; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b18si2136179edr.597.2021.04.22.05.27.56; Thu, 22 Apr 2021 05:27:56 -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=@xqq-im.20150623.gappssmtp.com header.s=20150623 header.b="YGRjIZe/"; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 06380689E94; Thu, 22 Apr 2021 15:27:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 87955680204 for ; Thu, 22 Apr 2021 15:27:46 +0300 (EEST) Received: by mail-qv1-f43.google.com with SMTP id l2so3967005qvb.7 for ; Thu, 22 Apr 2021 05:27:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xqq-im.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=n34sDuRqtjd6m4wlWl8Ro9PG6Cum5O2xC0SZ3FRmZdA=; b=YGRjIZe/24fUYz60Zt57s+73dku16qZ+GXf3+ceLxKb4zP3yDvCd2OOSgkKI5dYlkj CHj+6IXhJg7ZBWc2p4ac9HXeffkBh9ycvpjZayP6fcMhIxbDGCxsE5y3jvpYXlj3wrAx gQYaQ46yQxuxONVNN+bo/QFncI86HBWAkWVDdf6eNKqkX34zF4MHLYBd4S333HmUvmor PBkDtuz0F/0YpnwNkAslsZb7w76eSCHkT3cVNqDFMlY/0isufMRKMr9bsHtvtMhG1ZND Kn/ZRyxNUHyGZ7x83y+dsGpJ9LkYPtze7yWDKUsHpGBp+rb1HVLXTs2X52//aR7CEBBj EPEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=n34sDuRqtjd6m4wlWl8Ro9PG6Cum5O2xC0SZ3FRmZdA=; b=J7wnB2yyY9CZ6/SEayB8vplKRqGSRQ5GhvS4FFCpBXQ0UoxlCUAkSYrigrd3Mw9TN4 mzEGpIhNSfa7TLejDKuNTKlUmXxs/ZKQ6L9cFboOTXRgh7nojEjGcyo/pYcKvTWMC5l/ A57UmuliEn8cc2G3YqZrN1KoBvyOOhRGi1oavlDOOmWdpsQ0Lm4G4MHHRycIR6nycLP0 ymAeDX5A1ttZoeIqejAH4AUvuRS4cmzwq0GWr48Hshcz1SraRQCutsuLkyLhBu0DjJIQ 92F982TUgI9STzkfEjEtZ9PeDQPSJBxHEVTi/gwrKaX6/IAYGdU3OL0XEiOYhjdOyC2b /z+Q== X-Gm-Message-State: AOAM5316mLxy5swubibHe5CAt+/bg19IiWAJ5CdSTv63/IyzIqZBDBH3 5ApNdXL+h9MUsxhu6JXaJf2kOw33xB/xbapP X-Received: by 2002:a17:902:9a84:b029:ea:e627:f7c2 with SMTP id w4-20020a1709029a84b02900eae627f7c2mr3323609plp.57.1619093020133; Thu, 22 Apr 2021 05:03:40 -0700 (PDT) Received: from zhengqian-xps.lan (ngn-nat1.v4.open.ad.jp. [202.222.12.138]) by smtp.gmail.com with ESMTPSA id l3sm4787667pju.44.2021.04.22.05.03.37 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 22 Apr 2021 05:03:38 -0700 (PDT) From: zheng qian To: ffmpeg-devel@ffmpeg.org Date: Thu, 22 Apr 2021 21:03:11 +0900 Message-Id: <20210422120311.10294-3-xqq@xqq.im> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210422120311.10294-1-xqq@xqq.im> References: <1245c8f2-93d4-6153-68d8-2351fab30cd4@gmail.com> <20210422120311.10294-1-xqq@xqq.im> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 3/3] avformat/mpegtsenc: Write stream_id into PES after stream_id decision 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: zheng qian Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 34p35PSlSBEl Since stream_id will have effect on the existences of PES header fields like PTS/DTS, it should be better to guarantee stream_id variable to be identical with exact written value. Signed-off-by: zheng qian --- libavformat/mpegtsenc.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 967f98931d..525c68ffd1 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -1445,28 +1445,28 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, is_dvb_teletext = 0; if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) { if (st->codecpar->codec_id == AV_CODEC_ID_DIRAC) - *q++ = STREAM_ID_EXTENDED_STREAM_ID; + stream_id = STREAM_ID_EXTENDED_STREAM_ID; else - *q++ = STREAM_ID_VIDEO_STREAM_0; + stream_id = STREAM_ID_VIDEO_STREAM_0; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && (st->codecpar->codec_id == AV_CODEC_ID_MP2 || st->codecpar->codec_id == AV_CODEC_ID_MP3 || st->codecpar->codec_id == AV_CODEC_ID_AAC)) { - *q++ = STREAM_ID_AUDIO_STREAM_0; + stream_id = STREAM_ID_AUDIO_STREAM_0; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO && st->codecpar->codec_id == AV_CODEC_ID_AC3 && ts->m2ts_mode) { - *q++ = STREAM_ID_EXTENDED_STREAM_ID; + stream_id = STREAM_ID_EXTENDED_STREAM_ID; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA && st->codecpar->codec_id == AV_CODEC_ID_TIMED_ID3) { - *q++ = STREAM_ID_PRIVATE_STREAM_1; + stream_id = STREAM_ID_PRIVATE_STREAM_1; } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) { - *q++ = stream_id != -1 ? stream_id : STREAM_ID_METADATA_STREAM; + stream_id = stream_id != -1 ? stream_id : STREAM_ID_METADATA_STREAM; if (stream_id == STREAM_ID_PRIVATE_STREAM_1) /* asynchronous KLV */ pts = dts = AV_NOPTS_VALUE; } else { - *q++ = STREAM_ID_PRIVATE_STREAM_1; + stream_id = STREAM_ID_PRIVATE_STREAM_1; if (st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) { if (st->codecpar->codec_id == AV_CODEC_ID_DVB_SUBTITLE) { is_dvb_subtitle = 1; @@ -1475,6 +1475,7 @@ static void mpegts_write_pes(AVFormatContext *s, AVStream *st, } } } + *q++ = stream_id; header_len = 0; if (stream_id != 0xBC && // program_stream_map