[FFmpeg-devel] [PATCH 3/3] avformat/rtpenc_mpegts: allow options for rtp muxer
Gyan Doshi
ffmpeg at gyani.pro
Thu Mar 25 09:03:16 EET 2021
Plan to push set tomorrow.
On 2021-03-23 11:07, Gyan Doshi wrote:
> ---
> libavformat/rtpenc_mpegts.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/libavformat/rtpenc_mpegts.c b/libavformat/rtpenc_mpegts.c
> index 22881461e4..f7ee5a4448 100644
> --- a/libavformat/rtpenc_mpegts.c
> +++ b/libavformat/rtpenc_mpegts.c
> @@ -29,6 +29,7 @@ typedef struct MuxChain {
> AVFormatContext *rtp_ctx;
> AVPacket *pkt;
> AVDictionary* mpegts_muxer_options;
> + AVDictionary* rtp_muxer_options;
> } MuxChain;
>
> static int rtp_mpegts_write_close(AVFormatContext *s)
> @@ -59,6 +60,7 @@ static int rtp_mpegts_write_header(AVFormatContext *s)
> int i, ret = AVERROR(ENOMEM);
> AVStream *st;
> AVDictionary *mpegts_muxer_options = NULL;
> + AVDictionary *rtp_muxer_options = NULL;
>
> if (!mpegts_format || !rtp_format)
> return AVERROR(ENOSYS);
> @@ -108,7 +110,8 @@ static int rtp_mpegts_write_header(AVFormatContext *s)
> st->time_base.den = 90000;
> st->codecpar->codec_id = AV_CODEC_ID_MPEG2TS;
> rtp_ctx->pb = s->pb;
> - if ((ret = avformat_write_header(rtp_ctx, NULL)) < 0)
> + av_dict_copy(&rtp_muxer_options, chain->rtp_muxer_options, 0);
> + if ((ret = avformat_write_header(rtp_ctx, &rtp_muxer_options)) < 0)
> goto fail;
> chain->rtp_ctx = rtp_ctx;
>
> @@ -121,6 +124,7 @@ fail:
> av_dict_free(&mpegts_muxer_options);
> avformat_free_context(mpegts_ctx);
> }
> + av_dict_free(&rtp_muxer_options);
> avformat_free_context(rtp_ctx);
> rtp_mpegts_write_close(s);
> return ret;
> @@ -167,6 +171,7 @@ static int rtp_mpegts_write_packet(AVFormatContext *s, AVPacket *pkt)
> #define E AV_OPT_FLAG_ENCODING_PARAM
> static const AVOption options[] = {
> { "mpegts_muxer_options", "set list of options for the MPEG-TS muxer", OFFSET(mpegts_muxer_options), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, E },
> + { "rtp_muxer_options", "set list of options for the RTP muxer", OFFSET(rtp_muxer_options), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, E },
> { NULL },
> };
>
More information about the ffmpeg-devel
mailing list