diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-02-14 00:53:51 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-02-18 16:38:09 +0100 |
commit | bf82b6517e5357c9ac4f2e3fbc9d017f95575ab6 (patch) | |
tree | cd67c982fc8a09b9cd3921e26adb4d06d386347f /libavfilter | |
parent | eeb99dcb51f2c985abb53a8920fdd165a7d4863f (diff) | |
download | ffmpeg-bf82b6517e5357c9ac4f2e3fbc9d017f95575ab6.tar.gz |
avfilter/signature_lookup: Allocate buffers jointly
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/signature_lookup.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/libavfilter/signature_lookup.c b/libavfilter/signature_lookup.c index 90b1d0eadf..3a42737e1a 100644 --- a/libavfilter/signature_lookup.c +++ b/libavfilter/signature_lookup.c @@ -205,15 +205,17 @@ static MatchingInfo* get_matching_parameters(AVFilterContext *ctx, SignatureCont } hspace_elem; /* houghspace */ - hspace_elem **hspace = av_mallocz(MAX_FRAMERATE * sizeof(*hspace)); + hspace_elem **hspace = av_malloc(MAX_FRAMERATE * sizeof(*hspace)); + hspace_elem *hspaces; if (!hspace) return NULL; /* initialize houghspace */ + hspaces = av_malloc((2 * HOUGH_MAX_OFFSET + 1) * sizeof(*hspaces) * MAX_FRAMERATE); + if (!hspaces) + goto error; for (i = 0; i < MAX_FRAMERATE; i++) { - hspace[i] = av_malloc_array(2 * HOUGH_MAX_OFFSET + 1, sizeof(hspace_elem)); - if (!hspace[i]) - goto error; + hspace[i] = hspaces + i * (2 * HOUGH_MAX_OFFSET + 1); for (j = 0; j < 2 * HOUGH_MAX_OFFSET + 1; j++) { hspace[i][j].score = 0; hspace[i][j].dist = 99999; @@ -325,10 +327,8 @@ static MatchingInfo* get_matching_parameters(AVFilterContext *ctx, SignatureCont } } error: - for (i = 0; i < MAX_FRAMERATE; i++) { - av_freep(&hspace[i]); - } av_freep(&hspace); + av_free(hspaces); return cands; } |