[FFmpeg-cvslog] avfilter/signature_lookup: Allocate buffers jointly
Andreas Rheinhardt
git at videolan.org
Sun Feb 18 17:49:42 EET 2024
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Wed Feb 14 00:53:51 2024 +0100| [bf82b6517e5357c9ac4f2e3fbc9d017f95575ab6] | committer: Andreas Rheinhardt
avfilter/signature_lookup: Allocate buffers jointly
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=bf82b6517e5357c9ac4f2e3fbc9d017f95575ab6
---
libavfilter/signature_lookup.c | 14 +++++++-------
1 file 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;
}
More information about the ffmpeg-cvslog
mailing list