diff --git a/third_party/g7221/common/basic_op.c b/third_party/g7221/common/basic_op.c
index d4c1530..0ff6e9b 100644
--- a/third_party/g7221/common/basic_op.c
+++ b/third_party/g7221/common/basic_op.c
@@ -1,3 +1,8 @@
+#include "config.h"
+
+#if !PJMEDIA_LIBG7221_FUNCS_INLINED || \
+    (PJMEDIA_LIBG7221_FUNCS_INLINED && defined(__BASIC_OP_H__))
+
 /*___________________________________________________________________________
  |                                                                           |
  | Basic arithmetic operators.                                               |
@@ -72,7 +77,7 @@
  |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
  |___________________________________________________________________________|
 */
-Word16 shr (Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) shr (Word16 var1, Word16 var2)
 {
     if (var2 < 0)
     {
@@ -122,7 +127,7 @@
  |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
  |___________________________________________________________________________|
 */
-Word16 shl (Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) shl (Word16 var1, Word16 var2)
 {
     if (var2 < 0)
     {
@@ -171,7 +176,7 @@
  |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
  |___________________________________________________________________________|
 */
-Word16 mult (Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) mult (Word16 var1, Word16 var2)
 {
     Word16 var_out;
     Word32 L_product;
@@ -228,7 +233,7 @@
  |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
  |___________________________________________________________________________|
 */
-Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2)
+LIBG7221_DEF(Word32) L_msu (Word32 L_var3, Word16 var1, Word16 var2)
 {
     Word32 L_var_out;
     Word32 L_product;
@@ -289,7 +294,7 @@
  |    operators which take into account its value.                           |
  |___________________________________________________________________________|
 */
-Word32 L_macNs (Word32 L_var3, Word16 var1, Word16 var2)
+LIBG7221_DEF(Word32) L_macNs (Word32 L_var3, Word16 var1, Word16 var2)
 {
     Word32 L_var_out;
 
@@ -350,7 +355,7 @@
  |    operators which take into account its value.                           |
  |___________________________________________________________________________|
 */
-Word32 L_msuNs (Word32 L_var3, Word16 var1, Word16 var2)
+LIBG7221_DEF(Word32) L_msuNs (Word32 L_var3, Word16 var1, Word16 var2)
 {
     Word32 L_var_out;
 
@@ -408,7 +413,7 @@
  |    operators which take into account its value.                           |
  |___________________________________________________________________________|
 */
-Word32 L_add_c (Word32 L_var1, Word32 L_var2)
+LIBG7221_DEF(Word32) L_add_c (Word32 L_var1, Word32 L_var2)
 {
     Word32 L_var_out;
     Word32 L_test;
@@ -524,7 +529,7 @@
  |    operators which take into account its value.                           |
  |___________________________________________________________________________|
 */
-Word32 L_sub_c (Word32 L_var1, Word32 L_var2)
+LIBG7221_DEF(Word32) L_sub_c (Word32 L_var1, Word32 L_var2)
 {
     Word32 L_var_out;
     Word32 L_test;
@@ -617,7 +622,7 @@
  |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
  |___________________________________________________________________________|
 */
-Word32 L_negate (Word32 L_var1)
+LIBG7221_DEF(Word32) L_negate (Word32 L_var1)
 {
     Word32 L_var_out;
 
@@ -663,7 +668,7 @@
  |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
  |___________________________________________________________________________|
 */
-Word16 mult_r (Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) mult_r (Word16 var1, Word16 var2)
 {
     Word16 var_out;
     Word32 L_product_arr;
@@ -728,7 +733,7 @@
  |             range : 0xffff 8000 <= var_out <= 0x0000 7fff.                |
  |___________________________________________________________________________|
 */
-Word16 shr_r (Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) shr_r (Word16 var1, Word16 var2)
 {
     Word16 var_out;
 
@@ -797,7 +802,7 @@
  |             range : 0x0000 8000 <= L_var_out <= 0x0000 7fff.              |
  |___________________________________________________________________________|
 */
-Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) mac_r (Word32 L_var3, Word16 var1, Word16 var2)
 {
     Word16 var_out;
 
@@ -857,7 +862,7 @@
  |             range : 0x0000 8000 <= L_var_out <= 0x0000 7fff.              |
  |___________________________________________________________________________|
 */
-Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) msu_r (Word32 L_var3, Word16 var1, Word16 var2)
 {
     Word16 var_out;
 
@@ -907,7 +912,7 @@
  |             range : 0x8000 0000 <= var_out <= 0x7fff 0000.                |
  |___________________________________________________________________________|
 */
-Word32 L_deposit_h (Word16 var1)
+LIBG7221_DEF(Word32) L_deposit_h (Word16 var1)
 {
     Word32 L_var_out;
 
@@ -948,7 +953,7 @@
  |             range : 0xFFFF 8000 <= var_out <= 0x0000 7fff.                |
  |___________________________________________________________________________|
 */
-Word32 L_deposit_l (Word16 var1)
+LIBG7221_DEF(Word32) L_deposit_l (Word16 var1)
 {
     Word32 L_var_out;
 
@@ -1002,7 +1007,7 @@
  |             range : 0x8000 0000 <= var_out <= 0x7fff ffff.                |
  |___________________________________________________________________________|
 */
-Word32 L_shr_r (Word32 L_var1, Word16 var2)
+LIBG7221_DEF(Word32) L_shr_r (Word32 L_var1, Word16 var2)
 {
     Word32 L_var_out;
 
@@ -1060,7 +1065,7 @@
  |             range : 0x0000 0000 <= var_out <= 0x7fff ffff.                |
  |___________________________________________________________________________|
 */
-Word32 L_abs (Word32 L_var1)
+LIBG7221_DEF(Word32) L_abs (Word32 L_var1)
 {
     Word32 L_var_out;
 
@@ -1120,7 +1125,7 @@
  |             range : 0x0000 0000 <= var_out <= 0x0000 000f.                |
  |___________________________________________________________________________|
 */
-Word16 norm_s (Word16 var1)
+LIBG7221_DEF(Word16) norm_s (Word16 var1)
 {
     Word16 var_out;
 
@@ -1130,7 +1135,7 @@
     }
     else
     {
-        if (var1 == (Word16) 0xffff)
+        if (var1 == (UWord16)0xffff)
         {
             var_out = 15;
         }
@@ -1191,7 +1196,7 @@
  |             It's a Q15 value (point between b15 and b14).                 |
  |___________________________________________________________________________|
 */
-Word16 div_s (Word16 var1, Word16 var2)
+LIBG7221_DEF(Word16) div_s (Word16 var1, Word16 var2)
 {
     Word16 var_out = 0;
     Word16 iteration;
@@ -1291,7 +1296,7 @@
  |             range : 0x0000 0000 <= var_out <= 0x0000 001f.                |
  |___________________________________________________________________________|
 */
-Word16 norm_l (Word32 L_var1)
+LIBG7221_DEF(Word16) norm_l (Word32 L_var1)
 {
     Word16 var_out;
 
@@ -1372,7 +1377,7 @@
  |                                                                           |
  |___________________________________________________________________________|
 */
-Word32 L_mls (Word32 Lv, Word16 v)
+LIBG7221_DEF(Word32) L_mls (Word32 Lv, Word16 v)
 {
    Word32   Temp  ;
 
@@ -1431,7 +1436,7 @@
 |             It's a Q15 value (point between b15 and b14).                 |
 |___________________________________________________________________________|
 */
-Word16 div_l (Word32  L_num, Word16 den)
+LIBG7221_DEF(Word16) div_l (Word32  L_num, Word16 den)
 {
     Word16   var_out = (Word16)0;
     Word32   L_den;
@@ -1519,7 +1524,7 @@
 |             are performed if ORIGINAL_G7231 is defined.                   |
 |___________________________________________________________________________|
 */
-Word16 i_mult (Word16 a, Word16 b)
+LIBG7221_DEF(Word16) i_mult (Word16 a, Word16 b)
 {
 #ifdef ORIGINAL_G7231
    return a*b ;
@@ -1568,7 +1573,7 @@
  |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.
  |___________________________________________________________________________
 */
-Word32 L_mult0 (Word16 var1,Word16 var2)
+LIBG7221_DEF(Word32) L_mult0 (Word16 var1,Word16 var2)
 {
   Word32 L_var_out;
 
@@ -1612,7 +1617,7 @@
  |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.
  |___________________________________________________________________________
 */
-Word32 L_mac0 (Word32 L_var3, Word16 var1, Word16 var2)
+LIBG7221_DEF(Word32) L_mac0 (Word32 L_var3, Word16 var1, Word16 var2)
 {
   Word32 L_var_out;
   Word32 L_product;
@@ -1660,7 +1665,7 @@
  |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.
  |___________________________________________________________________________
 */
-Word32 L_msu0 (Word32 L_var3, Word16 var1, Word16 var2)
+LIBG7221_DEF(Word32) L_msu0 (Word32 L_var3, Word16 var1, Word16 var2)
 {
   Word32 L_var_out;
   Word32 L_product;
@@ -1711,7 +1716,7 @@
  |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
  |___________________________________________________________________________|
 */
-UWord32 LU_shl (UWord32 L_var1, Word16 var2)
+LIBG7221_DEF(UWord32) LU_shl (UWord32 L_var1, Word16 var2)
 {
     Word16 neg_var2;
     UWord32 L_var_out = 0;
@@ -1742,7 +1747,7 @@
                 if (L_var1 < (UWord32) 0x00000001L)
                 {
                     SET_OVERFLOW(1);
-                    L_var_out = MIN_32;
+                    L_var_out = (UWord32)MIN_32;
                     break;
                 }
             }
@@ -1791,7 +1796,7 @@
  |             range : 0x8000 0000 <= L_var_out <= 0x7fff ffff.              |
  |___________________________________________________________________________|
 */
-UWord32 LU_shr (UWord32 L_var1, Word16 var2)
+LIBG7221_DEF(UWord32) LU_shr (UWord32 L_var1, Word16 var2)
 {
     Word16  neg_var2;
     UWord32 L_var_out;
@@ -1825,5 +1830,6 @@
 }
 /* ------------------------- End of LU_shr() ------------------------- */
 
+#endif /* PJMEDIA_LIBG7221_FUNCS_INLINED */
 
 /* ************************** END OF BASOP32.C ************************** */
diff --git a/third_party/g7221/common/basic_op.h b/third_party/g7221/common/basic_op.h
index fe64a49..45104d1 100644
--- a/third_party/g7221/common/basic_op.h
+++ b/third_party/g7221/common/basic_op.h
@@ -1,11 +1,11 @@
 #ifndef __BASIC_OP_H__
 #define __BASIC_OP_H__
 
+#include "config.h"
+
 /*___________________________________________________________________________
  |                                                                           |
  |   Constants and Globals                                                   |
- |                                                                           |
- | $Id $
  |___________________________________________________________________________|
 */
 
@@ -27,66 +27,66 @@
 PJ_INLINE(Word16) add (Word16 var1, Word16 var2);    /* Short add,           1   */
 PJ_INLINE(Word16) sub (Word16 var1, Word16 var2);    /* Short sub,           1   */
 PJ_INLINE(Word16) abs_s (Word16 var1);               /* Short abs,           1   */
-Word16 shl (Word16 var1, Word16 var2);    /* Short shift left,    1   */
+LIBG7221_DECL(Word16) shl (Word16 var1, Word16 var2);    /* Short shift left,    1   */
 PJ_INLINE(Word16) shl_nocheck(Word16 var1, Word16 var2);
-Word16 shr (Word16 var1, Word16 var2);    /* Short shift right,   1   */
+LIBG7221_DECL(Word16) shr (Word16 var1, Word16 var2);    /* Short shift right,   1   */
 PJ_INLINE(Word16) shr_nocheck(Word16 var1, Word16 var2);
-Word16 mult (Word16 var1, Word16 var2);   /* Short mult,          1   */
+LIBG7221_DECL(Word16) mult (Word16 var1, Word16 var2);   /* Short mult,          1   */
 PJ_INLINE(Word32) L_mult (Word16 var1, Word16 var2); /* Long mult,           1   */
 PJ_INLINE(Word16) negate (Word16 var1);              /* Short negate,        1   */
 PJ_INLINE(Word16) extract_h (Word32 L_var1);         /* Extract high,        1   */
 PJ_INLINE(Word16) extract_l (Word32 L_var1);         /* Extract low,         1   */
 PJ_INLINE(Word16) itu_round (Word32 L_var1);         /* Round,               1   */
 PJ_INLINE(Word32) L_mac (Word32 L_var3, Word16 var1, Word16 var2);   /* Mac,  1  */
-Word32 L_msu (Word32 L_var3, Word16 var1, Word16 var2);   /* Msu,  1  */
-Word32 L_macNs (Word32 L_var3, Word16 var1, Word16 var2); /* Mac without
-                                                             sat, 1   */
-Word32 L_msuNs (Word32 L_var3, Word16 var1, Word16 var2); /* Msu without
-                                                             sat, 1   */
+LIBG7221_DECL(Word32) L_msu (Word32 L_var3, Word16 var1, Word16 var2);   /* Msu,  1  */
+LIBG7221_DECL(Word32) L_macNs (Word32 L_var3, Word16 var1, Word16 var2); /* Mac without
+								       sat, 1   */
+LIBG7221_DECL(Word32) L_msuNs (Word32 L_var3, Word16 var1, Word16 var2); /* Msu without
+								       sat, 1   */
 //PJ_INLINE(Word32) L_add (Word32 L_var1, Word32 L_var2);    /* Long add,        2 */
 PJ_INLINE(Word32) L_sub (Word32 L_var1, Word32 L_var2);    /* Long sub,        2 */
-Word32 L_add_c (Word32 L_var1, Word32 L_var2);  /* Long add with c, 2 */
-Word32 L_sub_c (Word32 L_var1, Word32 L_var2);  /* Long sub with c, 2 */
-Word32 L_negate (Word32 L_var1);                /* Long negate,     2 */
-Word16 mult_r (Word16 var1, Word16 var2);       /* Mult with round, 2 */
+LIBG7221_DECL(Word32) L_add_c (Word32 L_var1, Word32 L_var2);  /* Long add with c, 2 */
+LIBG7221_DECL(Word32) L_sub_c (Word32 L_var1, Word32 L_var2);  /* Long sub with c, 2 */
+LIBG7221_DECL(Word32) L_negate (Word32 L_var1);                /* Long negate,     2 */
+LIBG7221_DECL(Word16) mult_r (Word16 var1, Word16 var2);       /* Mult with round, 2 */
 PJ_INLINE(Word32) L_shl (Word32 L_var1, Word16 var2);      /* Long shift left, 2 */
 PJ_INLINE(Word32) L_shr (Word32 L_var1, Word16 var2);      /* Long shift right, 2*/
-Word16 shr_r (Word16 var1, Word16 var2);        /* Shift right with
-                                                   round, 2           */
-Word16 mac_r (Word32 L_var3, Word16 var1, Word16 var2); /* Mac with
+LIBG7221_DECL(Word16) shr_r (Word16 var1, Word16 var2);        /* Shift right with
+							     round, 2           */
+LIBG7221_DECL(Word16) mac_r (Word32 L_var3, Word16 var1, Word16 var2); /* Mac with
                                                            rounding,2 */
-Word16 msu_r (Word32 L_var3, Word16 var1, Word16 var2); /* Msu with
+LIBG7221_DECL(Word16) msu_r (Word32 L_var3, Word16 var1, Word16 var2); /* Msu with
                                                            rounding,2 */
-Word32 L_deposit_h (Word16 var1);        /* 16 bit var1 -> MSB,     2 */
-Word32 L_deposit_l (Word16 var1);        /* 16 bit var1 -> LSB,     2 */
+LIBG7221_DECL(Word32) L_deposit_h (Word16 var1);        /* 16 bit var1 -> MSB,     2 */
+LIBG7221_DECL(Word32) L_deposit_l (Word16 var1);        /* 16 bit var1 -> LSB,     2 */
 
-Word32 L_shr_r (Word32 L_var1, Word16 var2); /* Long shift right with
-                                                round,  3             */
-Word32 L_abs (Word32 L_var1);            /* Long abs,              3  */
-Word32 L_sat (Word32 L_var1);            /* Long saturation,       4  */
-Word16 norm_s (Word16 var1);             /* Short norm,           15  */
-Word16 div_s (Word16 var1, Word16 var2); /* Short division,       18  */
-Word16 norm_l (Word32 L_var1);           /* Long norm,            30  */   
+LIBG7221_DECL(Word32) L_shr_r (Word32 L_var1, Word16 var2); /* Long shift right with
+							  round,  3             */
+LIBG7221_DECL(Word32) L_abs (Word32 L_var1);            /* Long abs,              3  */
+LIBG7221_DECL(Word32) L_sat (Word32 L_var1);            /* Long saturation,       4  */
+LIBG7221_DECL(Word16) norm_s (Word16 var1);             /* Short norm,           15  */
+LIBG7221_DECL(Word16) div_s (Word16 var1, Word16 var2); /* Short division,       18  */
+LIBG7221_DECL(Word16) norm_l (Word32 L_var1);           /* Long norm,            30  */   
 
 /*
    Additional G.723.1 operators
 */
-Word32 L_mls( Word32, Word16 ) ;    /* Weight FFS; currently assigned 1 */
-Word16 div_l( Word32, Word16 ) ;    /* Weight FFS; currently assigned 1 */
-Word16 i_mult(Word16 a, Word16 b);  /* Weight FFS; currently assigned 1 */
+LIBG7221_DECL(Word32) L_mls( Word32, Word16 ) ;    /* Weight FFS; currently assigned 1 */
+LIBG7221_DECL(Word16) div_l( Word32, Word16 ) ;    /* Weight FFS; currently assigned 1 */
+LIBG7221_DECL(Word16) i_mult(Word16 a, Word16 b);  /* Weight FFS; currently assigned 1 */
 
 /* 
     New shiftless operators, not used in G.729/G.723.1
 */
-Word32 L_mult0(Word16 v1, Word16 v2); /* 32-bit Multiply w/o shift         1 */
-Word32 L_mac0(Word32 L_v3, Word16 v1, Word16 v2); /* 32-bit Mac w/o shift  1 */
-Word32 L_msu0(Word32 L_v3, Word16 v1, Word16 v2); /* 32-bit Msu w/o shift  1 */
+LIBG7221_DECL(Word32) L_mult0(Word16 v1, Word16 v2); /* 32-bit Multiply w/o shift         1 */
+LIBG7221_DECL(Word32) L_mac0(Word32 L_v3, Word16 v1, Word16 v2); /* 32-bit Mac w/o shift  1 */
+LIBG7221_DECL(Word32) L_msu0(Word32 L_v3, Word16 v1, Word16 v2); /* 32-bit Msu w/o shift  1 */
 
 /* 
     Additional G.722.1 operators
 */
-UWord32 LU_shl (UWord32 L_var1, Word16 var2);
-UWord32 LU_shr (UWord32 L_var1, Word16 var2);
+LIBG7221_DECL(UWord32) LU_shl (UWord32 L_var1, Word16 var2);
+LIBG7221_DECL(UWord32) LU_shr (UWord32 L_var1, Word16 var2);
 
 #define INCLUDE_UNSAFE	    0
 
@@ -108,7 +108,9 @@
 
 #include "basic_op_i.h"
 
-
+#if PJMEDIA_LIBG7221_FUNCS_INLINED
+#   include "basic_op.c"
+#endif
 
 #endif /* __BASIC_OP_H__ */
 
diff --git a/third_party/g7221/common/config.h b/third_party/g7221/common/config.h
new file mode 100644
index 0000000..925a1da
--- /dev/null
+++ b/third_party/g7221/common/config.h
@@ -0,0 +1,24 @@
+#ifndef __LIBG7221_CONFIG_H__
+#define __LIBG7221_CONFIG_H__
+
+#include <pj/config.h>
+
+/**
+ * Expand basic operation functions as inline.
+ *
+ * Default: 1 (yes)
+ */
+#ifndef PJMEDIA_LIBG7221_FUNCS_INLINED
+#   define PJMEDIA_LIBG7221_FUNCS_INLINED   1
+#endif
+
+/* Declare/define a function that may be expanded as inline. */
+#if PJMEDIA_LIBG7221_FUNCS_INLINED
+#  define LIBG7221_DECL(type)  PJ_INLINE(type)
+#  define LIBG7221_DEF(type)   PJ_INLINE(type)
+#else
+#  define LIBG7221_DECL(type)  PJ_DECL(type)
+#  define LIBG7221_DEF(type)   PJ_DEF(type)
+#endif
+
+#endif /* __LIBG7221_CONFIG_H__ */
