diff options
author | Mallikarjun Kamble <mallikarjun.kamble@ittiam.com> | 2023-02-14 14:57:11 +0530 |
---|---|---|
committer | Harish Mahendrakar <harish.mahendrakar@ittiam.com> | 2023-02-14 21:55:58 -0800 |
commit | 8739b7da75f305ab391eb36c613210c23243fe5b (patch) | |
tree | bb5ffbd0a91f917396fb5428512dfd710810f31a | |
parent | 764ab7b702142762bfa9c4e93427c6e494ff7940 (diff) | |
download | libavc-8739b7da75f305ab391eb36c613210c23243fe5b.tar.gz |
svcdec: Limit min dimensions supported to 32x32
Also added macros for svc decoder max dimensions as well
BUG=oss-fuzz:55874, 55876, 55877, 55888, 55905 and 55911
Test: svc_dec_fuzzer
-rw-r--r-- | decoder/svc/isvcd_defs.h | 7 | ||||
-rw-r--r-- | decoder/svc/isvcd_parse_headers.c | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/decoder/svc/isvcd_defs.h b/decoder/svc/isvcd_defs.h index 77d6554..4162713 100644 --- a/decoder/svc/isvcd_defs.h +++ b/decoder/svc/isvcd_defs.h @@ -49,6 +49,13 @@ typedef enum #define FLUSH 2 +#define SVCD_MAX_FRAME_WIDTH 4080 +#define SVCD_MAX_FRAME_HEIGHT 4080 +#define SVCD_MAX_FRAME_SIZE (4096 * 2048) + +#define SVCD_MIN_FRAME_WIDTH 32 +#define SVCD_MIN_FRAME_HEIGHT 32 + #define SCALABLE_BASELINE_PROFILE_IDC 83 #define SCALABLE_HIGH_PROFILE_IDC 86 #define SCALABLE_HIGH_INTRA_IDC 118 diff --git a/decoder/svc/isvcd_parse_headers.c b/decoder/svc/isvcd_parse_headers.c index 7be48c7..6c3e9fb 100644 --- a/decoder/svc/isvcd_parse_headers.c +++ b/decoder/svc/isvcd_parse_headers.c @@ -564,9 +564,9 @@ WORD32 isvcd_parse_subset_sps(svc_dec_lyr_struct_t *ps_svc_lyr_dec, dec_bit_stre return IVD_RES_CHANGED; } /* Check again for unsupported resolutions with updated values*/ - if((u2_pic_wd > H264_MAX_FRAME_WIDTH) || (u2_pic_ht > H264_MAX_FRAME_HEIGHT) || - (u2_pic_wd < H264_MIN_FRAME_WIDTH) || (u2_pic_ht < H264_MIN_FRAME_HEIGHT) || - (u2_pic_wd * (UWORD32) u2_pic_ht > H264_MAX_FRAME_SIZE)) + if((u2_pic_wd > SVCD_MAX_FRAME_WIDTH) || (u2_pic_ht > SVCD_MAX_FRAME_HEIGHT) || + (u2_pic_wd < SVCD_MIN_FRAME_WIDTH) || (u2_pic_ht < SVCD_MIN_FRAME_HEIGHT) || + (u2_pic_wd * (UWORD32) u2_pic_ht > SVCD_MAX_FRAME_SIZE)) { return IVD_STREAM_WIDTH_HEIGHT_NOT_SUPPORTED; } @@ -1540,9 +1540,9 @@ WORD32 isvcd_parse_sps(svc_dec_lyr_struct_t *ps_svc_lyr_dec, dec_bit_stream_t *p return IVD_RES_CHANGED; } /* Check again for unsupported resolutions with updated values*/ - if((u2_pic_wd > H264_MAX_FRAME_WIDTH) || (u2_pic_ht > H264_MAX_FRAME_HEIGHT) || - (u2_pic_wd < H264_MIN_FRAME_WIDTH) || (u2_pic_ht < H264_MIN_FRAME_HEIGHT) || - (u2_pic_wd * (UWORD32) u2_pic_ht > H264_MAX_FRAME_SIZE)) + if((u2_pic_wd > SVCD_MAX_FRAME_WIDTH) || (u2_pic_ht > SVCD_MAX_FRAME_HEIGHT) || + (u2_pic_wd < SVCD_MIN_FRAME_WIDTH) || (u2_pic_ht < SVCD_MIN_FRAME_HEIGHT) || + (u2_pic_wd * (UWORD32) u2_pic_ht > SVCD_MAX_FRAME_SIZE)) { return IVD_STREAM_WIDTH_HEIGHT_NOT_SUPPORTED; } |