Mercurial > libavformat.hg
changeset 6025:fd7fc7d79630 libavformat
Take ff_write_chained in use in the mov rtp hinter and in the rtsp muxer
author | mstorsjo |
---|---|
date | Fri, 21 May 2010 07:08:29 +0000 |
parents | ee42a04b24f2 |
children | 785444452e93 |
files | movenchint.c rtspenc.c |
diffstat | 2 files changed, 5 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/movenchint.c Fri May 21 07:07:57 2010 +0000 +++ b/movenchint.c Fri May 21 07:08:29 2010 +0000 @@ -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 size; ByteIOContext *hintbuf = NULL; AVPacket hint_pkt; - AVPacket local_pkt; int ret = 0, count; if (!rtp_ctx) @@ -441,15 +441,7 @@ 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. */
--- a/rtspenc.c Fri May 21 07:07:57 2010 +0000 +++ b/rtspenc.c Fri May 21 07:08:29 2010 +0000 @@ -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 @@ 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 @@ 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. */