mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-09 16:19:35 +00:00
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. Originally committed as revision 22081 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
cf41a02b1b
commit
50ff78db01
@ -71,6 +71,7 @@ static int rtsp_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
int n, tcp_fd;
|
int n, tcp_fd;
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
AVFormatContext *rtpctx;
|
AVFormatContext *rtpctx;
|
||||||
|
AVPacket local_pkt;
|
||||||
|
|
||||||
FD_ZERO(&rfds);
|
FD_ZERO(&rfds);
|
||||||
tcp_fd = url_get_file_handle(rt->rtsp_hd);
|
tcp_fd = url_get_file_handle(rt->rtsp_hd);
|
||||||
@ -96,8 +97,11 @@ static int rtsp_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
rtsp_st = rt->rtsp_streams[pkt->stream_index];
|
rtsp_st = rt->rtsp_streams[pkt->stream_index];
|
||||||
rtpctx = rtsp_st->transport_priv;
|
rtpctx = rtsp_st->transport_priv;
|
||||||
|
|
||||||
pkt->stream_index = 0;
|
/* Use a local packet for writing to the chained muxer, otherwise
|
||||||
return av_write_frame(rtpctx, pkt);
|
* 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)
|
static int rtsp_write_close(AVFormatContext *s)
|
||||||
|
Loading…
Reference in New Issue
Block a user