From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 226CE4EF0F for ; Thu, 19 Feb 2026 18:11:49 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'Utn1t4kiB08OLjnOvHdowOGhgery+mfgFThExiQIJD0=', expected b'+D9Z2ruqBDoDtx9TrmRKisccq9KGQrSExBL05zed3gU=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1771524702; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=Utn1t4kiB08OLjnOvHdowOGhgery+mfgFThExiQIJD0=; b=wUAZ8FPD5O/DYRO9rt2I/4MgVoYcXnBVdzSvoA7L35kbBHacsAVNtQIQXrewpIlG2XRHi t5MxZb/6nrSoo95VO2CCQ1wOqn3++ZOJXLEvneX2cXw/xVOMD66FZM9r5DQitEji6gS8sYG ROPxp/3LbyDV0q1KxD1tSxOikAbEezrWJO4aiSPROq2jmiB/Qt1XPlHnOgqwxIKqfpm8ecz 2eZnxYBT82MzPqj2pnQkVv1OSMruizm6o0YWIMw2RjdHjrBWBcYO+vNDvFaR+YnhGYEF9Xv t3rsLHRNcDN/0tr9hZlmIdxVDPIZt1N9c3T5WDXzAI9EAr9u/BGV9WdGUM2A== Received: from [172.18.0.3] (unknown [172.18.0.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id A87156916B8; Thu, 19 Feb 2026 20:11:42 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1771524691; b=dzxXPhFGfenq8vjGRiG4ySCkGJX/ddsNdYvOfefF8WBxT6hpp/vWqyrgeJ+owuXw08oJt uetNeek3ZxUoWAjNpk/qIZo1xHcQXHkyPFDk5f4uoZUfoUePN6yps+mH8wjkSUaIhhu7oCF S0+LHOZ5ZCH8mIWfS3ud8mCAIqLVdzmFePEVM2vkfNAw6GfZnZx2tAm4PYuScc13b3xC3BD p6sQfCwXjBMVLslrw/LsxtjW5+doUV9GEpMEaTuIyu/uKb3t/HyeisOWZwNThleHF5xwuwj CGBcrvw4K2ZYyPQEQxWRzsv/IfL3I6GdWBNVPET8VAcOHvAqMmYamXWE5sUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1771524691; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=vt6qujxlOpNl5chVVl3zqEC+aVKtAon0Ql2PyFJvweU=; b=YSjjpGOcxlRy+++jHXCt+zF/vWt/Fy+4oW0pS3j0QRstOYHdYkzEvVsyrmBrUqnSN2rcm kTZ29+uc3Rwfl+hCeIftZbWb+76WVNtEWYNl6uOoKs/E03LakBWlSVTxi9OS/G6n+AIovhp 0Iyl/rJJtWlb08Jk1xPDoAAkX3ooVYjjnA6aEIglFvsfz61eFpz0n8jtRoS7gtTYd64KwFo 6WFKWx4gCDAf4Mtc27TYP/S5/nRkgBH7wbd1YPVYvrSbBv/cwAwg4DEdGI4/7DaIo7hzbRb VybK6vbaYbPwkBKLU9qlRKVsBqZ+fignj566fhs0iEUav+zhtN+3Al1jv7Tg== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1771524683; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=+D9Z2ruqBDoDtx9TrmRKisccq9KGQrSExBL05zed3gU=; b=VL/1HCadiVdEEReXfzqFWtvhDgbaqS0FNpEEc3rKDn3RpT8hTcUOSgg9IvjYHuPw1C8ed OXpKwP2vw2vj84Nba7EZ8dOAfqbuOLDaBKD4xtsv4sHwLPwHArFtXge7OewDTSDh0M8663U gow2gEl2RUb9uLR3R8iam7z6BHUBMC6xbQe+0SxZY5+LwlFjFYzVeYwyjpF5v84wwMu9DFt ZTQ/Q4HqJ9oEXBtXRPmB8zUt71mnS5CVFcw4T0x40qof4n/eFHM16ihk0yrGARHFCCMqcG8 Dqf5cW4OvU0aQQbpDvUBTNZi61c2J2Fzk0bIzpJOTaYpeqrdVl4AVuSx9vtQ== MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Thu, 19 Feb 2026 18:11:23 -0000 Message-ID: <177152468399.25.2981727101731486101@29965ddac10e> Message-ID-Hash: NF73IRYECW4E6UNXR2EAO6X2QCRZWR5A X-Message-ID-Hash: NF73IRYECW4E6UNXR2EAO6X2QCRZWR5A X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] avformat/rtp_mpegts: Pass-through program table to mpegts muxer (PR #21801) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Rost Kurylo via ffmpeg-devel Cc: Rost Kurylo Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21801 opened by Rost Kurylo (rost.kurylo) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21801 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21801.patch Previously only the stream list has been passed through to mpegts muxer, and the program layout, if any has been provided, was lost. This change copies the program table into the nested mepgts muxer when initializing rtp_mpegts. To test: ``` ffmpeg -re -stream_loop -1 -i -c:v copy -c:a copy -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -program title=Prog1:program_num=101:st=0:st=1 -program title=Prog2:program_num=102:st=2:st=3 -f rtp_mpegts 'rtp://127.0.0.1:5004' ``` Then probe with: ``` ffprobe rtp://127.0.0.1:5004 -show_programs -print_format json ``` Signed-off-by: Rost Kurylo >>From 168d22b0b1e367c55381cb98c3cb0dfb4fef0b1f Mon Sep 17 00:00:00 2001 From: Rost Kurylo Date: Thu, 19 Feb 2026 10:05:10 -0800 Subject: [PATCH] avformat/rtp_mpegts: Pass-through program table to mpegts muxer Previously only the stream list has been passed through to mpegts muxer, and the program layout, if any has been provided, was lost. This change copies the program table into the nested mepgts muxer when initializing rtp_mpegts. Signed-off-by: Rost Kurylo --- libavformat/rtpenc_mpegts.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libavformat/rtpenc_mpegts.c b/libavformat/rtpenc_mpegts.c index f9ff7e99cd..e7661ce880 100644 --- a/libavformat/rtpenc_mpegts.c +++ b/libavformat/rtpenc_mpegts.c @@ -85,6 +85,29 @@ static int rtp_mpegts_write_header(AVFormatContext *s) st->id = s->streams[i]->id; avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar); } + for (i = 0; i < s->nb_programs; i++) { + AVProgram* program = av_new_program(mpegts_ctx, s->programs[i]->id); + if (!program) + goto fail; + program->id = s->programs[i]->id; + program->flags = s->programs[i]->flags; + program->discard = s->programs[i]->discard; + program->nb_stream_indexes = s->programs[i]->nb_stream_indexes; + program->stream_index = av_realloc_array(program->stream_index, program->nb_stream_indexes, sizeof(unsigned int)); + if (!program->stream_index) + goto fail; + memcpy(program->stream_index, s->programs[i]->stream_index, program->nb_stream_indexes * sizeof(unsigned int)); + av_dict_copy(&program->metadata, s->programs[i]->metadata, 0); + + program->program_num = s->programs[i]->program_num; + program->pmt_pid = s->programs[i]->pmt_pid; + program->pcr_pid = s->programs[i]->pcr_pid; + program->pmt_version = s->programs[i]->pmt_version; + program->start_time = s->programs[i]->start_time; + program->end_time = s->programs[i]->end_time; + program->pts_wrap_reference = s->programs[i]->pts_wrap_reference; + program->pts_wrap_behavior = s->programs[i]->pts_wrap_behavior; + } if ((ret = avio_open_dyn_buf(&mpegts_ctx->pb)) < 0) goto fail; -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org