aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMallikarjun Kamble <mallikarjun.kamble@ittiam.com>2023-02-14 14:57:11 +0530
committerHarish Mahendrakar <harish.mahendrakar@ittiam.com>2023-02-14 21:55:58 -0800
commit8739b7da75f305ab391eb36c613210c23243fe5b (patch)
treebb5ffbd0a91f917396fb5428512dfd710810f31a
parent764ab7b702142762bfa9c4e93427c6e494ff7940 (diff)
downloadlibavc-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.h7
-rw-r--r--decoder/svc/isvcd_parse_headers.c12
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;
}