summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2010-05-21 07:08:29 +0000
committerMartin Storsjö <martin@martin.st>2010-05-21 07:08:29 +0000
commit648e41b342595ab11770ac99aa405971568d86d2 (patch)
tree193d9dc058e51aa55a7f8c2e2bb291246592dc1a /libavformat
parent9a761250699dc179c8e31caa55b1a785a5601e5e (diff)
Take ff_write_chained in use in the mov rtp hinter and in the rtsp muxer
Originally committed as revision 23208 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/movenchint.c12
-rw-r--r--libavformat/rtspenc.c10
2 files changed, 5 insertions, 17 deletions
diff --git a/libavformat/movenchint.c b/libavformat/movenchint.c
index d90ac67911..2ebe8b808f 100644
--- a/libavformat/movenchint.c
+++ b/libavformat/movenchint.c
@@ -21,6 +21,7 @@
#include "movenc.h"
#include "libavutil/intreadwrite.h"
+#include "internal.h"
int ff_mov_init_hinting(AVFormatContext *s, int index, int src_index)
{
@@ -430,7 +431,6 @@ int ff_mov_add_hinted_packet(AVFormatContext *s, AVPacket *pkt,
int size;
ByteIOContext *hintbuf = NULL;
AVPacket hint_pkt;
- AVPacket local_pkt;
int ret = 0, count;
if (!rtp_ctx)
@@ -441,15 +441,7 @@ int ff_mov_add_hinted_packet(AVFormatContext *s, AVPacket *pkt,
sample_queue_push(&trk->sample_queue, pkt, sample);
/* Feed the packet to the RTP muxer */
- local_pkt = *pkt;
- local_pkt.stream_index = 0;
- local_pkt.pts = av_rescale_q(pkt->pts,
- s->streams[pkt->stream_index]->time_base,
- rtp_ctx->streams[0]->time_base);
- local_pkt.dts = av_rescale_q(pkt->dts,
- s->streams[pkt->stream_index]->time_base,
- rtp_ctx->streams[0]->time_base);
- av_write_frame(rtp_ctx, &local_pkt);
+ ff_write_chained(rtp_ctx, 0, pkt, s);
/* Fetch the output from the RTP muxer, open a new output buffer
* for next time. */
diff --git a/libavformat/rtspenc.c b/libavformat/rtspenc.c
index f7aadd6e41..293baa2a38 100644
--- a/libavformat/rtspenc.c
+++ b/libavformat/rtspenc.c
@@ -27,6 +27,7 @@
#endif
#include "network.h"
#include "rtsp.h"
+#include "internal.h"
#include <libavutil/intreadwrite.h>
static int rtsp_write_record(AVFormatContext *s)
@@ -104,7 +105,6 @@ static int rtsp_write_packet(AVFormatContext *s, AVPacket *pkt)
int n, tcp_fd;
struct timeval tv;
AVFormatContext *rtpctx;
- AVPacket local_pkt;
int ret;
tcp_fd = url_get_file_handle(rt->rtsp_hd);
@@ -140,12 +140,8 @@ static int rtsp_write_packet(AVFormatContext *s, AVPacket *pkt)
rtsp_st = rt->rtsp_streams[pkt->stream_index];
rtpctx = rtsp_st->transport_priv;
- /* 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;
- ret = av_write_frame(rtpctx, &local_pkt);
- /* av_write_frame does all the RTP packetization. If using TCP as
+ ret = ff_write_chained(rtpctx, 0, pkt, s);
+ /* ff_write_chained does all the RTP packetization. If using TCP as
* transport, rtpctx->pb is only a dyn_packet_buf that queues up the
* packets, so we need to send them out on the TCP connection separately.
*/