mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Add a libavformat internal function ff_write_chained
Originally committed as revision 23207 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
6531b5c9f4
commit
9a76125069
@ -154,4 +154,18 @@ int ff_url_join(char *str, int size, const char *proto,
|
|||||||
void ff_sdp_write_media(char *buff, int size, AVCodecContext *c,
|
void ff_sdp_write_media(char *buff, int size, AVCodecContext *c,
|
||||||
const char *dest_addr, int port, int ttl);
|
const char *dest_addr, int port, int ttl);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write a packet to another muxer than the one the user originally
|
||||||
|
* intended. Useful when chaining muxers, where one muxer internally
|
||||||
|
* writes a received packet to another muxer.
|
||||||
|
*
|
||||||
|
* @param dst the muxer to write the packet to
|
||||||
|
* @param dst_stream the stream index within dst to write the packet to
|
||||||
|
* @param pkt the packet to be written
|
||||||
|
* @param src the muxer the packet originally was intended for
|
||||||
|
* @return the value av_write_frame returned
|
||||||
|
*/
|
||||||
|
int ff_write_chained(AVFormatContext *dst, int dst_stream, AVPacket *pkt,
|
||||||
|
AVFormatContext *src);
|
||||||
|
|
||||||
#endif /* AVFORMAT_INTERNAL_H */
|
#endif /* AVFORMAT_INTERNAL_H */
|
||||||
|
@ -3591,3 +3591,22 @@ int ff_url_join(char *str, int size, const char *proto,
|
|||||||
}
|
}
|
||||||
return strlen(str);
|
return strlen(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ff_write_chained(AVFormatContext *dst, int dst_stream, AVPacket *pkt,
|
||||||
|
AVFormatContext *src)
|
||||||
|
{
|
||||||
|
AVPacket local_pkt;
|
||||||
|
|
||||||
|
local_pkt = *pkt;
|
||||||
|
local_pkt.stream_index = dst_stream;
|
||||||
|
if (pkt->pts != AV_NOPTS_VALUE)
|
||||||
|
local_pkt.pts = av_rescale_q(pkt->pts,
|
||||||
|
src->streams[pkt->stream_index]->time_base,
|
||||||
|
dst->streams[dst_stream]->time_base);
|
||||||
|
if (pkt->dts != AV_NOPTS_VALUE)
|
||||||
|
local_pkt.dts = av_rescale_q(pkt->dts,
|
||||||
|
src->streams[pkt->stream_index]->time_base,
|
||||||
|
dst->streams[dst_stream]->time_base);
|
||||||
|
return av_write_frame(dst, &local_pkt);
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user