diff options
Diffstat (limited to 'libavformat/rtpenc_chain.c')
-rw-r--r-- | libavformat/rtpenc_chain.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/libavformat/rtpenc_chain.c b/libavformat/rtpenc_chain.c index 3742099314..adc432aa00 100644 --- a/libavformat/rtpenc_chain.c +++ b/libavformat/rtpenc_chain.c @@ -23,13 +23,15 @@ #include "avio_internal.h" #include "rtpenc_chain.h" #include "avio_internal.h" +#include "rtp.h" #include "libavutil/opt.h" int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s, - AVStream *st, URLContext *handle, int packet_size) + AVStream *st, URLContext *handle, int packet_size, + int idx) { AVFormatContext *rtpctx = NULL; - int ret; + int ret, pt; AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL); uint8_t *rtpflags; AVDictionary *opts = NULL; @@ -57,6 +59,12 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s, rtpctx->max_delay = s->max_delay; /* Copy other stream parameters. */ rtpctx->streams[0]->sample_aspect_ratio = st->sample_aspect_ratio; + /* Get the payload type from the codec */ + if (st->id < RTP_PT_PRIVATE) + rtpctx->streams[0]->id = + ff_rtp_get_payload_type(rtpctx, st->codec, idx); + else + rtpctx->streams[0]->id = st->id; if (av_opt_get(s, "rtpflags", AV_OPT_SEARCH_CHILDREN, &rtpflags) >= 0) av_dict_set(&opts, "rtpflags", rtpflags, AV_DICT_DONT_STRDUP_VAL); |