diff options
author | Thomas Volkert <thomas@netzeal.de> | 2016-05-03 19:07:37 +0200 |
---|---|---|
committer | Thomas Volkert <thomas@netzeal.de> | 2016-05-03 19:07:37 +0200 |
commit | f591b7b5265fcf29dad12c4995ee43b0e3d594e7 (patch) | |
tree | 466197196815268594b8817baff1aacc9fff3364 /libavformat/rtpenc.c | |
parent | 1ef267b83f8b71c07c2453852ce8bb44fa27a2da (diff) | |
download | ffmpeg-f591b7b5265fcf29dad12c4995ee43b0e3d594e7.tar.gz |
rtpenc: packetizer for VC-2 HQ RTP payload format (draft v1)
Diffstat (limited to 'libavformat/rtpenc.c')
-rw-r--r-- | libavformat/rtpenc.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c index ef51236ab3..f477650a87 100644 --- a/libavformat/rtpenc.c +++ b/libavformat/rtpenc.c @@ -49,6 +49,7 @@ static const AVClass rtp_muxer_class = { static int is_supported(enum AVCodecID id) { switch(id) { + case AV_CODEC_ID_DIRAC: case AV_CODEC_ID_H261: case AV_CODEC_ID_H263: case AV_CODEC_ID_H263P: @@ -173,6 +174,17 @@ static int rtp_write_header(AVFormatContext *s1) n = 1; s->max_payload_size = n * TS_PACKET_SIZE; break; + case AV_CODEC_ID_DIRAC: + if (s1->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { + av_log(s, AV_LOG_ERROR, + "Packetizing VC-2 is experimental and does not use all values " + "of the specification " + "(even though most receivers may handle it just fine). " + "Please set -strict experimental in order to enable it.\n"); + ret = AVERROR_EXPERIMENTAL; + goto fail; + } + break; case AV_CODEC_ID_H261: if (s1->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { av_log(s, AV_LOG_ERROR, @@ -550,6 +562,9 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt) case AV_CODEC_ID_MPEG2TS: rtp_send_mpegts_raw(s1, pkt->data, size); break; + case AV_CODEC_ID_DIRAC: + ff_rtp_send_vc2hq(s1, pkt->data, size, st->codecpar->field_order != AV_FIELD_PROGRESSIVE ? 1 : 0); + break; case AV_CODEC_ID_H264: ff_rtp_send_h264_hevc(s1, pkt->data, size); break; |