Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-11-01 22:40:08 +0400
committerMichael Niedermayer <michaelni@gmx.at>2013-11-01 22:40:20 +0400
commit1295377f0a9de3140330d4467347f10d03ec4169 (patch)
tree8b5b652ae983e4b56fa685a828d81b7707fa5d7e /libavformat/rtspenc.c
parent04894ef32e325e33d420e15c16e3714e0f95fdb0 (diff)
parent50aef03b24d949249b020226dffa3a78077f1056 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: rtspenc: Make sure BYE packets are sent before TEARDOWN Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/rtspenc.c')
-rw-r--r--libavformat/rtspenc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavformat/rtspenc.c b/libavformat/rtspenc.c
index bea18317fd..d76ae872eb 100644
--- a/libavformat/rtspenc.c
+++ b/libavformat/rtspenc.c
@@ -136,7 +136,7 @@ static int rtsp_write_header(AVFormatContext *s)
return 0;
}
-static int tcp_write_packet(AVFormatContext *s, RTSPStream *rtsp_st)
+int ff_rtsp_tcp_write_packet(AVFormatContext *s, RTSPStream *rtsp_st)
{
RTSPState *rt = s->priv_data;
AVFormatContext *rtpctx = rtsp_st->transport_priv;
@@ -217,7 +217,7 @@ static int rtsp_write_packet(AVFormatContext *s, AVPacket *pkt)
* packets, so we need to send them out on the TCP connection separately.
*/
if (!ret && rt->lower_transport == RTSP_LOWER_TRANSPORT_TCP)
- ret = tcp_write_packet(s, rtsp_st);
+ ret = ff_rtsp_tcp_write_packet(s, rtsp_st);
return ret;
}
@@ -225,6 +225,11 @@ static int rtsp_write_close(AVFormatContext *s)
{
RTSPState *rt = s->priv_data;
+ // If we want to send RTCP_BYE packets, these are sent by av_write_trailer.
+ // Thus call this on all streams before doing the teardown. This is
+ // done within ff_rtsp_undo_setup.
+ ff_rtsp_undo_setup(s, 1);
+
ff_rtsp_send_cmd_async(s, "TEARDOWN", rt->control_uri, NULL);
ff_rtsp_close_streams(s);