mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-24 11:49:48 +00:00
swr: pass context to swri_get_dither()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
f8a237a307
commit
a2c92e6063
@ -21,7 +21,7 @@
|
||||
#include "libavutil/avassert.h"
|
||||
#include "swresample_internal.h"
|
||||
|
||||
void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, enum SwrDitherType method) {
|
||||
void swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt) {
|
||||
double scale = 0;
|
||||
#define TMP_EXTRA 2
|
||||
double *tmp = av_malloc((len + TMP_EXTRA) * sizeof(double));
|
||||
@ -40,7 +40,7 @@ void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_
|
||||
double v;
|
||||
seed = seed* 1664525 + 1013904223;
|
||||
|
||||
switch(method){
|
||||
switch(s->dither_method){
|
||||
case SWR_DITHER_RECTANGULAR: v= ((double)seed) / UINT_MAX - 0.5; break;
|
||||
case SWR_DITHER_TRIANGULAR :
|
||||
case SWR_DITHER_TRIANGULAR_HIGHPASS :
|
||||
@ -56,7 +56,7 @@ void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_
|
||||
for(i=0; i<len; i++){
|
||||
double v;
|
||||
|
||||
switch(method){
|
||||
switch(s->dither_method){
|
||||
case SWR_DITHER_RECTANGULAR:
|
||||
case SWR_DITHER_TRIANGULAR :
|
||||
v = tmp[i];
|
||||
|
@ -527,7 +527,7 @@ static int swr_convert_internal(struct SwrContext *s, AudioData *out, int out_co
|
||||
return ret;
|
||||
if(ret)
|
||||
for(ch=0; ch<s->dither.ch_count; ch++)
|
||||
swri_get_dither(s->dither.ch[ch], s->dither.count, 12345678913579<<ch, s->out_sample_fmt, s->int_sample_fmt, s->dither_method);
|
||||
swri_get_dither(s, s->dither.ch[ch], s->dither.count, 12345678913579<<ch, s->out_sample_fmt, s->int_sample_fmt);
|
||||
av_assert0(s->dither.ch_count == preout->ch_count);
|
||||
|
||||
if(s->dither_pos + out_count > s->dither.count)
|
||||
|
@ -94,6 +94,6 @@ int swri_rematrix_init(SwrContext *s);
|
||||
int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mustcopy);
|
||||
void swri_sum2(enum AVSampleFormat format, void *dst, const void *src0, const void *src1, float coef0, float coef1, int len);
|
||||
|
||||
void swri_get_dither(void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, enum SwrDitherType type);
|
||||
void swri_get_dither(SwrContext *s, void *dst, int len, unsigned seed, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user