diff options
author | Tim Walker <[email protected]> | 2018-02-26 01:02:03 +0100 |
---|---|---|
committer | Tim Walker <[email protected]> | 2018-02-26 01:02:03 +0100 |
commit | a9b38adc6a677ec23bf9bfd2c77ccfbe190da176 (patch) | |
tree | e911f9fa56568c2bd6d1bbf7a9cc2e5ec4664f72 /libhb | |
parent | 5e512f53b7c4970718a3ca57c348a254aaacd735 (diff) |
libhb: fix parsing of filters' tunes.
filter_param_get_entry() was using the preset count for bounds checking.
Diffstat (limited to 'libhb')
-rw-r--r-- | libhb/param.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/libhb/param.c b/libhb/param.c index 764ea5820..90d2debc1 100644 --- a/libhb/param.c +++ b/libhb/param.c @@ -175,36 +175,40 @@ typedef struct int filter_id; hb_filter_param_t *presets; hb_filter_param_t *tunes; - int count; + int preset_count; + int tune_count; } filter_param_map_t; static filter_param_map_t param_map[] = { { HB_FILTER_NLMEANS, nlmeans_presets, nlmeans_tunes, - sizeof(nlmeans_presets) / sizeof(hb_filter_param_t) }, + sizeof(nlmeans_presets) / sizeof(hb_filter_param_t), + sizeof(nlmeans_tunes) / sizeof(hb_filter_param_t), }, { HB_FILTER_HQDN3D, hqdn3d_presets, NULL, - sizeof(hqdn3d_presets) / sizeof(hb_filter_param_t) }, + sizeof(hqdn3d_presets) / sizeof(hb_filter_param_t), 0, }, { HB_FILTER_UNSHARP, unsharp_presets, unsharp_tunes, - sizeof(unsharp_presets) / sizeof(hb_filter_param_t) }, + sizeof(unsharp_presets) / sizeof(hb_filter_param_t), + sizeof(unsharp_tunes) / sizeof(hb_filter_param_t), }, { HB_FILTER_LAPSHARP, lapsharp_presets, lapsharp_tunes, - sizeof(lapsharp_presets) / sizeof(hb_filter_param_t) }, + sizeof(lapsharp_presets) / sizeof(hb_filter_param_t), + sizeof(lapsharp_tunes) / sizeof(hb_filter_param_t), }, { HB_FILTER_DETELECINE, detelecine_presets, NULL, - sizeof(detelecine_presets) / sizeof(hb_filter_param_t) }, + sizeof(detelecine_presets) / sizeof(hb_filter_param_t), 0, }, { HB_FILTER_COMB_DETECT, comb_detect_presets, NULL, - sizeof(decomb_presets) / sizeof(hb_filter_param_t) }, + sizeof(decomb_presets) / sizeof(hb_filter_param_t), 0, }, { HB_FILTER_DECOMB, decomb_presets, NULL, - sizeof(decomb_presets) / sizeof(hb_filter_param_t) }, + sizeof(decomb_presets) / sizeof(hb_filter_param_t), 0, }, { HB_FILTER_DEINTERLACE, deinterlace_presets, NULL, - sizeof(deinterlace_presets) / sizeof(hb_filter_param_t) }, + sizeof(deinterlace_presets) / sizeof(hb_filter_param_t), 0, }, - { HB_FILTER_INVALID, NULL, NULL, 0 } + { HB_FILTER_INVALID, NULL, NULL, 0, 0, }, }; void hb_param_configure_qsv(void) @@ -949,7 +953,7 @@ filter_param_get_presets_internal(int filter_id, int *count) { if (count != NULL) { - *count = param_map[ii].count; + *count = param_map[ii].preset_count; } return param_map[ii].presets; } @@ -972,7 +976,7 @@ filter_param_get_tunes_internal(int filter_id, int *count) { if (count != NULL) { - *count = param_map[ii].count; + *count = param_map[ii].tune_count; } return param_map[ii].tunes; } |