[FFmpeg-cvslog] rtpenc_vp8: Use 15-bit PictureIDs

Kevin Wang git at videolan.org
Sat Mar 26 00:43:58 EET 2022


ffmpeg | branch: master | Kevin Wang <kevmo314 at gmail.com> | Tue Mar 22 14:25:11 2022 -0400| [8ae15b565533944d042d3caf25f7262e002e8953] | committer: Martin Storsjö

rtpenc_vp8: Use 15-bit PictureIDs

7-bit PictureIDs are not supported by WebRTC:
https://groups.google.com/g/discuss-webrtc/c/333-L02vuWA

In practice, 15-bit PictureIDs offer better compatibility.

Signed-off-by: Kevin Wang <kevin at muxable.com>
Signed-off-by: Martin Storsjö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8ae15b565533944d042d3caf25f7262e002e8953
---

 libavformat/rtpenc_vp8.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavformat/rtpenc_vp8.c b/libavformat/rtpenc_vp8.c
index 671d245758..655d44517e 100644
--- a/libavformat/rtpenc_vp8.c
+++ b/libavformat/rtpenc_vp8.c
@@ -35,7 +35,8 @@ void ff_rtp_send_vp8(AVFormatContext *s1, const uint8_t *buf, int size)
     // partition id 0
     *s->buf_ptr++ = 0x90;
     *s->buf_ptr++ = 0x80; // Picture id present
-    *s->buf_ptr++ = s->frame_count++ & 0x7f;
+    *s->buf_ptr++ = ((s->frame_count & 0x7f00) >> 8) | 0x80;
+    *s->buf_ptr++ = s->frame_count++ & 0xff;
     // Calculate the number of remaining bytes
     header_size     = s->buf_ptr - s->buf;
     max_packet_size = s->max_payload_size - header_size;



More information about the ffmpeg-cvslog mailing list