diff mbox series

[FFmpeg-devel] tools/target_dec_fuzzer: force experimental flag for VVC

Message ID 20240314154300.3748-1-jamrial@gmail.com
State New
Headers show
Series [FFmpeg-devel] tools/target_dec_fuzzer: force experimental flag for VVC | expand

Checks

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

Commit Message

James Almer March 14, 2024, 3:43 p.m. UTC
Otherwise the decoder will not even open.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 tools/target_dec_fuzzer.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Michael Niedermayer March 14, 2024, 10:57 p.m. UTC | #1
On Thu, Mar 14, 2024 at 12:43:00PM -0300, James Almer wrote:
> Otherwise the decoder will not even open.
> 
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
>  tools/target_dec_fuzzer.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c
> index 84b646b7f4..459b07070e 100644
> --- a/tools/target_dec_fuzzer.c
> +++ b/tools/target_dec_fuzzer.c
> @@ -176,6 +176,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
>      AVCodecParserContext *parser = NULL;
>      uint64_t keyframes = 0;
>      uint64_t flushpattern = -1;
> +    int strict_std_compliance = 0;
>      AVDictionary *opts = NULL;
>  
>      if (!c) {
> @@ -307,6 +308,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
>      case AV_CODEC_ID_VP6A:        maxpixels  /= 4096;  break;
>      case AV_CODEC_ID_VP7:         maxpixels  /= 256;   break;
>      case AV_CODEC_ID_VP9:         maxpixels  /= 4096;  break;
> +    case AV_CODEC_ID_VVC:         strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;  break;
>      case AV_CODEC_ID_WAVPACK:     maxsamples /= 1024;  break;
>      case AV_CODEC_ID_WCMV:        maxpixels  /= 1024;  break;
>      case AV_CODEC_ID_WMV3IMAGE:   maxpixels  /= 8192;  break;
> @@ -333,6 +335,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
>  
>      ctx->max_samples = maxsamples_per_frame;
>      ctx->get_buffer2 = fuzz_get_buffer2;
> +    ctx->strict_std_compliance = strict_std_compliance;
>  
>      if (size > 1024) {
>          GetByteContext gbc;

I think this should look more like

if( decoder is AV_CODEC_CAP_EXPERIMENTAL && strict_std_compliance too high)
    strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL

i would not expect to see a check for AV_CODEC_ID_VVC in the patch

thx

[...]
diff mbox series

Patch

diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c
index 84b646b7f4..459b07070e 100644
--- a/tools/target_dec_fuzzer.c
+++ b/tools/target_dec_fuzzer.c
@@ -176,6 +176,7 @@  int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
     AVCodecParserContext *parser = NULL;
     uint64_t keyframes = 0;
     uint64_t flushpattern = -1;
+    int strict_std_compliance = 0;
     AVDictionary *opts = NULL;
 
     if (!c) {
@@ -307,6 +308,7 @@  int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
     case AV_CODEC_ID_VP6A:        maxpixels  /= 4096;  break;
     case AV_CODEC_ID_VP7:         maxpixels  /= 256;   break;
     case AV_CODEC_ID_VP9:         maxpixels  /= 4096;  break;
+    case AV_CODEC_ID_VVC:         strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL;  break;
     case AV_CODEC_ID_WAVPACK:     maxsamples /= 1024;  break;
     case AV_CODEC_ID_WCMV:        maxpixels  /= 1024;  break;
     case AV_CODEC_ID_WMV3IMAGE:   maxpixels  /= 8192;  break;
@@ -333,6 +335,7 @@  int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
 
     ctx->max_samples = maxsamples_per_frame;
     ctx->get_buffer2 = fuzz_get_buffer2;
+    ctx->strict_std_compliance = strict_std_compliance;
 
     if (size > 1024) {
         GetByteContext gbc;