[FFmpeg-cvslog] r22081 - trunk/libavformat/rtspenc.c
mstorsjo
subversion
Fri Feb 26 17:21:56 CET 2010
Author: mstorsjo
Date: Fri Feb 26 17:21:56 2010
New Revision: 22081
Log:
RTSP muxer: Use a local copy of the AVPacket for sending to the chained muxer
This way, we avoid overwriting stream_index in the user's AVPacket
with a nonsense value.
Modified:
trunk/libavformat/rtspenc.c
Modified: trunk/libavformat/rtspenc.c
==============================================================================
--- trunk/libavformat/rtspenc.c Fri Feb 26 16:49:52 2010 (r22080)
+++ trunk/libavformat/rtspenc.c Fri Feb 26 17:21:56 2010 (r22081)
@@ -71,6 +71,7 @@ static int rtsp_write_packet(AVFormatCon
int n, tcp_fd;
struct timeval tv;
AVFormatContext *rtpctx;
+ AVPacket local_pkt;
FD_ZERO(&rfds);
tcp_fd = url_get_file_handle(rt->rtsp_hd);
@@ -96,8 +97,11 @@ static int rtsp_write_packet(AVFormatCon
rtsp_st = rt->rtsp_streams[pkt->stream_index];
rtpctx = rtsp_st->transport_priv;
- pkt->stream_index = 0;
- return av_write_frame(rtpctx, pkt);
+ /* Use a local packet for writing to the chained muxer, otherwise
+ * the internal stream_index = 0 becomes visible to the muxer user. */
+ local_pkt = *pkt;
+ local_pkt.stream_index = 0;
+ return av_write_frame(rtpctx, &local_pkt);
}
static int rtsp_write_close(AVFormatContext *s)
More information about the ffmpeg-cvslog
mailing list