|
|
@@ -612,6 +612,7 @@ void ff_rtsp_close_streams(AVFormatContext *s) |
|
|
static void *rtsp_rtp_mux_open(AVFormatContext *s, AVStream *st, |
|
|
static void *rtsp_rtp_mux_open(AVFormatContext *s, AVStream *st, |
|
|
URLContext *handle) |
|
|
URLContext *handle) |
|
|
{ |
|
|
{ |
|
|
|
|
|
RTSPState *rt = s->priv_data; |
|
|
AVFormatContext *rtpctx; |
|
|
AVFormatContext *rtpctx; |
|
|
int ret; |
|
|
int ret; |
|
|
AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL); |
|
|
AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL); |
|
|
@@ -634,6 +635,9 @@ static void *rtsp_rtp_mux_open(AVFormatContext *s, AVStream *st, |
|
|
/* Copy other stream parameters. */ |
|
|
/* Copy other stream parameters. */ |
|
|
rtpctx->streams[0]->sample_aspect_ratio = st->sample_aspect_ratio; |
|
|
rtpctx->streams[0]->sample_aspect_ratio = st->sample_aspect_ratio; |
|
|
|
|
|
|
|
|
|
|
|
/* Set the synchronized start time. */ |
|
|
|
|
|
rtpctx->start_time_realtime = rt->start_time; |
|
|
|
|
|
|
|
|
/* Remove the local codec, link to the original codec |
|
|
/* Remove the local codec, link to the original codec |
|
|
* context instead, to give the rtp muxer access to |
|
|
* context instead, to give the rtp muxer access to |
|
|
* codec parameters. */ |
|
|
* codec parameters. */ |
|
|
@@ -1340,6 +1344,8 @@ static int rtsp_setup_output_streams(AVFormatContext *s, const char *addr) |
|
|
char *sdp; |
|
|
char *sdp; |
|
|
AVFormatContext sdp_ctx, *ctx_array[1]; |
|
|
AVFormatContext sdp_ctx, *ctx_array[1]; |
|
|
|
|
|
|
|
|
|
|
|
rt->start_time = av_gettime(); |
|
|
|
|
|
|
|
|
/* Announce the stream */ |
|
|
/* Announce the stream */ |
|
|
snprintf(cmd, sizeof(cmd), |
|
|
snprintf(cmd, sizeof(cmd), |
|
|
"ANNOUNCE %s RTSP/1.0\r\n" |
|
|
"ANNOUNCE %s RTSP/1.0\r\n" |
|
|
|