summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2012-10-08 23:18:38 +0300
committerMartin Storsjö <martin@martin.st>2012-10-08 23:55:53 +0300
commitc9b10cc4dbb67a94c29359fde79fb882d71fef6f (patch)
tree36886caad0d91a08af602341e7f097987e02f448 /libavformat
parent66d652cbf38eb39377f20a6b536f939b6150e952 (diff)
rtpenc_vp8: Update the packetizer to the latest spec version
Tested to work with the gstreamer depacketizer. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/rtpenc.c4
-rw-r--r--libavformat/rtpenc_vp8.c6
2 files changed, 4 insertions, 6 deletions
diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
index dc257f6391..36064ed610 100644
--- a/libavformat/rtpenc.c
+++ b/libavformat/rtpenc.c
@@ -181,10 +181,6 @@ static int rtp_write_header(AVFormatContext *s1)
s->max_payload_size -= 6; // ident+frag+tdt/vdt+pkt_num+pkt_length
s->num_frames = 0;
goto defaultcase;
- case AV_CODEC_ID_VP8:
- av_log(s1, AV_LOG_ERROR, "RTP VP8 payload implementation is "
- "incompatible with the latest spec drafts.\n");
- break;
case AV_CODEC_ID_ADPCM_G722:
/* Due to a historical error, the clock rate for G722 in RTP is
* 8000, even if the sample rate is 16000. See RFC 3551. */
diff --git a/libavformat/rtpenc_vp8.c b/libavformat/rtpenc_vp8.c
index afedbb49c0..1730379874 100644
--- a/libavformat/rtpenc_vp8.c
+++ b/libavformat/rtpenc_vp8.c
@@ -22,7 +22,7 @@
#include "rtpenc.h"
/* Based on a draft spec for VP8 RTP.
- * ( http://www.webmproject.org/code/specs/rtp/ ) */
+ * ( http://tools.ietf.org/html/draft-ietf-payload-vp8-05 ) */
void ff_rtp_send_vp8(AVFormatContext *s1, const uint8_t *buf, int size)
{
RTPMuxContext *s = s1->priv_data;
@@ -32,7 +32,9 @@ void ff_rtp_send_vp8(AVFormatContext *s1, const uint8_t *buf, int size)
s->timestamp = s->cur_timestamp;
max_packet_size = s->max_payload_size - 1; // minus one for header byte
- *s->buf_ptr++ = 1; // 0b1 indicates start of frame
+ // no extended control bits, reference frame, start of partition,
+ // partition id 0
+ *s->buf_ptr++ = 0x10;
while (size > 0) {
len = FFMIN(size, max_packet_size);