diff mbox series

[FFmpeg-devel] lavc/vvc: Remove experimental flag

Message ID 20240823123659.5739-1-post@frankplowman.com
State New
Headers show
Series [FFmpeg-devel] lavc/vvc: Remove experimental flag | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Frank Plowman Aug. 23, 2024, 12:36 p.m. UTC
This reverts commit 110d8549d575aae6b2f627cd63e2eb7082ab8926.

I have been working through fixing bugs, particularly crashes I've
found using a fuzzer, in the VVC decoder for the past few months.
While I won't claim it is now bug-free, it is considerably more
resilient than it was and I think in a position to have the
experimental flag removed for release 7.1.

Additionally, most of the Main 10 features of VVC which were missing
version of the decoder released in 7.0 have now been implemented.
This includes the most major missing features: IBC, subpictures and RPR.

Signed-off-by: Frank Plowman <post@frankplowman.com>
---
 libavcodec/vvc/dec.c | 3 +--
 tests/fate/vvc.mak   | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

Comments

Anton Khirnov Aug. 23, 2024, 1:17 p.m. UTC | #1
tsan reports races in the decoder, it would be nice if someone could
look at them before this goes in.
James Almer Aug. 23, 2024, 1:22 p.m. UTC | #2
On 8/23/2024 10:17 AM, Anton Khirnov wrote:
> tsan reports races in the decoder, it would be nice if someone could
> look at them before this goes in.

Not data races, but "lock-order-inversion (potential deadlock)", which 
sounds worse.
Nuo Mi Aug. 23, 2024, 1:24 p.m. UTC | #3
On Fri, Aug 23, 2024 at 9:17 PM Anton Khirnov <anton@khirnov.net> wrote:

> tsan reports races in the decoder, it would be nice if someone could
> look at them before this goes in.
>
sure, I will check

>
> --
> Anton Khirnov
>
Nuo Mi Aug. 25, 2024, 4:43 a.m. UTC | #4
On Sat, Aug 24, 2024 at 5:40 AM James Almer <jamrial@gmail.com> wrote:

> On 8/23/2024 10:17 AM, Anton Khirnov wrote:
> > tsan reports races in the decoder, it would be nice if someone could
> > look at them before this goes in.
>
> Not data races, but "lock-order-inversion (potential deadlock)", which
> sounds worse.
>
Threads are hard. See
https://imgur.com/multithreading-fixing-problem-RbelQBq
Patch sent.

>
> _______________________________________________
> 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".
>
Nuo Mi Sept. 3, 2024, 11:20 p.m. UTC | #5
On Sun, Aug 25, 2024 at 12:43 PM Nuo Mi <nuomi2021@gmail.com> wrote:

>
>
> On Sat, Aug 24, 2024 at 5:40 AM James Almer <jamrial@gmail.com> wrote:
>
>> On 8/23/2024 10:17 AM, Anton Khirnov wrote:
>> > tsan reports races in the decoder, it would be nice if someone could
>> > look at them before this goes in.
>>
>> Not data races, but "lock-order-inversion (potential deadlock)", which
>> sounds worse.
>>
> Threads are hard. See
> https://imgur.com/multithreading-fixing-problem-RbelQBq
> Patch sent.
>
Merge the patch to satisfy TSAN. We now have no VVC issues at FATE
<https://fate.ffmpeg.org/report.cgi?slot=x86_64-archlinux-gcc-tsan&time=20240903190517>
.
Thank you, James and Anton, for reporting this.

I will merge the '[PATCH] lavc/vvc: Remove experimental flag' patch if
there are no objections.
Thank you to Frank for his great help with fuzz testing


>> _______________________________________________
>> 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".
>>
>
Nuo Mi Sept. 6, 2024, 2:19 p.m. UTC | #6
On Wed, Sep 4, 2024 at 7:20 AM Nuo Mi <nuomi2021@gmail.com> wrote:

>
>
> On Sun, Aug 25, 2024 at 12:43 PM Nuo Mi <nuomi2021@gmail.com> wrote:
>
>>
>>
>> On Sat, Aug 24, 2024 at 5:40 AM James Almer <jamrial@gmail.com> wrote:
>>
>>> On 8/23/2024 10:17 AM, Anton Khirnov wrote:
>>> > tsan reports races in the decoder, it would be nice if someone could
>>> > look at them before this goes in.
>>>
>>> Not data races, but "lock-order-inversion (potential deadlock)", which
>>> sounds worse.
>>>
>> Threads are hard. See
>> https://imgur.com/multithreading-fixing-problem-RbelQBq
>> Patch sent.
>>
> Merge the patch to satisfy TSAN. We now have no VVC issues at FATE
> <https://fate.ffmpeg.org/report.cgi?slot=x86_64-archlinux-gcc-tsan&time=20240903190517>
> .
> Thank you, James and Anton, for reporting this.
>
> I will merge the '[PATCH] lavc/vvc: Remove experimental flag' patch if
> there are no objections.
> Thank you to Frank for his great help with fuzz testing
>
> Merged.

>
>>> _______________________________________________
>>> 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".
>>>
>>
Frank Plowman Nov. 8, 2024, 7:58 a.m. UTC | #7
On 23/08/2024 13:36, Frank Plowman wrote:
> This reverts commit 110d8549d575aae6b2f627cd63e2eb7082ab8926.
> 
> I have been working through fixing bugs, particularly crashes I've
> found using a fuzzer, in the VVC decoder for the past few months.
> While I won't claim it is now bug-free, it is considerably more
> resilient than it was and I think in a position to have the
> experimental flag removed for release 7.1.
> 
> Additionally, most of the Main 10 features of VVC which were missing
> version of the decoder released in 7.0 have now been implemented.
> This includes the most major missing features: IBC, subpictures and RPR.

A point of clarification regarding why I wrote "most" here.  The only
Main 10 feature not yet supported by the FFmpeg native VVC decoder is
the pps_mixed_nalu_types_in_pic_flag, which allows VCL NAL units to
differ in type across a single picture.

Palette coding from the Main 4:4:4 profile and bit depths above 12-bit
are also not yet supported.

Cheers,
Frank
diff mbox series

Patch

diff --git a/libavcodec/vvc/dec.c b/libavcodec/vvc/dec.c
index 2c80f0c461..edf2607f50 100644
--- a/libavcodec/vvc/dec.c
+++ b/libavcodec/vvc/dec.c
@@ -1108,8 +1108,7 @@  const FFCodec ff_vvc_decoder = {
     .close          = vvc_decode_free,
     FF_CODEC_DECODE_CB(vvc_decode_frame),
     .flush          = vvc_decode_flush,
-    .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS |
-                      AV_CODEC_CAP_EXPERIMENTAL,
+    .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS,
     .caps_internal  = FF_CODEC_CAP_EXPORTS_CROPPING | FF_CODEC_CAP_INIT_CLEANUP |
                       FF_CODEC_CAP_AUTO_THREADS,
     .p.profiles     = NULL_IF_CONFIG_SMALL(ff_vvc_profiles),
diff --git a/tests/fate/vvc.mak b/tests/fate/vvc.mak
index 3e762ec65e..5335460263 100644
--- a/tests/fate/vvc.mak
+++ b/tests/fate/vvc.mak
@@ -41,7 +41,7 @@  $(foreach VAR,$(FATE_VVC_VARS), $(eval VVC_TESTS_$(VAR) := $(addprefix fate-vvc-
 $(VVC_TESTS_8BIT): SCALE_OPTS := -pix_fmt yuv420p
 $(VVC_TESTS_10BIT): SCALE_OPTS := -pix_fmt yuv420p10le -vf scale
 $(VVC_TESTS_444_10BIT): SCALE_OPTS := -pix_fmt yuv444p10le -vf scale
-fate-vvc-conformance-%: CMD = framecrc -c:v vvc -strict experimental -i $(TARGET_SAMPLES)/vvc-conformance/$(subst fate-vvc-conformance-,,$(@)).bit $(SCALE_OPTS)
+fate-vvc-conformance-%: CMD = framecrc -c:v vvc -i $(TARGET_SAMPLES)/vvc-conformance/$(subst fate-vvc-conformance-,,$(@)).bit $(SCALE_OPTS)
 
 FATE_VVC-$(call FRAMECRC, VVC, VVC, VVC_PARSER) += $(VVC_TESTS_8BIT)
 FATE_VVC-$(call FRAMECRC, VVC, VVC, VVC_PARSER SCALE_FILTER) +=            \