1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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>
This commit is contained in:
Andreas Rheinhardt 2021-09-20 22:04:35 +02:00
parent 6b2c1d1018
commit bb98212930

View File

@ -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);