diff options
author | Limin Wang <lance.lmwang@gmail.com> | 2022-01-01 20:19:50 +0800 |
---|---|---|
committer | Limin Wang <lance.lmwang@gmail.com> | 2022-01-12 09:21:07 +0800 |
commit | b697326a68372bec6dc3adece9afaaaebae5028d (patch) | |
tree | 50a7ea8c3f2808c646768842c2874df7e7c4e350 /libavformat/rtpenc.c | |
parent | 3ea93bbd6d9687f0171ae632c94b18199b9e62a4 (diff) | |
download | ffmpeg-b697326a68372bec6dc3adece9afaaaebae5028d.tar.gz |
avformat/rtpenc_rfc4175: support for interlace format
Below are steps how to test on your local host:
wget --no-check-certificate https://samples.ffmpeg.org/MPEG2/interlaced/burosch1.mpg
1. interlace format:
ffmpeg -re -i ./burosch1.mpg -c:v bitpacked -pix_fmt yuv422p10 -f rtp rtp://239.255.0.1:6000
copy and create sdp file test.sdp
ffplay -buffer_size 671088640 -protocol_whitelist "file,rtp,udp" test.sdp
2. progressive format:
ffmpeg -re -i ./burosch1.mpg -vf yadif -c:v bitpacked -pix_fmt yuv422p10 -f rtp rtp://239.255.0.1:6000
copy and create sdp file test.sdp
ffplay -buffer_size 671088640 -protocol_whitelist "file,rtp,udp" test.sdp
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Diffstat (limited to 'libavformat/rtpenc.c')
-rw-r--r-- | libavformat/rtpenc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c index 17f5d9d308..6be67b5885 100644 --- a/libavformat/rtpenc.c +++ b/libavformat/rtpenc.c @@ -622,9 +622,14 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt) ff_rtp_send_jpeg(s1, pkt->data, size); break; case AV_CODEC_ID_BITPACKED: - case AV_CODEC_ID_RAWVIDEO: - ff_rtp_send_raw_rfc4175 (s1, pkt->data, size); + case AV_CODEC_ID_RAWVIDEO: { + int interlaced = st->codecpar->field_order != AV_FIELD_PROGRESSIVE; + + ff_rtp_send_raw_rfc4175(s1, pkt->data, size, interlaced, 0); + if (interlaced) + ff_rtp_send_raw_rfc4175(s1, pkt->data, size, interlaced, 1); break; + } case AV_CODEC_ID_OPUS: if (size > s->max_payload_size) { av_log(s1, AV_LOG_ERROR, |