History

swr: add set_audiodata_fmt() and use it to simplify code

Michael Niedermayer committed 14 years ago

Commit 2d6c29f1 parent 65722e72 files · +11 −11Browse files

Unified · Split

2 files
  1. libswresample/swresample.c +11 −10
  2. libswresample/swresample_internal.h +0 −1
libswresample/swresample.c+11−10
@@ -153,6 +153,10 @@ struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, · 152 unmodified lines
153153 return s;
154154 }
155155
156+static void set_audiodata_fmt(AudioData *a, enum AVSampleFormat fmt){
157+ a->bps = av_get_bytes_per_sample(fmt);
158+ a->planar= av_sample_fmt_is_planar(fmt);
159+}
156160
157161 static void free_temp(AudioData *a){
158162 av_free(a->data);
@@ -191,9 +195,6 @@ int swr_init(struct SwrContext *s){ · 32 unmodified lines
191195
192196 s->flushed = 0;
193197
194− s-> in.planar= av_sample_fmt_is_planar(s-> in_sample_fmt);
195− s->out.planar= av_sample_fmt_is_planar(s->out_sample_fmt);
196−
197198 if(s-> in_sample_fmt >= AV_SAMPLE_FMT_NB){
198199 av_log(s, AV_LOG_ERROR, "Requested input sample format %d is invalid\n", s->in_sample_fmt);
199200 return AVERROR(EINVAL);
@@ -216,6 +217,9 @@ int swr_init(struct SwrContext *s){ · 16 unmodified lines
216217 return AVERROR(EINVAL);
217218 }
218219
220+ set_audiodata_fmt(&s-> in, s-> in_sample_fmt);
221+ set_audiodata_fmt(&s->out, s->out_sample_fmt);
222+
219223 if (s->out_sample_rate!=s->in_sample_rate || (s->flags & SWR_FLAG_RESAMPLE)){
220224 s->resample = swri_resample_init(s->resample, s->out_sample_rate, s->in_sample_rate, s->filter_size, s->phase_shift, s->linear_interp, s->cutoff, s->int_sample_fmt);
221225 }else
@@ -267,9 +271,6 @@ av_assert0(s->used_ch_count); · 45 unmodified lines
267271 av_assert0(s->out.ch_count);
268272 s->resample_first= RSC*s->out.ch_count/s->in.ch_count - RSC < s->out_sample_rate/(float)s-> in_sample_rate - 1.0;
269273
270− s-> in.bps= av_get_bytes_per_sample(s-> in_sample_fmt);
271− s->int_bps= av_get_bytes_per_sample(s->int_sample_fmt);
272− s->out.bps= av_get_bytes_per_sample(s->out_sample_fmt);
273274 s->in_buffer= s->in;
274275
275276 if(!s->resample && !s->rematrix && !s->channel_map){
@@ -300,12 +301,12 @@ av_assert0(s->out.ch_count); · 24 unmodified lines
300301 s->in_buffer.ch_count = s->out.ch_count;
301302 }
302303
303− s->postin.bps = s->midbuf.bps = s->preout.bps = s->int_bps;
304− s->postin.planar = s->midbuf.planar = s->preout.planar = 1;
304+ set_audiodata_fmt(&s->postin, s->int_sample_fmt);
305+ set_audiodata_fmt(&s->midbuf, s->int_sample_fmt);
306+ set_audiodata_fmt(&s->preout, s->int_sample_fmt);
305307
306308 if(s->resample){
307− s->in_buffer.bps = s->int_bps;
308− s->in_buffer.planar = 1;
309+ set_audiodata_fmt(&s->in_buffer, s->int_sample_fmt);
309310 }
310311
311312 s->dither = s->preout;
libswresample/swresample_internal.h+0−1
@@ -57,7 +57,6 @@ struct SwrContext { · 56 unmodified lines
5757 int linear_interp; /**< if 1 then the resampling FIR filter will be linearly interpolated */
5858 double cutoff; /**< resampling cutoff frequency. 1.0 corresponds to half the output sample rate */
5959
60− int int_bps; ///< internal bytes per sample
6160 int resample_first; ///< 1 if resampling must come first, 0 if rematrixing
6261 int rematrix; ///< flag to indicate if rematrixing is needed (basically if input and output layouts mismatch)
6362 int rematrix_custom; ///< flag to indicate that a custom matrix has been defined

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t