[FFmpeg-devel] [PATCH 07/10] swr: start doxycommenting the API.

Clément Bœsch ubitux at gmail.com
Wed Nov 16 21:50:54 CET 2011


---
 libswresample/swresample_internal.h |   82 +++++++++++++++++++----------------
 1 files changed, 45 insertions(+), 37 deletions(-)

diff --git a/libswresample/swresample_internal.h b/libswresample/swresample_internal.h
index f1f548a..871424e 100644
--- a/libswresample/swresample_internal.h
+++ b/libswresample/swresample_internal.h
@@ -24,50 +24,57 @@
 #include "swresample.h"
 
 typedef struct AudioData{
-    uint8_t *ch[SWR_CH_MAX];
-    uint8_t *data;
-    int ch_count;
-    int bps;
-    int count;
-    int planar;
+    uint8_t *ch[SWR_CH_MAX];    ///< samples buffer per channel
+    uint8_t *data;              ///< samples buffer
+    int ch_count;               ///< number of channels
+    int bps;                    ///< bytes per sample
+    int count;                  ///< number of samples
+    int planar;                 ///< 1 if planar audio, 0 otherwise
 } AudioData;
 
-typedef struct SwrContext {          //FIXME find unused fields
-    const AVClass *av_class;
-    int log_level_offset;
-    void *log_ctx;
-    enum AVSampleFormat  in_sample_fmt;
-    enum AVSampleFormat int_sample_fmt; ///<AV_SAMPLE_FMT_FLT OR AV_SAMPLE_FMT_S16
-    enum AVSampleFormat out_sample_fmt;
-    int64_t  in_ch_layout;
-    int64_t out_ch_layout;
-    int      in_sample_rate;
-    int     out_sample_rate;
-    int flags;
-    float slev, clev, rematrix_volume;
-    const int *channel_map;             ///< channel index (or -1 if muted channel) map
-    int used_ch_count;                  ///< number of used channels (mapped channel count if channel_map, otherwise in.ch_count)
+typedef struct SwrContext {
+    const AVClass *av_class;                        ///< AVClass used for AVOption and av_log()
+    int log_level_offset;                           ///< logging level offset
+    void *log_ctx;                                  ///< logging context
+    enum AVSampleFormat  in_sample_fmt;             ///< input sample format
+    enum AVSampleFormat int_sample_fmt;             ///< internal sample format (AV_SAMPLE_FMT_FLT or AV_SAMPLE_FMT_S16)
+    enum AVSampleFormat out_sample_fmt;             ///< output sample format
+    int64_t  in_ch_layout;                          ///< input channel layout
+    int64_t out_ch_layout;                          ///< output channel layout
+    int      in_sample_rate;                        ///< input sample rate
+    int     out_sample_rate;                        ///< output sample rate
+    int flags;                                      ///< miscellaneous flags such as SWR_FLAG_RESAMPLE
+    float slev;                                     ///< surround mixing level, XXX: unused
+    float clev;                                     ///< center mixing level
+    float rematrix_volume;                          ///< used to set a different rematrixing volume than 1.0
+    const int *channel_map;                         ///< channel index (or -1 if muted channel) map
+    int used_ch_count;                              ///< number of used channels (mapped channel count if channel_map, otherwise in.ch_count)
 
-    //below are private
-    int int_bps;
-    int resample_first;
-    int rematrix;                   ///< flag to indicate if rematrixing is used
+    /* private fields */
+    int int_bps;                                    ///< internal bytes per sample
+    int resample_first;                             ///< 1 if resampling must come first, 0 if rematrixing
+    int rematrix;                                   ///< flag to indicate if rematrixing is needed (basically if input and output layouts mismatch)
 
-    AudioData in, postin, midbuf, preout, out, in_buffer;
-    int in_buffer_index;
-    int in_buffer_count;
-    int resample_in_constraint;
+    AudioData in;                                   ///< input audio data
+    AudioData postin;                               ///< post-input audio data: used for rematrix/resample
+    AudioData midbuf;                               ///< intermediate audio data (postin/preout)
+    AudioData preout;                               ///< pre-output audio data: used for rematrix/resample
+    AudioData out;                                  ///< converted output audio data
+    AudioData in_buffer;                            ///< cached audio data (convert and resample purpose)
+    int in_buffer_index;                            ///< cached buffer position
+    int in_buffer_count;                            ///< cached buffer length
+    int resample_in_constraint;                     ///< 1 if the input end was reach before the output end, 0 otherwise
 
-    struct SwrAudioConvert *in_convert;
-    struct SwrAudioConvert *out_convert;
-    struct SwrAudioConvert *full_convert;
-    struct ResampleContext *resample;
+    struct SwrAudioConvert *in_convert;             ///< input conversion context
+    struct SwrAudioConvert *out_convert;            ///< output conversion context
+    struct SwrAudioConvert *full_convert;           ///< full conversion context (single conversion for input and output)
+    struct ResampleContext *resample;               ///< resampling context
 
-    float matrix[SWR_CH_MAX][SWR_CH_MAX];
-    int32_t matrix32[SWR_CH_MAX][SWR_CH_MAX];
-    uint8_t matrix_ch[SWR_CH_MAX][SWR_CH_MAX+1];
+    float   matrix   [SWR_CH_MAX][SWR_CH_MAX  ];    ///< float channel levels squared matrix for rematrixing
+    int32_t matrix32 [SWR_CH_MAX][SWR_CH_MAX  ];    ///< integer channel levels squared matrix for rematrixing
+    uint8_t matrix_ch[SWR_CH_MAX][SWR_CH_MAX+1];    ///< channel matrix for rematrixing
 
-    //TODO callbacks for asm optims
+    /* TODO: callbacks for ASM optimizations */
 }SwrContext;
 
 struct ResampleContext *swri_resample_init(struct ResampleContext *, int out_rate, int in_rate, int filter_size, int phase_shift, int linear, double cutoff);
@@ -78,4 +85,5 @@ int swri_resample(struct ResampleContext *c, short *dst, const short *src, int *
 
 int swri_rematrix_init(SwrContext *s);
 int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mustcopy);
+
 #endif
-- 
1.7.7.3



More information about the ffmpeg-devel mailing list