summaryrefslogtreecommitdiff
path: root/libavformat/rtpenc.c
diff options
context:
space:
mode:
authorThomas Volkert <thomas@netzeal.de>2016-05-30 16:31:52 +0200
committerThomas Volkert <thomas@netzeal.de>2016-06-13 18:09:34 +0200
commit668fb1cb6a4ebdbf367881ca0f1b4dfd1fdafce8 (patch)
treeb19c9b20651b31b0c301fbce99fffa1499acbcb9 /libavformat/rtpenc.c
parent60de31e98c1630c11d13a4789e1dfacddc31ef9d (diff)
rtpenc: packetizer for VP9 RTP payload format (draft v2)
Diffstat (limited to 'libavformat/rtpenc.c')
-rw-r--r--libavformat/rtpenc.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
index f477650a87..db1ec81219 100644
--- a/libavformat/rtpenc.c
+++ b/libavformat/rtpenc.c
@@ -75,6 +75,7 @@ static int is_supported(enum AVCodecID id)
case AV_CODEC_ID_VORBIS:
case AV_CODEC_ID_THEORA:
case AV_CODEC_ID_VP8:
+ case AV_CODEC_ID_VP9:
case AV_CODEC_ID_ADPCM_G722:
case AV_CODEC_ID_ADPCM_G726:
case AV_CODEC_ID_ILBC:
@@ -211,6 +212,16 @@ static int rtp_write_header(AVFormatContext *s1)
s->nal_length_size = (st->codecpar->extradata[21] & 0x03) + 1;
}
break;
+ case AV_CODEC_ID_VP9:
+ if (s1->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
+ av_log(s, AV_LOG_ERROR,
+ "Packetizing VP9 is experimental and its specification is "
+ "still in draft state. "
+ "Please set -strict experimental in order to enable it.\n");
+ ret = AVERROR_EXPERIMENTAL;
+ goto fail;
+ }
+ break;
case AV_CODEC_ID_VORBIS:
case AV_CODEC_ID_THEORA:
s->max_frames_per_packet = 15;
@@ -594,6 +605,9 @@ static int rtp_write_packet(AVFormatContext *s1, AVPacket *pkt)
case AV_CODEC_ID_VP8:
ff_rtp_send_vp8(s1, pkt->data, size);
break;
+ case AV_CODEC_ID_VP9:
+ ff_rtp_send_vp9(s1, pkt->data, size);
+ break;
case AV_CODEC_ID_ILBC:
rtp_send_ilbc(s1, pkt->data, size);
break;