[FFmpeg-cvslog] lavr: do not pass sample count as a parameter to ff_audio_convert()

Justin Ruggles git at videolan.org
Wed Nov 28 13:31:25 CET 2012


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Thu Nov  1 00:44:11 2012 -0400| [7f534d11ed37dd03cbaa73eefbfa75696ff04f58] | committer: Justin Ruggles

lavr: do not pass sample count as a parameter to ff_audio_convert()

It will always be the number of samples in the input buffer, so just use that
directly instead of passing it as a separate parameter.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7f534d11ed37dd03cbaa73eefbfa75696ff04f58
---

 libavresample/audio_convert.c |    3 ++-
 libavresample/audio_convert.h |    7 +++++--
 libavresample/utils.c         |    9 ++++-----
 3 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/libavresample/audio_convert.c b/libavresample/audio_convert.c
index e9835c8..dcf8a39 100644
--- a/libavresample/audio_convert.c
+++ b/libavresample/audio_convert.c
@@ -284,9 +284,10 @@ AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr,
     return ac;
 }
 
-int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in, int len)
+int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in)
 {
     int use_generic = 1;
+    int len         = in->nb_samples;
 
     /* determine whether to use the optimized function based on pointer and
        samples alignment in both the input and output */
diff --git a/libavresample/audio_convert.h b/libavresample/audio_convert.h
index 2b8bfac..bc27223 100644
--- a/libavresample/audio_convert.h
+++ b/libavresample/audio_convert.h
@@ -72,13 +72,16 @@ AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr,
  * examined to determine whether to use the generic or optimized conversion
  * function (when available).
  *
+ * The number of samples to convert is determined by in->nb_samples. The output
+ * buffer must be large enough to handle this many samples. out->nb_samples is
+ * set by this function before a successful return.
+ *
  * @param ac     AudioConvert context
  * @param out    output audio data
  * @param in     input audio data
- * @param len    number of samples to convert
  * @return       0 on success, negative AVERROR code on failure
  */
-int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in, int len);
+int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in);
 
 /* arch-specific initialization functions */
 
diff --git a/libavresample/utils.c b/libavresample/utils.c
index 2d15e37..20b5fb1 100644
--- a/libavresample/utils.c
+++ b/libavresample/utils.c
@@ -313,8 +313,8 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
                 if (ret < 0)
                     return ret;
                 av_dlog(avr, "[convert] %s to in_buffer\n", current_buffer->name);
-                ret = ff_audio_convert(avr->ac_in, avr->in_buffer, current_buffer,
-                                       current_buffer->nb_samples);
+                ret = ff_audio_convert(avr->ac_in, avr->in_buffer,
+                                       current_buffer);
                 if (ret < 0)
                     return ret;
             } else {
@@ -381,8 +381,7 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
         if (direct_output && out_samples >= current_buffer->nb_samples) {
             /* convert directly to output */
             av_dlog(avr, "[convert] %s to output\n", current_buffer->name);
-            ret = ff_audio_convert(avr->ac_out, &output_buffer, current_buffer,
-                                   current_buffer->nb_samples);
+            ret = ff_audio_convert(avr->ac_out, &output_buffer, current_buffer);
             if (ret < 0)
                 return ret;
 
@@ -395,7 +394,7 @@ int attribute_align_arg avresample_convert(AVAudioResampleContext *avr,
                 return ret;
             av_dlog(avr, "[convert] %s to out_buffer\n", current_buffer->name);
             ret = ff_audio_convert(avr->ac_out, avr->out_buffer,
-                                   current_buffer, current_buffer->nb_samples);
+                                   current_buffer);
             if (ret < 0)
                 return ret;
             current_buffer = avr->out_buffer;



More information about the ffmpeg-cvslog mailing list