diff mbox series

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

Message ID 20220322182511.7747-1-kevin@muxable.com
State Accepted
Commit 8ae15b565533944d042d3caf25f7262e002e8953
Headers show
Series [FFmpeg-devel] rtpenc_vp8: Use 15-bit PictureIDs | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_armv7_RPi4 success Make finished
andriy/make_fate_armv7_RPi4 success Make fate finished
andriy/make_aarch64_jetson success Make finished
andriy/make_fate_aarch64_jetson success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Kevin Wang March 22, 2022, 6:25 p.m. UTC
From: Kevin Wang <kevmo314@gmail.com>

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@muxable.com>
---
 libavformat/rtpenc_vp8.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Kevin Wang March 25, 2022, 9:13 a.m. UTC | #1
Hi, ping on this patch? It's quite simple, happy to answer any questions.

On Tue, Mar 22, 2022 at 2:25 PM <kevin@muxable.com> wrote:

> From: Kevin Wang <kevmo314@gmail.com>
>
> 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@muxable.com>
> ---
>  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;
> --
> 2.34.1
>
>
Zhao Zhili March 25, 2022, 10:18 a.m. UTC | #2
> On Mar 25, 2022, at 5:13 PM, Kevin Wang <kevin@muxable.com> wrote:
> 
> Hi, ping on this patch? It's quite simple, happy to answer any questions.
> 
> On Tue, Mar 22, 2022 at 2:25 PM <kevin@muxable.com> wrote:
> 
>> From: Kevin Wang <kevmo314@gmail.com>
>> 
>> 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@muxable.com>
>> ---
>> 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;
>> --

LGTM.
Martin Storsjö March 25, 2022, 10:43 p.m. UTC | #3
On Tue, 22 Mar 2022, kevin@muxable.com wrote:

> From: Kevin Wang <kevmo314@gmail.com>
>
> 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@muxable.com>
> ---
> 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;
> -- 
> 2.34.1

LGTM, thanks!

// Martin
diff mbox series

Patch

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;