summaryrefslogtreecommitdiff
path: root/libavformat/rtpenc.c
diff options
context:
space:
mode:
authorLimin Wang <lance.lmwang@gmail.com>2022-01-01 20:19:50 +0800
committerLimin Wang <lance.lmwang@gmail.com>2022-01-12 09:21:07 +0800
commitb697326a68372bec6dc3adece9afaaaebae5028d (patch)
tree50a7ea8c3f2808c646768842c2874df7e7c4e350 /libavformat/rtpenc.c
parent3ea93bbd6d9687f0171ae632c94b18199b9e62a4 (diff)
downloadffmpeg-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.c9
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,