aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-20 22:04:35 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-09-24 00:01:49 +0200
commitbb98212930721f223fb77f25c3c9e016640f9c9b (patch)
tree0cb1800ea21337408082988f9d6a23bf2694aceb
parent6b2c1d10185592442988ec5332ac57eb48dea4b6 (diff)
downloadffmpeg-bb98212930721f223fb77f25c3c9e016640f9c9b.tar.gz
avcodec/elbg: Mark ELBGContext as being unaliased by using av_restrict
This improves performance: For msvideo1, the performance improved by 4.8% when encoding the sample from the fate-vsynth1-msvideo1 test; when encoding the sample from fate-vsynth1-cinepak, performance improved by 2%. The compiler user was GCC 10 and the calls to encode2 have been timed. Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/elbg.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/elbg.c b/libavcodec/elbg.c
index 712c125a58..d97a7bc3f9 100644
--- a/libavcodec/elbg.c
+++ b/libavcodec/elbg.c
@@ -346,7 +346,7 @@ static void do_shiftings(ELBGContext *elbg)
}
}
-static void do_elbg(ELBGContext *elbg, int *points, int numpoints,
+static void do_elbg(ELBGContext *av_restrict elbg, int *points, int numpoints,
int max_steps)
{
int *const size_part = elbg->size_part;
@@ -419,7 +419,7 @@ static void do_elbg(ELBGContext *elbg, int *points, int numpoints,
* If not, it calls do_elbg for a (smaller) random sample of the points in
* points.
*/
-static void init_elbg(ELBGContext *elbg, int *points, int *temp_points,
+static void init_elbg(ELBGContext *av_restrict elbg, int *points, int *temp_points,
int numpoints, int max_steps)
{
int dim = elbg->dim;
@@ -447,7 +447,7 @@ int avpriv_elbg_do(ELBGContext **elbgp, int *points, int dim, int numpoints,
int *codebook, int num_cb, int max_steps,
int *closest_cb, AVLFG *rand_state, uintptr_t flags)
{
- ELBGContext *const elbg = *elbgp ? *elbgp : av_mallocz(sizeof(*elbg));
+ ELBGContext *const av_restrict elbg = *elbgp ? *elbgp : av_mallocz(sizeof(*elbg));
if (!elbg)
return AVERROR(ENOMEM);