mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-14 00:58:38 +02:00
avfilter/af_sofalizer: pick IR length after loading sofa
Instead of picking it in preloading stage.
This commit is contained in:
parent
b13fe6477d
commit
0c3481b43a
@ -113,7 +113,6 @@ static int close_sofa(struct MySofa *sofa)
|
|||||||
|
|
||||||
static int preload_sofa(AVFilterContext *ctx, char *filename, int *samplingrate)
|
static int preload_sofa(AVFilterContext *ctx, char *filename, int *samplingrate)
|
||||||
{
|
{
|
||||||
struct SOFAlizerContext *s = ctx->priv;
|
|
||||||
struct MYSOFA_HRTF *mysofa;
|
struct MYSOFA_HRTF *mysofa;
|
||||||
char *license;
|
char *license;
|
||||||
int ret;
|
int ret;
|
||||||
@ -126,9 +125,8 @@ static int preload_sofa(AVFilterContext *ctx, char *filename, int *samplingrate)
|
|||||||
|
|
||||||
if (mysofa->DataSamplingRate.elements != 1)
|
if (mysofa->DataSamplingRate.elements != 1)
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
av_log(ctx, AV_LOG_DEBUG, "Original IR length: %d.\n", mysofa->N);
|
||||||
*samplingrate = mysofa->DataSamplingRate.values[0];
|
*samplingrate = mysofa->DataSamplingRate.values[0];
|
||||||
s->sofa.ir_samples = mysofa->N;
|
|
||||||
s->sofa.n_samples = 1 << (32 - ff_clz(s->sofa.ir_samples));
|
|
||||||
license = mysofa_getAttribute(mysofa->attributes, (char *)"License");
|
license = mysofa_getAttribute(mysofa->attributes, (char *)"License");
|
||||||
if (license)
|
if (license)
|
||||||
av_log(ctx, AV_LOG_INFO, "SOFA license: %s\n", license);
|
av_log(ctx, AV_LOG_INFO, "SOFA license: %s\n", license);
|
||||||
@ -591,6 +589,10 @@ static int load_data(AVFilterContext *ctx, int azim, int elev, float radius, int
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
av_log(ctx, AV_LOG_DEBUG, "IR length: %d.\n", s->sofa.easy->hrtf->N);
|
||||||
|
s->sofa.ir_samples = s->sofa.easy->hrtf->N;
|
||||||
|
s->sofa.n_samples = 1 << (32 - ff_clz(s->sofa.ir_samples));
|
||||||
|
|
||||||
n_samples = s->sofa.n_samples;
|
n_samples = s->sofa.n_samples;
|
||||||
ir_samples = s->sofa.ir_samples;
|
ir_samples = s->sofa.ir_samples;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user