* [FFmpeg-devel] [PATCH 1/2] avcodec/h264_slice: compute prev_frame_num_offset to correct value
@ 2022-02-16 8:51 Steven Liu
2022-02-16 8:51 ` [FFmpeg-devel] [PATCH 2/2] fate/h264: add test case for h264-loss_packet_for_prev_frame_num_offset Steven Liu
0 siblings, 1 reply; 4+ messages in thread
From: Steven Liu @ 2022-02-16 8:51 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Shitao Wang, Steven Liu
From: Shitao Wang <wangshitao@kuaishou.com>
If H.264 stream decode under loss packet transport network, h264_slice
will process prev_frame_num_offset in wrong way, it will dup picture,
This is different to JM, so compute the prev_frame_num_offset when
prev_frame_num >= (1 << sps->log2_max_frame_num), then it will
same as JM.
Signed-off-by: Shitao Wang <wangshitao@kuaishou.com>
Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
---
libavcodec/h264_slice.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index 110a41772a..6f21c48b2d 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1667,6 +1667,8 @@ static int h264_field_start(H264Context *h, const H264SliceContext *sl,
}
h->poc.prev_frame_num++;
+ if (h->poc.prev_frame_num >= (1 << sps->log2_max_frame_num))
+ h->poc.prev_frame_num_offset += 1 << sps->log2_max_frame_num;
h->poc.prev_frame_num %= 1 << sps->log2_max_frame_num;
h->cur_pic_ptr->frame_num = h->poc.prev_frame_num;
h->cur_pic_ptr->invalid_gap = !sps->gaps_in_frame_num_allowed_flag;
--
2.25.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] fate/h264: add test case for h264-loss_packet_for_prev_frame_num_offset
2022-02-16 8:51 [FFmpeg-devel] [PATCH 1/2] avcodec/h264_slice: compute prev_frame_num_offset to correct value Steven Liu
@ 2022-02-16 8:51 ` Steven Liu
2022-02-16 8:54 ` Steven Liu
0 siblings, 1 reply; 4+ messages in thread
From: Steven Liu @ 2022-02-16 8:51 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Steven Liu
From: Steven Liu <liuqi05@kuaishou.com>
Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
---
tests/fate/h264.mak | 2 ++
...h264-loss_packet_for_prev_frame_num_offset | 23 +++++++++++++++++++
2 files changed, 25 insertions(+)
create mode 100644 tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
index e075b6f67f..142a4ea708 100644
--- a/tests/fate/h264.mak
+++ b/tests/fate/h264.mak
@@ -195,6 +195,7 @@ FATE_H264 := $(FATE_H264:%=fate-h264-conformance-%) \
fate-h264-lossless \
fate-h264-3386 \
fate-h264-missing-frame \
+ fate-h264-loss_packet_for_prev_frame_num_offset \
fate-h264-ref-pic-mod-overflow \
fate-h264-timecode \
fate-h264-encparams
@@ -442,6 +443,7 @@ fate-h264-twofields-packet: CMD = framecrc -i $(TARGET_SAM
fate-h264-unescaped-extradata: CMD = framecrc -i $(TARGET_SAMPLES)/h264/unescaped_extradata.mp4 -an -frames 10
fate-h264-3386: CMD = framecrc -i $(TARGET_SAMPLES)/h264/bbc2.sample.h264
fate-h264-missing-frame: CMD = framecrc -i $(TARGET_SAMPLES)/h264/nondeterministic_cut.h264
+fate-h264-loss_packet_for_prev_frame_num_offset: CMD = framecrc -i $(TARGET_SAMPLES)/h264/loss_packet_for_prev_frame_num_offset.h264
fate-h264-timecode: CMD = framecrc -i $(TARGET_SAMPLES)/h264/crew_cif_timecode-2.h264
fate-h264-reinit-%: CMD = framecrc -i $(TARGET_SAMPLES)/h264/$(@:fate-h264-%=%).h264 -vf scale,format=yuv444p10le,scale=w=352:h=288
diff --git a/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset b/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
new file mode 100644
index 0000000000..df8a88f5d4
--- /dev/null
+++ b/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
@@ -0,0 +1,23 @@
+#tb 0: 1/25
+#media_type 0: video
+#codec_id 0: rawvideo
+#dimensions 0: 1280x720
+#sar 0: 0/1
+0, 0, 0, 1, 1382400, 0xa21b9a12
+0, 1, 1, 1, 1382400, 0x9f266c66
+0, 2, 2, 1, 1382400, 0x08604d2c
+0, 3, 3, 1, 1382400, 0x0f59c63a
+0, 4, 4, 1, 1382400, 0xe9588c5d
+0, 5, 5, 1, 1382400, 0x01c3559a
+0, 6, 6, 1, 1382400, 0x40791f04
+0, 7, 7, 1, 1382400, 0x2047c562
+0, 8, 8, 1, 1382400, 0x24f7b450
+0, 9, 9, 1, 1382400, 0xfa3d00ed
+0, 10, 10, 1, 1382400, 0x8c3384ed
+0, 11, 11, 1, 1382400, 0xfa7c59e0
+0, 12, 12, 1, 1382400, 0x0d16c5d1
+0, 13, 13, 1, 1382400, 0x665bd32c
+0, 14, 14, 1, 1382400, 0xe8771b9d
+0, 15, 15, 1, 1382400, 0xd9824ab1
+0, 16, 16, 1, 1382400, 0xa7264481
+0, 17, 17, 1, 1382400, 0xdcaec99a
--
2.25.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/2] fate/h264: add test case for h264-loss_packet_for_prev_frame_num_offset
2022-02-16 8:51 ` [FFmpeg-devel] [PATCH 2/2] fate/h264: add test case for h264-loss_packet_for_prev_frame_num_offset Steven Liu
@ 2022-02-16 8:54 ` Steven Liu
2022-03-21 6:43 ` Steven Liu
0 siblings, 1 reply; 4+ messages in thread
From: Steven Liu @ 2022-02-16 8:54 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Steven Liu, Steven Liu
[-- Attachment #1: Type: text/plain, Size: 3925 bytes --]
> 2022年2月16日 下午4:51,Steven Liu <lq@chinaffmpeg.org> 写道:
>
> From: Steven Liu <liuqi05@kuaishou.com>
>
> Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
> ---
> tests/fate/h264.mak | 2 ++
> ...h264-loss_packet_for_prev_frame_num_offset | 23 +++++++++++++++++++
> 2 files changed, 25 insertions(+)
> create mode 100644 tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
>
> diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
> index e075b6f67f..142a4ea708 100644
> --- a/tests/fate/h264.mak
> +++ b/tests/fate/h264.mak
> @@ -195,6 +195,7 @@ FATE_H264 := $(FATE_H264:%=fate-h264-conformance-%) \
> fate-h264-lossless \
> fate-h264-3386 \
> fate-h264-missing-frame \
> + fate-h264-loss_packet_for_prev_frame_num_offset \
> fate-h264-ref-pic-mod-overflow \
> fate-h264-timecode \
> fate-h264-encparams
> @@ -442,6 +443,7 @@ fate-h264-twofields-packet: CMD = framecrc -i $(TARGET_SAM
> fate-h264-unescaped-extradata: CMD = framecrc -i $(TARGET_SAMPLES)/h264/unescaped_extradata.mp4 -an -frames 10
> fate-h264-3386: CMD = framecrc -i $(TARGET_SAMPLES)/h264/bbc2.sample.h264
> fate-h264-missing-frame: CMD = framecrc -i $(TARGET_SAMPLES)/h264/nondeterministic_cut.h264
> +fate-h264-loss_packet_for_prev_frame_num_offset: CMD = framecrc -i $(TARGET_SAMPLES)/h264/loss_packet_for_prev_frame_num_offset.h264
> fate-h264-timecode: CMD = framecrc -i $(TARGET_SAMPLES)/h264/crew_cif_timecode-2.h264
>
> fate-h264-reinit-%: CMD = framecrc -i $(TARGET_SAMPLES)/h264/$(@:fate-h264-%=%).h264 -vf scale,format=yuv444p10le,scale=w=352:h=288
> diff --git a/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset b/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
> new file mode 100644
> index 0000000000..df8a88f5d4
> --- /dev/null
> +++ b/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
> @@ -0,0 +1,23 @@
> +#tb 0: 1/25
> +#media_type 0: video
> +#codec_id 0: rawvideo
> +#dimensions 0: 1280x720
> +#sar 0: 0/1
> +0, 0, 0, 1, 1382400, 0xa21b9a12
> +0, 1, 1, 1, 1382400, 0x9f266c66
> +0, 2, 2, 1, 1382400, 0x08604d2c
> +0, 3, 3, 1, 1382400, 0x0f59c63a
> +0, 4, 4, 1, 1382400, 0xe9588c5d
> +0, 5, 5, 1, 1382400, 0x01c3559a
> +0, 6, 6, 1, 1382400, 0x40791f04
> +0, 7, 7, 1, 1382400, 0x2047c562
> +0, 8, 8, 1, 1382400, 0x24f7b450
> +0, 9, 9, 1, 1382400, 0xfa3d00ed
> +0, 10, 10, 1, 1382400, 0x8c3384ed
> +0, 11, 11, 1, 1382400, 0xfa7c59e0
> +0, 12, 12, 1, 1382400, 0x0d16c5d1
> +0, 13, 13, 1, 1382400, 0x665bd32c
> +0, 14, 14, 1, 1382400, 0xe8771b9d
> +0, 15, 15, 1, 1382400, 0xd9824ab1
> +0, 16, 16, 1, 1382400, 0xa7264481
> +0, 17, 17, 1, 1382400, 0xdcaec99a
> --
> 2.25.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
attach test file
[-- Attachment #2: loss_packet_for_prev_frame_num_offset.h264 --]
[-- Type: application/octet-stream, Size: 82085 bytes --]
[-- Attachment #3: Type: text/plain, Size: 21 bytes --]
Thanks
Steven Liu
[-- Attachment #4: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH 2/2] fate/h264: add test case for h264-loss_packet_for_prev_frame_num_offset
2022-02-16 8:54 ` Steven Liu
@ 2022-03-21 6:43 ` Steven Liu
0 siblings, 0 replies; 4+ messages in thread
From: Steven Liu @ 2022-03-21 6:43 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Steven Liu
> 2022年2月16日 下午4:54,Steven Liu <lq@chinaffmpeg.org> 写道:
>
>
>
>> 2022年2月16日 下午4:51,Steven Liu <lq@chinaffmpeg.org> 写道:
>>
>> From: Steven Liu <liuqi05@kuaishou.com>
>>
>> Signed-off-by: Steven Liu <liuqi05@kuaishou.com>
>> ---
>> tests/fate/h264.mak | 2 ++
>> ...h264-loss_packet_for_prev_frame_num_offset | 23 +++++++++++++++++++
>> 2 files changed, 25 insertions(+)
>> create mode 100644 tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
>>
>> diff --git a/tests/fate/h264.mak b/tests/fate/h264.mak
>> index e075b6f67f..142a4ea708 100644
>> --- a/tests/fate/h264.mak
>> +++ b/tests/fate/h264.mak
>> @@ -195,6 +195,7 @@ FATE_H264 := $(FATE_H264:%=fate-h264-conformance-%) \
>> fate-h264-lossless \
>> fate-h264-3386 \
>> fate-h264-missing-frame \
>> + fate-h264-loss_packet_for_prev_frame_num_offset \
>> fate-h264-ref-pic-mod-overflow \
>> fate-h264-timecode \
>> fate-h264-encparams
>> @@ -442,6 +443,7 @@ fate-h264-twofields-packet: CMD = framecrc -i $(TARGET_SAM
>> fate-h264-unescaped-extradata: CMD = framecrc -i $(TARGET_SAMPLES)/h264/unescaped_extradata.mp4 -an -frames 10
>> fate-h264-3386: CMD = framecrc -i $(TARGET_SAMPLES)/h264/bbc2.sample.h264
>> fate-h264-missing-frame: CMD = framecrc -i $(TARGET_SAMPLES)/h264/nondeterministic_cut.h264
>> +fate-h264-loss_packet_for_prev_frame_num_offset: CMD = framecrc -i $(TARGET_SAMPLES)/h264/loss_packet_for_prev_frame_num_offset.h264
>> fate-h264-timecode: CMD = framecrc -i $(TARGET_SAMPLES)/h264/crew_cif_timecode-2.h264
>>
>> fate-h264-reinit-%: CMD = framecrc -i $(TARGET_SAMPLES)/h264/$(@:fate-h264-%=%).h264 -vf scale,format=yuv444p10le,scale=w=352:h=288
>> diff --git a/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset b/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
>> new file mode 100644
>> index 0000000000..df8a88f5d4
>> --- /dev/null
>> +++ b/tests/ref/fate/h264-loss_packet_for_prev_frame_num_offset
>> @@ -0,0 +1,23 @@
>> +#tb 0: 1/25
>> +#media_type 0: video
>> +#codec_id 0: rawvideo
>> +#dimensions 0: 1280x720
>> +#sar 0: 0/1
>> +0, 0, 0, 1, 1382400, 0xa21b9a12
>> +0, 1, 1, 1, 1382400, 0x9f266c66
>> +0, 2, 2, 1, 1382400, 0x08604d2c
>> +0, 3, 3, 1, 1382400, 0x0f59c63a
>> +0, 4, 4, 1, 1382400, 0xe9588c5d
>> +0, 5, 5, 1, 1382400, 0x01c3559a
>> +0, 6, 6, 1, 1382400, 0x40791f04
>> +0, 7, 7, 1, 1382400, 0x2047c562
>> +0, 8, 8, 1, 1382400, 0x24f7b450
>> +0, 9, 9, 1, 1382400, 0xfa3d00ed
>> +0, 10, 10, 1, 1382400, 0x8c3384ed
>> +0, 11, 11, 1, 1382400, 0xfa7c59e0
>> +0, 12, 12, 1, 1382400, 0x0d16c5d1
>> +0, 13, 13, 1, 1382400, 0x665bd32c
>> +0, 14, 14, 1, 1382400, 0xe8771b9d
>> +0, 15, 15, 1, 1382400, 0xd9824ab1
>> +0, 16, 16, 1, 1382400, 0xa7264481
>> +0, 17, 17, 1, 1382400, 0xdcaec99a
>> --
>> 2.25.0
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>
>
> attach test file
> <loss_packet_for_prev_frame_num_offset.h264>
ping
> Thanks
>
> Steven Liu
>
Thanks
Steven Liu
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-03-21 6:43 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-16 8:51 [FFmpeg-devel] [PATCH 1/2] avcodec/h264_slice: compute prev_frame_num_offset to correct value Steven Liu
2022-02-16 8:51 ` [FFmpeg-devel] [PATCH 2/2] fate/h264: add test case for h264-loss_packet_for_prev_frame_num_offset Steven Liu
2022-02-16 8:54 ` Steven Liu
2022-03-21 6:43 ` Steven Liu
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git