Browse Source

swr: automatically choose s16/flt/dbl to preserve input precision unless user overrides.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.11
Michael Niedermayer 13 years ago
parent
commit
33f7033452
1 changed files with 10 additions and 5 deletions
  1. +10
    -5
      libswresample/swresample.c

+ 10
- 5
libswresample/swresample.c View File

@@ -208,11 +208,16 @@ int swr_init(struct SwrContext *s){
return AVERROR(EINVAL);
}

//FIXME should we allow/support using FLT on material that doesnt need it ?
if(av_get_planar_sample_fmt(s->in_sample_fmt) <= AV_SAMPLE_FMT_S16P || s->int_sample_fmt==AV_SAMPLE_FMT_S16P){
s->int_sample_fmt= AV_SAMPLE_FMT_S16P;
}else
s->int_sample_fmt= AV_SAMPLE_FMT_FLTP;
if(s->int_sample_fmt == AV_SAMPLE_FMT_NONE){
if(av_get_planar_sample_fmt(s->in_sample_fmt) <= AV_SAMPLE_FMT_S16P){
s->int_sample_fmt= AV_SAMPLE_FMT_S16P;
}else if(av_get_planar_sample_fmt(s->in_sample_fmt) <= AV_SAMPLE_FMT_FLTP){
s->int_sample_fmt= AV_SAMPLE_FMT_FLTP;
}else{
av_log(s, AV_LOG_DEBUG, "Using double precission mode\n");
s->int_sample_fmt= AV_SAMPLE_FMT_DBLP;
}
}

if( s->int_sample_fmt != AV_SAMPLE_FMT_S16P
&&s->int_sample_fmt != AV_SAMPLE_FMT_S32P


Loading…
Cancel
Save