summaryrefslogtreecommitdiff
path: root/codecs/G711u/G711udecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'codecs/G711u/G711udecode.c')
-rw-r--r--codecs/G711u/G711udecode.c69
1 files changed, 58 insertions, 11 deletions
diff --git a/codecs/G711u/G711udecode.c b/codecs/G711u/G711udecode.c
index c56018ad32..369e47df3f 100644
--- a/codecs/G711u/G711udecode.c
+++ b/codecs/G711u/G711udecode.c
@@ -22,21 +22,68 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+#include "config.h"
+
#include <glib.h>
+
#include "G711udecode.h"
#include "G711utable.h"
+void *
+codec_g711u_init(void)
+{
+ return NULL;
+}
+
+void
+codec_g711u_release(void *ctx _U_)
+{
+
+}
+
+int
+codec_g711u_get_channels(void *ctx _U_)
+{
+ return 1;
+}
+
int
-decodeG711u(void *input, int inputSizeBytes, void *output, int *outputSizeBytes)
+codec_g711u_get_frequency(void *ctx _U_)
{
- guint8 *dataIn = (guint8 *)input;
- gint16 *dataOut = (gint16 *)output;
- int i;
-
- for (i=0; i<inputSizeBytes; i++)
- {
- dataOut[i] = ulaw_exp_table[dataIn[i]];
- }
- *outputSizeBytes = inputSizeBytes * 2;
- return 0;
+ return 8000;
}
+
+int
+codec_g711u_decode(void *ctx _U_, const void *input, int inputSizeBytes, void *output,
+ int *outputSizeBytes)
+{
+ const guint8 *dataIn = (const guint8 *) input;
+ gint16 *dataOut = (gint16 *) output;
+ int i;
+
+ if (!output || !outputSizeBytes) {
+ return inputSizeBytes * 2;
+ }
+
+ for (i = 0; i < inputSizeBytes; i++)
+ {
+ dataOut[i] = ulaw_exp_table[dataIn[i]];
+ }
+
+ *outputSizeBytes = inputSizeBytes * 2;
+ return inputSizeBytes * 2;
+}
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */
+