diff options
author | Gerald Begumisa <ben_g@users.sourceforge.net> | 2009-01-15 14:49:54 +0000 |
---|---|---|
committer | Gerald Begumisa <ben_g@users.sourceforge.net> | 2009-01-15 14:49:54 +0000 |
commit | f8b12e6f3c5cdf3eee5368ef71a85c0e0ae05ecb (patch) | |
tree | 4d739a99b62d2c335ccf39d87027f6dd7f74f95a | |
parent | 66a503098b38b2ee2c6f58cf8b3548ef003ea99b (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.am | 2 | ||||
-rw-r--r-- | orkaudio/OrkAudio.cpp | 12 | ||||
-rw-r--r-- | orkbasecxx/Makefile.am | 3 | ||||
-rw-r--r-- | orkbasecxx/filters/g722codec/G722Codec.cpp | 60 | ||||
-rw-r--r-- | orkbasecxx/filters/g722codec/G722Codec.h | 6 | ||||
-rw-r--r-- | orkbasecxx/filters/g722codec/Makefile.am | 11 |
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 |