avfilter/signature_lookup: Allocate buffers jointly
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@@ -205,15 +205,17 @@ static MatchingInfo* get_matching_parameters(AVFilterContext *ctx, SignatureCont
|
|||||||
} hspace_elem;
|
} hspace_elem;
|
||||||
|
|
||||||
/* houghspace */
|
/* houghspace */
|
||||||
hspace_elem **hspace = av_mallocz(MAX_FRAMERATE * sizeof(*hspace));
|
hspace_elem **hspace = av_malloc(MAX_FRAMERATE * sizeof(*hspace));
|
||||||
|
hspace_elem *hspaces;
|
||||||
|
|
||||||
if (!hspace)
|
if (!hspace)
|
||||||
return NULL;
|
return NULL;
|
||||||
/* initialize houghspace */
|
/* 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++) {
|
for (i = 0; i < MAX_FRAMERATE; i++) {
|
||||||
hspace[i] = av_malloc_array(2 * HOUGH_MAX_OFFSET + 1, sizeof(hspace_elem));
|
hspace[i] = hspaces + i * (2 * HOUGH_MAX_OFFSET + 1);
|
||||||
if (!hspace[i])
|
|
||||||
goto error;
|
|
||||||
for (j = 0; j < 2 * HOUGH_MAX_OFFSET + 1; j++) {
|
for (j = 0; j < 2 * HOUGH_MAX_OFFSET + 1; j++) {
|
||||||
hspace[i][j].score = 0;
|
hspace[i][j].score = 0;
|
||||||
hspace[i][j].dist = 99999;
|
hspace[i][j].dist = 99999;
|
||||||
@@ -325,10 +327,8 @@ static MatchingInfo* get_matching_parameters(AVFilterContext *ctx, SignatureCont
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
error:
|
error:
|
||||||
for (i = 0; i < MAX_FRAMERATE; i++) {
|
|
||||||
av_freep(&hspace[i]);
|
|
||||||
}
|
|
||||||
av_freep(&hspace);
|
av_freep(&hspace);
|
||||||
|
av_free(hspaces);
|
||||||
return cands;
|
return cands;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user