X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libswresample%2Fswresample_test.c;h=d41b964ba4cca43ab58e29890a9e0afdffa1e27c;hb=bba6f5b77f69e0b7fb00b3f346422715fc602f55;hp=61e1b09367346326949cf2a07f6a9bc4133597e2;hpb=41f55277fafeec4f1b3202967bd0ab120948dd69;p=ffmpeg diff --git a/libswresample/swresample_test.c b/libswresample/swresample_test.c index 61e1b093673..d41b964ba4c 100644 --- a/libswresample/swresample_test.c +++ b/libswresample/swresample_test.c @@ -28,10 +28,10 @@ #define ASSERT_LEVEL 2 -static double get(const uint8_t *a[], int ch, int index, int ch_count, enum AVSampleFormat f){ +static double get(uint8_t *a[], int ch, int index, int ch_count, enum AVSampleFormat f){ const uint8_t *p; - if(f>=0x100){ - f&=0xFF; + if(av_sample_fmt_is_planar(f)){ + f= av_get_alt_sample_fmt(f, 0); p= a[ch]; }else{ p= a[0]; @@ -44,14 +44,14 @@ static double get(const uint8_t *a[], int ch, int index, int ch_count, enum AVSa case AV_SAMPLE_FMT_S32: return ((const int32_t*)p)[index]/2147483647.0; case AV_SAMPLE_FMT_FLT: return ((const float *)p)[index]; case AV_SAMPLE_FMT_DBL: return ((const double *)p)[index]; - default: av_assert2(0); + default: av_assert0(0); } } static void set(uint8_t *a[], int ch, int index, int ch_count, enum AVSampleFormat f, double v){ uint8_t *p; - if(f>=0x100){ - f&=0xFF; + if(av_sample_fmt_is_planar(f)){ + f= av_get_alt_sample_fmt(f, 0); p= a[ch]; }else{ p= a[0]; @@ -86,7 +86,7 @@ AV_CH_LAYOUT_7POINT1_WIDE , }; static void setup_array(uint8_t *out[SWR_CH_MAX], uint8_t *in, enum AVSampleFormat format, int samples){ - if(format >= 0x100){ + if(av_sample_fmt_is_planar(format)){ int i; int plane_size= av_get_bytes_per_sample(format&0xFF)*samples; format&=0xFF; @@ -99,7 +99,7 @@ static void setup_array(uint8_t *out[SWR_CH_MAX], uint8_t *in, enum AVSampleForm } int main(int argc, char **argv){ - int in_sample_rate, out_sample_rate, ch ,i, in_ch_layout_index, out_ch_layout_index, osr; + int in_sample_rate, out_sample_rate, ch ,i, in_ch_layout_index, out_ch_layout_index, osr, flush_count; uint64_t in_ch_layout, out_ch_layout; enum AVSampleFormat in_sample_fmt, out_sample_fmt; int sample_rates[]={8000,11025,16000,22050,32000}; @@ -109,7 +109,6 @@ int main(int argc, char **argv){ uint8_t *ain[SWR_CH_MAX]; uint8_t *aout[SWR_CH_MAX]; uint8_t *amid[SWR_CH_MAX]; - int planar_in=256, planar_out=256; struct SwrContext * forw_ctx= NULL; struct SwrContext *backw_ctx= NULL; @@ -120,20 +119,23 @@ int main(int argc, char **argv){ for(in_sample_fmt= AV_SAMPLE_FMT_U8; in_sample_fmt<=AV_SAMPLE_FMT_DBL; in_sample_fmt++){ for(out_sample_fmt= AV_SAMPLE_FMT_U8; out_sample_fmt<=AV_SAMPLE_FMT_DBL; out_sample_fmt++){ for(in_ch_layout_index=0; layouts[in_ch_layout_index]; in_ch_layout_index++){ + int in_ch_count; in_ch_layout= layouts[in_ch_layout_index]; - int in_ch_count= av_get_channel_layout_nb_channels(in_ch_layout); + in_ch_count= av_get_channel_layout_nb_channels(in_ch_layout); for(out_ch_layout_index=0; layouts[out_ch_layout_index]; out_ch_layout_index++){ - int out_count, mid_count; + int out_count, mid_count, out_ch_count; out_ch_layout= layouts[out_ch_layout_index]; - int out_ch_count= av_get_channel_layout_nb_channels(out_ch_layout); + out_ch_count= av_get_channel_layout_nb_channels(out_ch_layout); fprintf(stderr, "ch %d->%d, rate:%5d->%5d, fmt:%s->%s", in_ch_count, out_ch_count, in_sample_rate, out_sample_rate, av_get_sample_fmt_name(in_sample_fmt), av_get_sample_fmt_name(out_sample_fmt)); - forw_ctx = swr_alloc2(forw_ctx, out_ch_layout, out_sample_fmt+planar_out, out_sample_rate, - in_ch_layout, in_sample_fmt+planar_in , in_sample_rate, 0, 0); - backw_ctx = swr_alloc2(backw_ctx,in_ch_layout, in_sample_fmt, in_sample_rate, - out_ch_layout, out_sample_fmt+planar_out, out_sample_rate, 0, 0); + forw_ctx = swr_alloc_set_opts(forw_ctx, out_ch_layout, av_get_alt_sample_fmt(out_sample_fmt, 1), out_sample_rate, + in_ch_layout, av_get_alt_sample_fmt( in_sample_fmt, 1), in_sample_rate, + 0, 0); + backw_ctx = swr_alloc_set_opts(backw_ctx, in_ch_layout, in_sample_fmt, in_sample_rate, + out_ch_layout, av_get_alt_sample_fmt(out_sample_fmt, 1), out_sample_rate, + 0, 0); if(swr_init( forw_ctx) < 0) fprintf(stderr, "swr_init(->) failed\n"); if(swr_init(backw_ctx) < 0) @@ -143,12 +145,12 @@ int main(int argc, char **argv){ if(!backw_ctx) fprintf(stderr, "Failed to init backw_ctx\n"); //FIXME test planar - setup_array(ain , array_in , in_sample_fmt+planar_in , SAMPLES); - setup_array(amid, array_mid, out_sample_fmt+planar_out, 3*SAMPLES); + setup_array(ain , array_in , av_get_alt_sample_fmt( in_sample_fmt, 1), SAMPLES); + setup_array(amid, array_mid, av_get_alt_sample_fmt(out_sample_fmt, 1), 3*SAMPLES); setup_array(aout, array_out, in_sample_fmt , SAMPLES); for(ch=0; ch