swr: start doxycommenting the API.
authorClément Bœsch <ubitux@gmail.com>
Wed, 16 Nov 2011 19:28:10 +0000 (20:28 +0100)
committerClément Bœsch <ubitux@gmail.com>
Thu, 17 Nov 2011 09:16:07 +0000 (10:16 +0100)
libswresample/swresample_internal.h

index d69df6a..4ee7034 100644 (file)
 #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;                                  ///< parent 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;                          ///< rematrixing volume coefficient
+    const int *channel_map;                         ///< channel index (or -1 if muted channel) map
+    int used_ch_count;                              ///< number of used input 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
+    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 AudioConvert *in_convert;
-    struct AudioConvert *out_convert;
-    struct AudioConvert *full_convert;
-    struct ResampleContext *resample;
+    struct AudioConvert *in_convert;                ///< input conversion context
+    struct AudioConvert *out_convert;               ///< output conversion context
+    struct AudioConvert *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];
 
-    //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 +84,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