Browse code

swr: start doxycommenting the API.

Clément Bœsch authored on 2011/11/17 04:28:10
Showing 1 changed files
... ...
@@ -24,50 +24,56 @@
24 24
 #include "swresample.h"
25 25
 
26 26
 typedef struct AudioData{
27
-    uint8_t *ch[SWR_CH_MAX];
28
-    uint8_t *data;
29
-    int ch_count;
30
-    int bps;
31
-    int count;
32
-    int planar;
27
+    uint8_t *ch[SWR_CH_MAX];    ///< samples buffer per channel
28
+    uint8_t *data;              ///< samples buffer
29
+    int ch_count;               ///< number of channels
30
+    int bps;                    ///< bytes per sample
31
+    int count;                  ///< number of samples
32
+    int planar;                 ///< 1 if planar audio, 0 otherwise
33 33
 } AudioData;
34 34
 
35
-typedef struct SwrContext {          //FIXME find unused fields
36
-    const AVClass *av_class;
37
-    int log_level_offset;
38
-    void *log_ctx;
39
-    enum AVSampleFormat  in_sample_fmt;
40
-    enum AVSampleFormat int_sample_fmt; ///<AV_SAMPLE_FMT_FLT OR AV_SAMPLE_FMT_S16
41
-    enum AVSampleFormat out_sample_fmt;
42
-    int64_t  in_ch_layout;
43
-    int64_t out_ch_layout;
44
-    int      in_sample_rate;
45
-    int     out_sample_rate;
46
-    int flags;
47
-    float slev, clev, rematrix_volume;
48
-    const int *channel_map;             ///< channel index (or -1 if muted channel) map
49
-    int used_ch_count;                  ///< number of used channels (mapped channel count if channel_map, otherwise in.ch_count)
35
+typedef struct SwrContext {
36
+    const AVClass *av_class;                        ///< AVClass used for AVOption and av_log()
37
+    int log_level_offset;                           ///< logging level offset
38
+    void *log_ctx;                                  ///< parent logging context
39
+    enum AVSampleFormat  in_sample_fmt;             ///< input sample format
40
+    enum AVSampleFormat int_sample_fmt;             ///< internal sample format (AV_SAMPLE_FMT_FLT or AV_SAMPLE_FMT_S16)
41
+    enum AVSampleFormat out_sample_fmt;             ///< output sample format
42
+    int64_t  in_ch_layout;                          ///< input channel layout
43
+    int64_t out_ch_layout;                          ///< output channel layout
44
+    int      in_sample_rate;                        ///< input sample rate
45
+    int     out_sample_rate;                        ///< output sample rate
46
+    int flags;                                      ///< miscellaneous flags such as SWR_FLAG_RESAMPLE
47
+    float slev;                                     ///< surround mixing level, XXX: unused
48
+    float clev;                                     ///< center mixing level
49
+    float rematrix_volume;                          ///< rematrixing volume coefficient
50
+    const int *channel_map;                         ///< channel index (or -1 if muted channel) map
51
+    int used_ch_count;                              ///< number of used input channels (mapped channel count if channel_map, otherwise in.ch_count)
50 52
 
51
-    //below are private
52
-    int int_bps;
53
-    int resample_first;
54
-    int rematrix;                   ///< flag to indicate if rematrixing is used
53
+    int int_bps;                                    ///< internal bytes per sample
54
+    int resample_first;                             ///< 1 if resampling must come first, 0 if rematrixing
55
+    int rematrix;                                   ///< flag to indicate if rematrixing is needed (basically if input and output layouts mismatch)
55 56
 
56
-    AudioData in, postin, midbuf, preout, out, in_buffer;
57
-    int in_buffer_index;
58
-    int in_buffer_count;
59
-    int resample_in_constraint;
57
+    AudioData in;                                   ///< input audio data
58
+    AudioData postin;                               ///< post-input audio data: used for rematrix/resample
59
+    AudioData midbuf;                               ///< intermediate audio data (postin/preout)
60
+    AudioData preout;                               ///< pre-output audio data: used for rematrix/resample
61
+    AudioData out;                                  ///< converted output audio data
62
+    AudioData in_buffer;                            ///< cached audio data (convert and resample purpose)
63
+    int in_buffer_index;                            ///< cached buffer position
64
+    int in_buffer_count;                            ///< cached buffer length
65
+    int resample_in_constraint;                     ///< 1 if the input end was reach before the output end, 0 otherwise
60 66
 
61
-    struct AudioConvert *in_convert;
62
-    struct AudioConvert *out_convert;
63
-    struct AudioConvert *full_convert;
64
-    struct ResampleContext *resample;
67
+    struct AudioConvert *in_convert;                ///< input conversion context
68
+    struct AudioConvert *out_convert;               ///< output conversion context
69
+    struct AudioConvert *full_convert;              ///< full conversion context (single conversion for input and output)
70
+    struct ResampleContext *resample;               ///< resampling context
65 71
 
66 72
     float matrix[SWR_CH_MAX][SWR_CH_MAX];
67 73
     int32_t matrix32[SWR_CH_MAX][SWR_CH_MAX];
68 74
     uint8_t matrix_ch[SWR_CH_MAX][SWR_CH_MAX+1];
69 75
 
70
-    //TODO callbacks for asm optims
76
+    /* TODO: callbacks for ASM optimizations */
71 77
 }SwrContext;
72 78
 
73 79
 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 *
78 78
 
79 79
 int swri_rematrix_init(SwrContext *s);
80 80
 int swri_rematrix(SwrContext *s, AudioData *out, AudioData *in, int len, int mustcopy);
81
+
81 82
 #endif