add API function to perform volume adjustment on a frame of SLINEAR data
[asterisk/asterisk.git] / include / asterisk / frame.h
index 48a2bbe..c17e2ee 100755 (executable)
@@ -49,7 +49,7 @@ struct ast_frame {
        int samples;                            
        /*! Was the data malloc'd?  i.e. should we free it when we discard the frame? */
        int mallocd;                            
-       /*! How far into "data" the data really starts */
+       /*! How many bytes exist _before_ "data" that can be used if needed */
        int offset;                             
        /*! Optional source of frame for debugging */
        const char *src;                                
@@ -64,8 +64,8 @@ struct ast_frame {
 };
 
 #define AST_FRIENDLY_OFFSET    64              /*! It's polite for a a new frame to
-                                                                               have this number of bytes for additional
-                                                                                       headers.  */
+                                                 have this number of bytes for additional
+                                                 headers.  */
 #define AST_MIN_OFFSET                 32              /*! Make sure we keep at least this much handy */
 
 /*! Need the header be free'd? */
@@ -419,6 +419,14 @@ static inline int ast_codec_interp_len(int format)
        return (format == AST_FORMAT_ILBC) ? 30 : 20;
 }
 
+/*!
+  \brief Adjusts the volume of the audio samples contained in a frame.
+  \param f The frame containing the samples (must be AST_FRAME_VOICE and AST_FORMAT_SLINEAR)
+  \param adjustment The number of dB to adjust up or down.
+  \return 0 for success, non-zero for an error
+ */
+int ast_frame_adjust_volume(struct ast_frame *f, int adjustment);
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif