summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Begumisa <ben_g@users.sourceforge.net>2009-01-15 14:49:54 +0000
committerGerald Begumisa <ben_g@users.sourceforge.net>2009-01-15 14:49:54 +0000
commitf8b12e6f3c5cdf3eee5368ef71a85c0e0ae05ecb (patch)
tree4d739a99b62d2c335ccf39d87027f6dd7f74f95a
parent66a503098b38b2ee2c6f58cf8b3548ef003ea99b (diff)
Modified the G722 decoder such that it is not compiled as a separate Orkaudio plugin but is linked to orkbase. In addition, modified the G722 decoder to meet the same coding style as the other codecs (Ilbc and Gsm). This has so far been tested on Linux.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@594 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/Makefile.am2
-rw-r--r--orkaudio/OrkAudio.cpp12
-rw-r--r--orkbasecxx/Makefile.am3
-rw-r--r--orkbasecxx/filters/g722codec/G722Codec.cpp60
-rw-r--r--orkbasecxx/filters/g722codec/G722Codec.h6
-rw-r--r--orkbasecxx/filters/g722codec/Makefile.am11
6 files changed, 31 insertions, 63 deletions
diff --git a/orkaudio/Makefile.am b/orkaudio/Makefile.am
index cd3ad52..c475d4c 100644
--- a/orkaudio/Makefile.am
+++ b/orkaudio/Makefile.am
@@ -8,7 +8,7 @@ orkaudio_LDADD =
orkaudio_LDFLAGS = -lACE -lxerces-c -llog4cxx -lorkbase -lsndfile
orkaudio_SOURCES = OrkAudio.cpp
AM_CPPFLAGS = -D_REENTRANT
-INCLUDES = -I@top_srcdir@ -I../orkbasecxx -I../orkbasecxx/filters/gsm -I../orkbasecxx/filters/gsm/gsm610 -I../orkbasecxx/filters/ilbc -I../orkbasecxx/filters/ilbc/ilbc -I../orkbasecxx/filters/audiogain
+INCLUDES = -I@top_srcdir@ -I../orkbasecxx -I../orkbasecxx/filters/gsm -I../orkbasecxx/filters/gsm/gsm610 -I../orkbasecxx/filters/ilbc -I../orkbasecxx/filters/ilbc/ilbc -I../orkbasecxx/filters/audiogain -I../orkbasecxx/filters/g722codec
SUBDIRS = audiocaptureplugins filters
#orkaudio_LDADD = $(top_builddir)/messages/libmessages.la
diff --git a/orkaudio/OrkAudio.cpp b/orkaudio/OrkAudio.cpp
index 12531ff..be0dead 100644
--- a/orkaudio/OrkAudio.cpp
+++ b/orkaudio/OrkAudio.cpp
@@ -41,13 +41,11 @@
#include "Filter.h"
#include "GsmFilters.h"
#include "IlbcFilters.h"
+#include "G722Codec.h"
#include "filters/audiogain/AudioGain.h"
#include "TapeProcessor.h"
#include <list>
#include "EventStreaming.h"
-#ifdef WIN32
-#include "G722Codec.h"
-#endif
static volatile bool serviceStop = false;
@@ -156,10 +154,8 @@ void Transcode(CStdString &file)
FilterRegistry::instance()->RegisterFilter(filter);
filter.reset(new AudioGainFilter());
FilterRegistry::instance()->RegisterFilter(filter);
-#ifdef WIN32
- filter.reset(new G722Decoder());
+ filter.reset(new G722ToPcmFilter());
FilterRegistry::instance()->RegisterFilter(filter);
-#endif
// Register in-built tape processors and build the processing chain
BatchProcessing::Initialize();
@@ -245,10 +241,8 @@ void MainThread()
FilterRegistry::instance()->RegisterFilter(filter);
filter.reset(new AudioGainFilter());
FilterRegistry::instance()->RegisterFilter(filter);
-#ifdef WIN32
- filter.reset(new G722Decoder());
+ filter.reset(new G722ToPcmFilter());
FilterRegistry::instance()->RegisterFilter(filter);
-#endif
// Register in-built tape processors and build the processing chain
BatchProcessing::Initialize();
diff --git a/orkbasecxx/Makefile.am b/orkbasecxx/Makefile.am
index b985cfe..95ad73f 100644
--- a/orkbasecxx/Makefile.am
+++ b/orkbasecxx/Makefile.am
@@ -25,7 +25,8 @@ liborkbase_la_LIBADD = $(top_builddir)/serializers/libserializers.la \
$(top_builddir)/filters/gsm/gsm610/libgsm610.la \
$(top_builddir)/filters/ilbc/libilbc.la \
$(top_builddir)/filters/ilbc/ilbc/libilbcrfc.la \
- $(top_builddir)/filters/audiogain/libaudiogain.la
+ $(top_builddir)/filters/audiogain/libaudiogain.la \
+ $(top_builddir)/filters/g722codec/libg722codec.la
-lm
AM_CXXFLAGS = -D_REENTRANT
diff --git a/orkbasecxx/filters/g722codec/G722Codec.cpp b/orkbasecxx/filters/g722codec/G722Codec.cpp
index d2a72b7..5a59e1e 100644
--- a/orkbasecxx/filters/g722codec/G722Codec.cpp
+++ b/orkbasecxx/filters/g722codec/G722Codec.cpp
@@ -16,34 +16,25 @@
#include "G722Codec.h"
-static log4cxx::LoggerPtr s_log;
-static bool s_initialized = false;
-
-G722Decoder::G722Decoder()
-{
-#ifdef WIN32
- if(s_initialized == false)
- {
- s_log = log4cxx::Logger::getLogger("codec.g722");
- }
-#endif
+G722ToPcmFilter::G722ToPcmFilter()
+{
// Initialize decoder
memset(&m_ctx, 0, sizeof(m_ctx));
g722_decode_init(&m_ctx, 64000, G722_SAMPLE_RATE_8000);
}
-G722Decoder::~G722Decoder()
+G722ToPcmFilter::~G722ToPcmFilter()
{
memset(&m_ctx, 0, sizeof(m_ctx));
}
-FilterRef G722Decoder::Instanciate()
+FilterRef G722ToPcmFilter::Instanciate()
{
- FilterRef Filter(new G722Decoder());
+ FilterRef Filter(new G722ToPcmFilter());
return Filter;
}
-void G722Decoder::AudioChunkIn(AudioChunkRef& inputAudioChunk)
+void G722ToPcmFilter::AudioChunkIn(AudioChunkRef& inputAudioChunk)
{
int in_samples = 0;
int out_samples = 0;
@@ -82,56 +73,43 @@ void G722Decoder::AudioChunkIn(AudioChunkRef& inputAudioChunk)
memcpy(outputBuffer, pcmdata, out_samples*2);
}
-void G722Decoder::AudioChunkOut(AudioChunkRef& chunk)
+void G722ToPcmFilter::AudioChunkOut(AudioChunkRef& chunk)
{
chunk = m_outputAudioChunk;
}
-AudioEncodingEnum G722Decoder::GetInputAudioEncoding()
+AudioEncodingEnum G722ToPcmFilter::GetInputAudioEncoding()
{
return G722Audio;
}
-AudioEncodingEnum G722Decoder::GetOutputAudioEncoding()
+AudioEncodingEnum G722ToPcmFilter::GetOutputAudioEncoding()
{
return PcmAudio;
}
-CStdString G722Decoder::GetName()
+CStdString G722ToPcmFilter::GetName()
{
return "G722ToPcm";
}
-int G722Decoder::GetInputRtpPayloadType(void)
+int G722ToPcmFilter::GetInputRtpPayloadType(void)
{
return 9;
}
-void G722Decoder::CaptureEventIn(CaptureEventRef& event)
+void G722ToPcmFilter::CaptureEventIn(CaptureEventRef& event)
{
;
}
-void G722Decoder::CaptureEventOut(CaptureEventRef& event)
+void G722ToPcmFilter::CaptureEventOut(CaptureEventRef& event)
{
;
}
//=====================================================================
-extern "C"
-{
- DLL_EXPORT void __CDECL__ OrkInitialize()
- {
- s_log = log4cxx::Logger::getLogger("codec.g722");
-
- FilterRef filter(new G722Decoder());
- FilterRegistry::instance()->RegisterFilter(filter);
-
- LOG4CXX_INFO(s_log, "G.722 codec plugin initialized.");
- }
-}
-
/*
* SpanDSP - a series of DSP components for telephony
*
@@ -157,9 +135,9 @@ extern "C"
/*! \file */
-#include <stdio.h>
+#include <stdio.h>
#ifndef WIN32
-#include <inttypes.h>
+#include <inttypes.h>
#endif
#include <memory.h>
#include <stdlib.h>
@@ -174,10 +152,10 @@ extern "C"
#define TRUE (!FALSE)
#endif
-#ifdef WIN32
-static inline int16_t saturate(int32_t amp)
-#else
-static __inline__ int16_t saturate(int32_t amp)
+#ifdef WIN32
+static inline int16_t saturate(int32_t amp)
+#else
+static __inline__ int16_t saturate(int32_t amp)
#endif
{
int16_t amp16;
diff --git a/orkbasecxx/filters/g722codec/G722Codec.h b/orkbasecxx/filters/g722codec/G722Codec.h
index 2b1fc26..4329384 100644
--- a/orkbasecxx/filters/g722codec/G722Codec.h
+++ b/orkbasecxx/filters/g722codec/G722Codec.h
@@ -17,11 +17,11 @@
#include "Filter.h"
#include "G722.h"
-class DLL_IMPORT_EXPORT_ORKBASE G722Decoder : public Filter
+class DLL_IMPORT_EXPORT_ORKBASE G722ToPcmFilter : public Filter
{
public:
- G722Decoder();
- ~G722Decoder();
+ G722ToPcmFilter();
+ ~G722ToPcmFilter();
FilterRef __CDECL__ Instanciate();
void __CDECL__ AudioChunkIn(AudioChunkRef& chunk);
diff --git a/orkbasecxx/filters/g722codec/Makefile.am b/orkbasecxx/filters/g722codec/Makefile.am
index d6f7fef..9ff6ccf 100644
--- a/orkbasecxx/filters/g722codec/Makefile.am
+++ b/orkbasecxx/filters/g722codec/Makefile.am
@@ -1,12 +1,7 @@
+METASOURCES = AUTO
SUBDIRS =
-
-plugindir= $(prefix)/lib/orkaudio/plugins
-plugin_LTLIBRARIES = libg722codec.la
+noinst_LTLIBRARIES = libg722codec.la
libg722codec_la_SOURCES = G722Codec.cpp
-AM_CFLAGS = -D__unix__ -Dlinux -DNDEBUG -DNO_SCRATCH_MEMORY_USED -DLINUX32 -Dlinux32
-AM_CPPFLAGS = -D_REENTRANT -D__unix__ -Dlinux -DNDEBUG -DNO_SCRATCH_MEMORY_USED -DLINUX32 -Dlinux32
-libg722codec_la_LDFLAGS = -module
-libg722codec_la_LIBADD = -lACE -lxerces-c -llog4cxx -lorkbase \
- -lpthread -lm
INCLUDES = -I@top_srcdir@ -I../..
+AM_CXXFLAGS = -D_REENTRANT