Message ID | 20240823123659.5739-1-post@frankplowman.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] lavc/vvc: Remove experimental flag | expand |
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 |
tsan reports races in the decoder, it would be nice if someone could look at them before this goes in.
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.
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 >
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". >
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". >> >
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". >>> >>
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 --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) += \
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(-)