diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b1eeff..30a5ab7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.6) project(emiplib) -set(VERSION 1.1.0) +set(VERSION 1.1.1) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") @@ -24,6 +24,10 @@ include(CheckCXXSourceCompiles) include(TestBigEndian) include("${PROJECT_SOURCE_DIR}/cmake/Macros.cmake") +if (NOT UNIX) + set(EMIPLIB_COMPILE_STATIC ON CACHE BOOL "Flag indicating if a static library should be built, or a dynamic one") +endif (NOT UNIX) + if (UNIX) if (APPLE) set(TMP ON) @@ -32,7 +36,11 @@ if (UNIX) endif (APPLE) option(EMIPLIB_LINK "Flag indicating if the shared library should be automatically linked against the other libraries used" ${TMP}) else (UNIX) - set(EMIPLIB_LINK FALSE) + if (EMIPLIB_COMPILE_STATIC) + set(EMIPLIB_LINK FALSE) + else (EMIPLIB_COMPILE_STATIC) + set(EMIPLIB_LINK TRUE) + endif (EMIPLIB_COMPILE_STATIC) endif (UNIX) set(EMIPLIB_INTERNAL_INCLUDES "") @@ -258,6 +266,14 @@ else (EMIPLIB_STDINT) endif (EMIPLIB_INTTYPES) endif (EMIPLIB_STDINT) +if (UNIX OR EMIPLIB_COMPILE_STATIC) + set(EMIPLIB_IMPORT "") + set(EMIPLIB_EXPORT "") +else (UNIX OR EMIPLIB_COMPILE_STATIC) + set(EMIPLIB_IMPORT "__declspec(dllimport)") + set(EMIPLIB_EXPORT "__declspec(dllexport)") +endif (UNIX OR EMIPLIB_COMPILE_STATIC) + configure_file("${PROJECT_SOURCE_DIR}/src/core/mipconfig.h.in" "${PROJECT_BINARY_DIR}/src/core/mipconfig.h") configure_file("${PROJECT_SOURCE_DIR}/src/core/miptypes.h.in" "${PROJECT_BINARY_DIR}/src/core/miptypes.h") @@ -269,12 +285,19 @@ if (UNIX) get_filename_component(EMIPLIB_LIBNAME "${EMIPLIB_LOCAL_LIBRARY_NAME}" NAME) set(EMIPLIB_LIBS "${LIBRARY_INSTALL_DIR}/${EMIPLIB_LIBNAME}") else (UNIX) - get_target_property(EMIPLIB_LOCAL_LIBRARY_NAME emiplib-static RELEASE_LOCATION) - get_filename_component(EMIPLIB_LIBNAME_RELEASE "${EMIPLIB_LOCAL_LIBRARY_NAME}" NAME) - get_target_property(EMIPLIB_LOCAL_LIBRARY_NAME emiplib-static DEBUG_LOCATION) - get_filename_component(EMIPLIB_LIBNAME_DEBUG "${EMIPLIB_LOCAL_LIBRARY_NAME}" NAME) - set(EMIPLIB_LIBS optimized "${LIBRARY_INSTALL_DIR}/${EMIPLIB_LIBNAME_RELEASE}" - debug "${LIBRARY_INSTALL_DIR}/${EMIPLIB_LIBNAME_DEBUG}") + if (EMIPLIB_COMPILE_STATIC) + get_target_property(EMIPLIB_LOCAL_LIBRARY_NAME emiplib-static RELEASE_LOCATION) + get_filename_component(EMIPLIB_LIBNAME_RELEASE "${EMIPLIB_LOCAL_LIBRARY_NAME}" NAME_WE) + get_target_property(EMIPLIB_LOCAL_LIBRARY_NAME emiplib-static DEBUG_LOCATION) + get_filename_component(EMIPLIB_LIBNAME_DEBUG "${EMIPLIB_LOCAL_LIBRARY_NAME}" NAME_WE) + else (EMIPLIB_COMPILE_STATIC) + get_target_property(EMIPLIB_LOCAL_LIBRARY_NAME emiplib-shared RELEASE_LOCATION) + get_filename_component(EMIPLIB_LIBNAME_RELEASE "${EMIPLIB_LOCAL_LIBRARY_NAME}" NAME_WE) + get_target_property(EMIPLIB_LOCAL_LIBRARY_NAME emiplib-shared DEBUG_LOCATION) + get_filename_component(EMIPLIB_LIBNAME_DEBUG "${EMIPLIB_LOCAL_LIBRARY_NAME}" NAME_WE) + endif (EMIPLIB_COMPILE_STATIC) + set(EMIPLIB_LIBS optimized "${LIBRARY_INSTALL_DIR}/${EMIPLIB_LIBNAME_RELEASE}.lib" + debug "${LIBRARY_INSTALL_DIR}/${EMIPLIB_LIBNAME_DEBUG}.lib") endif (UNIX) set(EMIPLIB_INCDIRS ${EMIPLIB_EXTERNAL_INCLUDES} ${CMAKE_INSTALL_PREFIX}/include) @@ -283,6 +306,13 @@ remove_empty(EMIPLIB_INCDIRS) list(REMOVE_DUPLICATES EMIPLIB_INCDIRS) remove_empty(EMIPLIB_LIBS) # Note that we can't remove duplicates because of multiple 'optimized' or 'debug' options in Win32 version +foreach(ARG ${EMIPLIB_LIBS}) + set(EMIPLIB_LIBS_CMAKECONFIG "${EMIPLIB_LIBS_CMAKECONFIG} \"${ARG}\"") +endforeach() +foreach(ARG ${EMIPLIB_INCDIRS}) + set(EMIPLIB_INCDIRS_CMAKECONFIG "${EMIPLIB_INCDIRS_CMAKECONFIG} \"${ARG}\"") +endforeach() + configure_file("${PROJECT_SOURCE_DIR}/cmake/EMIPLIBConfig.cmake.in" "${PROJECT_BINARY_DIR}/cmake/EMIPLIBConfig.cmake") install(FILES "${PROJECT_BINARY_DIR}/cmake/EMIPLIBConfig.cmake" DESTINATION ${LIBRARY_INSTALL_DIR}/cmake/EMIPLIB) diff --git a/ChangeLog b/ChangeLog index 2390c99..ed741c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,13 @@ EMIPLIB ChangeLog +Version 1.1.1, November 2011 + * Fixed a bug in the CMake configuration: was unable to handle + path names with spaces. + * In an MS-Windows environment you can now choose to build a + DLL instead of a static library. This should make it easier + to comply with the LGPL when working on that platform. + Version 1.1.0, July 2011 * Switched to CMake build system. * Bugfix in MIPAVCodecFrameConverter. Forgot to copy media info. diff --git a/README b/README index e1bf11b..ec0e84b 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ EMIPLIB README - (1.1.0) + (1.1.1) 1. INTRODUCTION @@ -84,7 +84,7 @@ available to the public and for allowing us to include a derived version in this library. The component which converts JPEG data into an uncompressed image -used the Tiny Jpeg Decoder by Luc Saillard. Thanks for making this +uses the Tiny Jpeg Decoder by Luc Saillard. Thanks for making this publically available. Please see the source code in src/thirdparty/tinyjpeg for more information about copyright and disclaimer. diff --git a/cmake/EMIPLIBConfig.cmake.in b/cmake/EMIPLIBConfig.cmake.in index a8cdab5..e42eaf5 100644 --- a/cmake/EMIPLIBConfig.cmake.in +++ b/cmake/EMIPLIBConfig.cmake.in @@ -1,7 +1,7 @@ set(EMIPLIB_FOUND 1) -set(EMIPLIB_INCLUDE_DIRS ${EMIPLIB_INCDIRS}) +set(EMIPLIB_INCLUDE_DIRS ${EMIPLIB_INCDIRS_CMAKECONFIG}) -set(EMIPLIB_LIBRARIES ${EMIPLIB_LIBS}) +set(EMIPLIB_LIBRARIES ${EMIPLIB_LIBS_CMAKECONFIG}) diff --git a/doc/mainpage.h b/doc/mainpage.h index 9556955..93cf6c5 100644 --- a/doc/mainpage.h +++ b/doc/mainpage.h @@ -36,7 +36,7 @@ * * \endhtmlonly * - * \mainpage EMIPLIB 1.1.0 + * \mainpage EMIPLIB 1.1.1 * * * \author Hasselt University - Expertise Centre for Digital Media diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index e87475f..f81e4a2 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -4,6 +4,10 @@ apply_include_paths("${EMIPLIB_EXTERNAL_INCLUDES}") foreach(IDX avsession feedbackexample multiplesoundfileplayer simplechain soundfileplayer soundrecorder pushtotalk pushtotalk2) add_executable(${IDX} ${IDX}.cpp) - target_link_libraries(${IDX} emiplib-static ${EMIPLIB_LINK_LIBS}) + if (UNIX OR EMIPLIB_COMPILE_STATIC) + target_link_libraries(${IDX} emiplib-static ${EMIPLIB_LINK_LIBS}) + else () + target_link_libraries(${IDX} emiplib-shared ${EMIPLIB_LINK_LIBS}) + endif (UNIX OR EMIPLIB_COMPILE_STATIC) endforeach(IDX) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e4872ad..4fe1444 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,5 @@ +add_definitions(-DEMIPLIB_COMPILING) + set(HEADERS core/mipcompat.h core/mipmessage.h @@ -247,25 +249,31 @@ endif (NOT UNIX AND WIN32) apply_include_paths("${EMIPLIB_INTERNAL_INCLUDES}") apply_include_paths("${EMIPLIB_EXTERNAL_INCLUDES}") -add_library(emiplib-static STATIC ${SOURCES} ${HEADERS}) -if (UNIX) - set_target_properties(emiplib-static PROPERTIES OUTPUT_NAME emip) -else (UNIX) - set_target_properties(emiplib-static PROPERTIES OUTPUT_NAME emiplib) -endif (UNIX) -set_target_properties(emiplib-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) -set(EMIPLIB_INSTALLTARGETS emiplib-static) +if (UNIX OR EMIPLIB_COMPILE_STATIC) + add_library(emiplib-static STATIC ${SOURCES} ${HEADERS}) + if (UNIX) + set_target_properties(emiplib-static PROPERTIES OUTPUT_NAME emip) + else (UNIX) + set_target_properties(emiplib-static PROPERTIES OUTPUT_NAME emiplib) + endif (UNIX) + set_target_properties(emiplib-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) + set(EMIPLIB_INSTALLTARGETS emiplib-static) +endif (UNIX OR EMIPLIB_COMPILE_STATIC) -if (UNIX) +if (UNIX OR NOT EMIPLIB_COMPILE_STATIC) add_library(emiplib-shared SHARED ${SOURCES} ${HEADERS}) set_target_properties(emiplib-shared PROPERTIES VERSION ${VERSION}) - set_target_properties(emiplib-shared PROPERTIES OUTPUT_NAME emip) + if (UNIX) + set_target_properties(emiplib-shared PROPERTIES OUTPUT_NAME emip) + else (UNIX) + set_target_properties(emiplib-shared PROPERTIES OUTPUT_NAME emiplib) + endif (UNIX) set_target_properties(emiplib-shared PROPERTIES CLEAN_DIRECT_OUTPUT 1) set(EMIPLIB_INSTALLTARGETS ${EMIPLIB_INSTALLTARGETS} emiplib-shared) if (EMIPLIB_LINK) target_link_libraries(emiplib-shared ${EMIPLIB_LINK_LIBS}) endif (EMIPLIB_LINK) -endif (UNIX) +endif (UNIX OR NOT EMIPLIB_COMPILE_STATIC) install(FILES ${HEADERS} DESTINATION include/emiplib) install(TARGETS ${EMIPLIB_INSTALLTARGETS} DESTINATION ${LIBRARY_INSTALL_DIR}) diff --git a/src/components/codec/mipalawdecoder.h b/src/components/codec/mipalawdecoder.h index 7ff1f5f..a44e462 100644 --- a/src/components/codec/mipalawdecoder.h +++ b/src/components/codec/mipalawdecoder.h @@ -41,7 +41,7 @@ class MIPRaw16bitAudioMessage; * This component accepts a-law encoded audio messages and produces message * raw audio messages using 16 bit signed native endian encoding. */ -class MIPALawDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPALawDecoder : public MIPComponent { public: MIPALawDecoder(); diff --git a/src/components/codec/mipalawencoder.h b/src/components/codec/mipalawencoder.h index b486aa0..f8816fa 100644 --- a/src/components/codec/mipalawencoder.h +++ b/src/components/codec/mipalawencoder.h @@ -43,7 +43,7 @@ class MIPEncodedAudioMessage; * with type MIPMESSAGE_TYPE_AUDIO_ENCODED and subtype MIPENCODEDAUDIOMESSAGE_TYPE_ALAW * is produced. */ -class MIPALawEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPALawEncoder : public MIPComponent { public: MIPALawEncoder(); diff --git a/src/components/codec/mipavcodecdecoder.h b/src/components/codec/mipavcodecdecoder.h index bbffc2e..4170f46 100644 --- a/src/components/codec/mipavcodecdecoder.h +++ b/src/components/codec/mipavcodecdecoder.h @@ -61,7 +61,7 @@ class MIPRawYUV420PVideoMessage; * This component is a libavcodec based H.263+ decoder. It accepts encoded video messages with * subtype MIPENCODEDVIDEOMESSAGE_TYPE_H263P and creates raw video messages in YUV420P format. */ -class MIPAVCodecDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAVCodecDecoder : public MIPComponent { public: MIPAVCodecDecoder(); diff --git a/src/components/codec/mipavcodecencoder.h b/src/components/codec/mipavcodecencoder.h index 1b7b85c..bc8c420 100644 --- a/src/components/codec/mipavcodecencoder.h +++ b/src/components/codec/mipavcodecencoder.h @@ -51,7 +51,7 @@ class MIPEncodedVideoMessage; * raw video messages in YUV420P format and creates encoded video messages with * subtype MIPENCODEDVIDEOMESSAGE_TYPE_H263P. */ -class MIPAVCodecEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAVCodecEncoder : public MIPComponent { public: MIPAVCodecEncoder(); diff --git a/src/components/codec/mipgsmdecoder.h b/src/components/codec/mipgsmdecoder.h index 7e0087e..219e745 100644 --- a/src/components/codec/mipgsmdecoder.h +++ b/src/components/codec/mipgsmdecoder.h @@ -51,7 +51,7 @@ struct gsm_state; * should be MIPEncodedAudioMessage instances with subtype MIPENCODEDAUDIOMESSAGE_TYPE_GSM. * The component generates signed 16 bit native endian encoded raw audio messages. */ -class MIPGSMDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPGSMDecoder : public MIPComponent { public: MIPGSMDecoder(); diff --git a/src/components/codec/mipgsmencoder.h b/src/components/codec/mipgsmencoder.h index 2d85e43..20f8b98 100644 --- a/src/components/codec/mipgsmencoder.h +++ b/src/components/codec/mipgsmencoder.h @@ -46,7 +46,7 @@ struct gsm_state; * be compressed using the GSM 06.10 codec. Messages generated by this component * are encoded audio messages with subtype MIPENCODEDAUDIOMESSAGE_TYPE_GSM. */ -class MIPGSMEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPGSMEncoder : public MIPComponent { public: MIPGSMEncoder(); diff --git a/src/components/codec/miplpcdecoder.h b/src/components/codec/miplpcdecoder.h index 59acbcb..7e1f572 100644 --- a/src/components/codec/miplpcdecoder.h +++ b/src/components/codec/miplpcdecoder.h @@ -51,7 +51,7 @@ class LPCDecoder; * should be MIPEncodedAudioMessage instances with subtype MIPENCODEDAUDIOMESSAGE_TYPE_LPC. * The component generates signed 16 bit native endian encoded raw audio messages. */ -class MIPLPCDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPLPCDecoder : public MIPComponent { public: MIPLPCDecoder(); diff --git a/src/components/codec/miplpcencoder.h b/src/components/codec/miplpcencoder.h index 0b0bd39..be9b8be 100644 --- a/src/components/codec/miplpcencoder.h +++ b/src/components/codec/miplpcencoder.h @@ -46,7 +46,7 @@ class LPCEncoder; * compressed using the LPC codec. Messages generated by this component * are encoded audio messages with subtype MIPENCODEDAUDIOMESSAGE_TYPE_LPC. */ -class MIPLPCEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPLPCEncoder : public MIPComponent { public: MIPLPCEncoder(); diff --git a/src/components/codec/mipsilkdecoder.h b/src/components/codec/mipsilkdecoder.h index 00ae7c8..22823ba 100644 --- a/src/components/codec/mipsilkdecoder.h +++ b/src/components/codec/mipsilkdecoder.h @@ -50,7 +50,7 @@ class MIPAudioMessage; * should be MIPEncodedAudioMessage instances with subtype MIPENCODEDAUDIOMESSAGE_TYPE_SILK. * The component generates signed 16 bit native endian encoded raw audio messages. */ -class MIPSILKDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSILKDecoder : public MIPComponent { public: MIPSILKDecoder(); diff --git a/src/components/codec/mipsilkencoder.cpp b/src/components/codec/mipsilkencoder.cpp index f313c36..f18cdee 100644 --- a/src/components/codec/mipsilkencoder.cpp +++ b/src/components/codec/mipsilkencoder.cpp @@ -38,7 +38,7 @@ #define MIPSILKENCODER_ERRSTR_NOTINIT "Not initialized" #define MIPSILKENCODER_ERRSTR_ALREADYINIT "Already initialized" #define MIPSILKENCODER_ERRSTR_CANTGETENCODERSIZE "Unable to retrieve appropriate encoder state size" -#define MIPSILKENCODER_ERRSTR_INVALIDBITRATE "Bitrate must lie between 5000 and 100000 bps" +//#define MIPSILKENCODER_ERRSTR_INVALIDBITRATE "Bitrate must lie between 5000 and 100000 bps" #define MIPSILKENCODER_ERRSTR_INVALIDENCODERSAMPLINGRATE "Encoder sampling rate must be one of 8000, 12000, 16000 and 24000 Hz" #define MIPSILKENCODER_ERRSTR_INVALIDINPUTSAMPLINGRATE "Input sampling rate must be one of 8000, 12000, 16000, 24000, 32000, 44100 and 48000 Hz" #define MIPSILKENCODER_ERRSTR_INVALIDINTERVAL "Interval must be either 20, 40, 60, 80 or 100 ms" @@ -80,11 +80,16 @@ bool MIPSILKEncoder::init(int samplingRate, MIPTime interval, int targetBitrate, return false; } + if (targetBitrate < 0) + targetBitrate = 0; + + /* if (targetBitrate < 5000 || targetBitrate > 100000) { setErrorString(MIPSILKENCODER_ERRSTR_INVALIDBITRATE); return false; } + */ int intervalMs = (int)(interval.getValue()*1000.0 + 0.5); diff --git a/src/components/codec/mipsilkencoder.h b/src/components/codec/mipsilkencoder.h index f1b507b..7636dfc 100644 --- a/src/components/codec/mipsilkencoder.h +++ b/src/components/codec/mipsilkencoder.h @@ -45,13 +45,23 @@ class MIPEncodedAudioMessage; * codec. Messages generated by this component are encoded audio messages with subtype * MIPENCODEDAUDIOMESSAGE_TYPE_SILK. */ -class MIPSILKEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSILKEncoder : public MIPComponent { public: MIPSILKEncoder(); ~MIPSILKEncoder(); + /** Initializes the SILK encoder. + * Initializes the SILK encoder. + * \param inputSamplingRate The sampling rate of audio messages going into the component. + * \param interval The interval contained in each incoming audio message. Should be a + * multiple of 20 ms, with a maximum value of 100 ms. + * \param targetBitrate The target bitrate of the encoder. + * \param encoderSamplingRate The maximum sampling rate used internally by the encoder. + */ bool init(int inputSamplingRate, MIPTime interval, int targetBitrate, int encoderSamplingRate); + + /** De-initializes the SILK encoder. */ bool destroy(); bool push(const MIPComponentChain &chain, int64_t iteration, MIPMessage *pMsg); diff --git a/src/components/codec/mipspeexdecoder.h b/src/components/codec/mipspeexdecoder.h index dd8ce19..a2ce5fb 100644 --- a/src/components/codec/mipspeexdecoder.h +++ b/src/components/codec/mipspeexdecoder.h @@ -52,7 +52,7 @@ struct SpeexBits; * The component generates floating point mono raw audio messages or signed 16 bit native endian * encoded raw audio messages. */ -class MIPSpeexDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSpeexDecoder : public MIPComponent { public: MIPSpeexDecoder(); diff --git a/src/components/codec/mipspeexencoder.h b/src/components/codec/mipspeexencoder.h index 82f07e1..2cc67a9 100644 --- a/src/components/codec/mipspeexencoder.h +++ b/src/components/codec/mipspeexencoder.h @@ -46,7 +46,7 @@ struct SpeexBits; * messages can be compressed using the Speex codec. Messages generated by this component * are encoded audio messages with subtype MIPENCODEDAUDIOMESSAGE_TYPE_SPEEX. */ -class MIPSpeexEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSpeexEncoder : public MIPComponent { public: /** Used to select speex encoding type. */ diff --git a/src/components/codec/miptinyjpegdecoder.h b/src/components/codec/miptinyjpegdecoder.h index c560303..3c5e314 100644 --- a/src/components/codec/miptinyjpegdecoder.h +++ b/src/components/codec/miptinyjpegdecoder.h @@ -40,7 +40,7 @@ class MIPVideoMessage; * A JPEG decoder based on the Tiny JPEG Decoder library. It accepts frames that * are JPEG compressed and outputs YUV420P frames. */ -class MIPTinyJPEGDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPTinyJPEGDecoder : public MIPComponent { public: MIPTinyJPEGDecoder(); diff --git a/src/components/codec/mipulawdecoder.h b/src/components/codec/mipulawdecoder.h index 0e8adf3..46283c3 100644 --- a/src/components/codec/mipulawdecoder.h +++ b/src/components/codec/mipulawdecoder.h @@ -1,24 +1,24 @@ /* - - This file is a part of EMIPLIB, the EDM Media over IP Library. - - Copyright (C) 2006-2011 Hasselt University - Expertise Centre for - Digital Media (EDM) (http://www.edm.uhasselt.be) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 - USA + + This file is a part of EMIPLIB, the EDM Media over IP Library. + + Copyright (C) 2006-2011 Hasselt University - Expertise Centre for + Digital Media (EDM) (http://www.edm.uhasselt.be) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 + USA */ @@ -41,7 +41,7 @@ class MIPRaw16bitAudioMessage; * This component accepts u-law encoded audio messages and produces message * raw audio messages using 16 bit signed native endian encoding. */ -class MIPULawDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPULawDecoder : public MIPComponent { public: MIPULawDecoder(); diff --git a/src/components/codec/mipulawencoder.h b/src/components/codec/mipulawencoder.h index 415c75a..4a7df77 100644 --- a/src/components/codec/mipulawencoder.h +++ b/src/components/codec/mipulawencoder.h @@ -43,7 +43,7 @@ class MIPEncodedAudioMessage; * with type MIPMESSAGE_TYPE_AUDIO_ENCODED and subtype MIPENCODEDAUDIOMESSAGE_TYPE_ULAW * is produced. */ -class MIPULawEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPULawEncoder : public MIPComponent { public: MIPULawEncoder(); diff --git a/src/components/input/mipaudiofileinput.h b/src/components/input/mipaudiofileinput.h index b375ade..abfaec6 100644 --- a/src/components/input/mipaudiofileinput.h +++ b/src/components/input/mipaudiofileinput.h @@ -49,7 +49,7 @@ * frame would consist of two samples: one for the left channel and one for * the right. */ -class MIPAudioFileInput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAudioFileInput : public MIPComponent { public: MIPAudioFileInput(); diff --git a/src/components/input/mipaudiorecorderinput.h b/src/components/input/mipaudiorecorderinput.h index 9258d71..cc4a9f7 100644 --- a/src/components/input/mipaudiorecorderinput.h +++ b/src/components/input/mipaudiorecorderinput.h @@ -53,7 +53,7 @@ namespace android * platform to capture audio. It should be placed at the start of a chain * and produces raw signed 16 bit audio messages, using native byte ordering. */ -class MIPAudioRecorderInput : public MIPComponent, public jthread::JThread +class EMIPLIB_IMPORTEXPORT MIPAudioRecorderInput : public MIPComponent, public jthread::JThread { public: MIPAudioRecorderInput(); diff --git a/src/components/input/mipdirectshowcapture.h b/src/components/input/mipdirectshowcapture.h index 07d6eb3..543dfb0 100644 --- a/src/components/input/mipdirectshowcapture.h +++ b/src/components/input/mipdirectshowcapture.h @@ -48,7 +48,7 @@ class MIPVideoMessage; * both MIPSYSTEMMESSAGE_TYPE_WAITTIME and MIPSYSTEMMESSAGE_TYPE_ISTIME messages * and created YUV420P encoded raw video messages. */ -class MIPDirectShowCapture : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPDirectShowCapture : public MIPComponent { public: MIPDirectShowCapture(); diff --git a/src/components/input/mipfrequencygenerator.h b/src/components/input/mipfrequencygenerator.h index ec2f43d..16e1bf5 100644 --- a/src/components/input/mipfrequencygenerator.h +++ b/src/components/input/mipfrequencygenerator.h @@ -42,7 +42,7 @@ class MIPRawFloatAudioMessage; * MIPSYSTEMMESSAGE_TYPE_ISTIME as input and generates stereo floating point * raw audio messages. */ -class MIPFrequencyGenerator : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPFrequencyGenerator : public MIPComponent { public: MIPFrequencyGenerator(); diff --git a/src/components/input/mipjackinput.h b/src/components/input/mipjackinput.h index 41b8cf9..fb70173 100644 --- a/src/components/input/mipjackinput.h +++ b/src/components/input/mipjackinput.h @@ -52,7 +52,7 @@ class MIPRawFloatAudioMessage; * frame would consist of two samples: one for the left channel and one for * the right. */ -class MIPJackInput : public MIPComponent, public jthread::JThread +class EMIPLIB_IMPORTEXPORT MIPJackInput : public MIPComponent, public jthread::JThread { public: MIPJackInput(); diff --git a/src/components/input/mipsndfileinput.h b/src/components/input/mipsndfileinput.h index 4e6199e..dc9b359 100644 --- a/src/components/input/mipsndfileinput.h +++ b/src/components/input/mipsndfileinput.h @@ -51,7 +51,7 @@ class MIPRawFloatAudioMessage; * frame would consist of two samples: one for the left channel and one for * the right. */ -class MIPSndFileInput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSndFileInput : public MIPComponent { public: MIPSndFileInput(); diff --git a/src/components/input/mipv4l2input.h b/src/components/input/mipv4l2input.h index 6cf4035..74becdd 100644 --- a/src/components/input/mipv4l2input.h +++ b/src/components/input/mipv4l2input.h @@ -48,7 +48,7 @@ class MIPVideoMessage; * recommended message to use. Output frames can be YUV420P encoded, YUYV encoded or JPEG * compressed. */ -class MIPV4L2Input : public MIPComponent, private jthread::JThread +class EMIPLIB_IMPORTEXPORT MIPV4L2Input : public MIPComponent, private jthread::JThread { public: MIPV4L2Input(); diff --git a/src/components/input/mipv4linput.h b/src/components/input/mipv4linput.h index f81acd2..ab0dbb4 100644 --- a/src/components/input/mipv4linput.h +++ b/src/components/input/mipv4linput.h @@ -42,7 +42,7 @@ class MIPRawYUV420PVideoMessage; /** Base class for video4linux input component parameters. */ -class MIPV4LInputParameters +class EMIPLIB_IMPORTEXPORT MIPV4LInputParameters { public: MIPV4LInputParameters() { } @@ -55,7 +55,7 @@ class MIPV4LInputParameters * The component accepts both MIPSYSTEMMESSAGE_TYPE_WAITTIME and MIPSYSTEMMESSAGE_TYPE_ISTIME * messages. */ -class MIPV4LInput : public MIPComponent, private jthread::JThread +class EMIPLIB_IMPORTEXPORT MIPV4LInput : public MIPComponent, private jthread::JThread { public: MIPV4LInput(); diff --git a/src/components/input/mipwavinput.h b/src/components/input/mipwavinput.h index 2f1508b..b57f9a9 100644 --- a/src/components/input/mipwavinput.h +++ b/src/components/input/mipwavinput.h @@ -48,7 +48,7 @@ class MIPWAVReader; * frame would consist of two samples: one for the left channel and one for * the right. */ -class MIPWAVInput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPWAVInput : public MIPComponent { public: MIPWAVInput(); diff --git a/src/components/input/mipwinmminput.h b/src/components/input/mipwinmminput.h index c2ba8f8..dd3bd68 100644 --- a/src/components/input/mipwinmminput.h +++ b/src/components/input/mipwinmminput.h @@ -53,7 +53,7 @@ class MIPRaw16bitAudioMessage; * messages. The messages generated are raw audio messages, containing 16 bit * signed little endian data. */ -class MIPWinMMInput : public MIPComponent, private jthread::JThread +class EMIPLIB_IMPORTEXPORT MIPWinMMInput : public MIPComponent, private jthread::JThread { public: MIPWinMMInput(); diff --git a/src/components/input/mipyuv420fileinput.h b/src/components/input/mipyuv420fileinput.h index 6939a19..9bf9f81 100644 --- a/src/components/input/mipyuv420fileinput.h +++ b/src/components/input/mipyuv420fileinput.h @@ -42,7 +42,7 @@ class MIPRawYUV420PVideoMessage; * messages as input, and produces a raw YUV420P video message as * output. */ -class MIPYUV420FileInput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPYUV420FileInput : public MIPComponent { public: MIPYUV420FileInput(); diff --git a/src/components/io/mipossinputoutput.h b/src/components/io/mipossinputoutput.h index 263a651..ff2e1cd 100644 --- a/src/components/io/mipossinputoutput.h +++ b/src/components/io/mipossinputoutput.h @@ -43,7 +43,7 @@ class MIPRaw16bitAudioMessage; /** Parameters for a MIPOSSInputOutput instance. */ -class MIPOSSInputOutputParams +class EMIPLIB_IMPORTEXPORT MIPOSSInputOutputParams { public: MIPOSSInputOutputParams() : m_bufferTime(10.0), m_ossBufferTime(0.007), m_devName("/dev/dsp") @@ -106,7 +106,7 @@ class MIPOSSInputOutputParams * an object of this type as start component and a connection from this object to * this object, thereby immediately playing back the captured audio. */ -class MIPOSSInputOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPOSSInputOutput : public MIPComponent { public: /** Indicates the access mode for the device. diff --git a/src/components/io/mippainputoutput.h b/src/components/io/mippainputoutput.h index e14d3f8..2ae0fd8 100644 --- a/src/components/io/mippainputoutput.h +++ b/src/components/io/mippainputoutput.h @@ -52,7 +52,7 @@ class MIPStreamBuffer; * output part of the component. Messages produced by this component are 16 bit * native endian raw audio messages. */ -class MIPPAInputOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPPAInputOutput : public MIPComponent { public: /** Indicates the access mode for the device. diff --git a/src/components/mixer/mipaudiomixer.h b/src/components/mixer/mipaudiomixer.h index 1bd0306..76ee59b 100644 --- a/src/components/mixer/mipaudiomixer.h +++ b/src/components/mixer/mipaudiomixer.h @@ -45,7 +45,7 @@ class MIPRawFloatAudioMessage; * can also work with signed 16 bit native raw audio messages. This component * generates feedback about the current offset in the output stream. */ -class MIPAudioMixer : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAudioMixer : public MIPComponent { public: MIPAudioMixer(); diff --git a/src/components/mixer/mipmediabuffer.h b/src/components/mixer/mipmediabuffer.h index 540d9cd..ee037b6 100644 --- a/src/components/mixer/mipmediabuffer.h +++ b/src/components/mixer/mipmediabuffer.h @@ -80,7 +80,7 @@ class MIPMediaMessage; * is used to try to send the messages to the Speex decoder in the right order. Note * that the component itself does not introduce extra delay. */ -class MIPMediaBuffer : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPMediaBuffer : public MIPComponent { public: MIPMediaBuffer(); diff --git a/src/components/mixer/mipvideomixer.h b/src/components/mixer/mipvideomixer.h index db8838f..b2d15ff 100644 --- a/src/components/mixer/mipvideomixer.h +++ b/src/components/mixer/mipvideomixer.h @@ -45,7 +45,7 @@ * During each interval, a number of raw video frames in YUV420P format is * produced. */ -class MIPVideoMixer : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPVideoMixer : public MIPComponent { public: MIPVideoMixer(); diff --git a/src/components/output/mipalsaoutput.h b/src/components/output/mipalsaoutput.h index 202b24b..b3fc541 100644 --- a/src/components/output/mipalsaoutput.h +++ b/src/components/output/mipalsaoutput.h @@ -45,7 +45,7 @@ * soundcard output functions. The component accepts floating point raw audio messages * or signed 16 bit integer encoded raw audio messages and does not generate any messages itself. */ -class MIPAlsaOutput : public MIPComponent, private jthread::JThread +class EMIPLIB_IMPORTEXPORT MIPAlsaOutput : public MIPComponent, private jthread::JThread { public: MIPAlsaOutput(); diff --git a/src/components/output/mipaudiotrackoutput.h b/src/components/output/mipaudiotrackoutput.h index 227a674..d109bb8 100644 --- a/src/components/output/mipaudiotrackoutput.h +++ b/src/components/output/mipaudiotrackoutput.h @@ -51,7 +51,7 @@ namespace android * messages, using native byte ordering. No output messages are * produced. */ -class MIPAudioTrackOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAudioTrackOutput : public MIPComponent { public: MIPAudioTrackOutput(); diff --git a/src/components/output/mipesdoutput.h b/src/components/output/mipesdoutput.h index 295048c..2e8aa9e 100644 --- a/src/components/output/mipesdoutput.h +++ b/src/components/output/mipesdoutput.h @@ -43,7 +43,7 @@ * soundcard output functions. The component accepts integer raw audio messages * (16 bit native endian) and does not generate any messages itself. */ -class MIPEsdOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPEsdOutput : public MIPComponent { public: MIPEsdOutput(); diff --git a/src/components/output/mipjackoutput.h b/src/components/output/mipjackoutput.h index 290d3ed..424b0f6 100644 --- a/src/components/output/mipjackoutput.h +++ b/src/components/output/mipjackoutput.h @@ -45,7 +45,7 @@ * It accepts stereo raw floating point audio messages and does not produce * any messages itself. */ -class MIPJackOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPJackOutput : public MIPComponent { public: MIPJackOutput(); diff --git a/src/components/output/mipmessagedumper.h b/src/components/output/mipmessagedumper.h index 3981682..3ae8bca 100644 --- a/src/components/output/mipmessagedumper.h +++ b/src/components/output/mipmessagedumper.h @@ -38,7 +38,7 @@ * to stdout. This can be useful for debugging. No messages are generated by the * component. */ -class MIPMessageDumper : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPMessageDumper : public MIPComponent { public: MIPMessageDumper(); diff --git a/src/components/output/mipopenaloutput.h b/src/components/output/mipopenaloutput.h index b5395f4..d041f9a 100644 --- a/src/components/output/mipopenaloutput.h +++ b/src/components/output/mipopenaloutput.h @@ -52,7 +52,7 @@ * - Support for source position properties relative to own position? * - Allow specification of distance attenuation properties. */ -class MIPOpenALOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPOpenALOutput : public MIPComponent { public: MIPOpenALOutput(); diff --git a/src/components/output/mipqtoutput.h b/src/components/output/mipqtoutput.h index 7e5def6..64a30e3 100644 --- a/src/components/output/mipqtoutput.h +++ b/src/components/output/mipqtoutput.h @@ -47,7 +47,7 @@ class MIPQtOutputWidget; * frames: one window is created for each source. Input video frames can be in either YUV420P * or 32-bit RGB format. */ -class MIPQtOutput : public MIPComponent, private jthread::JThread +class EMIPLIB_IMPORTEXPORT MIPQtOutput : public MIPComponent, private jthread::JThread { public: MIPQtOutput(); diff --git a/src/components/output/mipsdlaudiooutput.h b/src/components/output/mipsdlaudiooutput.h index 73f4b3b..cc9ccfa 100644 --- a/src/components/output/mipsdlaudiooutput.h +++ b/src/components/output/mipsdlaudiooutput.h @@ -43,7 +43,7 @@ * This component uses the SDL audio system to produce audio output. It accepts * 16 bit native endian raw audio messages and produces no messages itself. */ -class MIPSDLAudioOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSDLAudioOutput : public MIPComponent { public: MIPSDLAudioOutput(); diff --git a/src/components/output/mipsndfileoutput.h b/src/components/output/mipsndfileoutput.h index 48f8c68..c628a93 100644 --- a/src/components/output/mipsndfileoutput.h +++ b/src/components/output/mipsndfileoutput.h @@ -42,7 +42,7 @@ * accomplish this. Incoming messages have to be floating point raw audio messages. * No messages are generated by this component. */ -class MIPSndFileOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSndFileOutput : public MIPComponent { public: MIPSndFileOutput(); diff --git a/src/components/output/mipvideoframestorage.h b/src/components/output/mipvideoframestorage.h index 8ffe2a1..2260586 100644 --- a/src/components/output/mipvideoframestorage.h +++ b/src/components/output/mipvideoframestorage.h @@ -40,7 +40,7 @@ * This component accepts raw video frames in YUV420P format and stores the last frame * received from each source. It does not produce any messages itself. */ -class MIPVideoFrameStorage : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPVideoFrameStorage : public MIPComponent { public: MIPVideoFrameStorage(); diff --git a/src/components/output/mipwavoutput.h b/src/components/output/mipwavoutput.h index 063b15f..c23fd20 100644 --- a/src/components/output/mipwavoutput.h +++ b/src/components/output/mipwavoutput.h @@ -40,7 +40,7 @@ class MIPWAVWriter; * WAV file write to accomplish this. Incoming messages have to be unsigned 8 bit audio messages. * No messages are generated by this component. */ -class MIPWAVOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPWAVOutput : public MIPComponent { public: MIPWAVOutput(); diff --git a/src/components/output/mipwinmmoutput.h b/src/components/output/mipwinmmoutput.h index d62a95d..98c9c72 100644 --- a/src/components/output/mipwinmmoutput.h +++ b/src/components/output/mipwinmmoutput.h @@ -49,7 +49,7 @@ * accepts raw audio messages using signed 16 bit little endian encoding. * No messages are generated by the component. */ -class MIPWinMMOutput : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPWinMMOutput : public MIPComponent { public: MIPWinMMOutput(); diff --git a/src/components/timer/mipaveragetimer.h b/src/components/timer/mipaveragetimer.h index 963a3d3..08a1508 100644 --- a/src/components/timer/mipaveragetimer.h +++ b/src/components/timer/mipaveragetimer.h @@ -43,7 +43,7 @@ class MIPComponentChain; * specified interval has elapsed. Note that this is only on average after each interval: * fluctuation will be present. */ -class MIPAverageTimer : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAverageTimer : public MIPComponent { public: /** Creates a timing object. diff --git a/src/components/timer/mipinterchaintimer.h b/src/components/timer/mipinterchaintimer.h index 44e51f8..e4fddab 100644 --- a/src/components/timer/mipinterchaintimer.h +++ b/src/components/timer/mipinterchaintimer.h @@ -44,7 +44,7 @@ * trigger component accepts any incoming message; the main component only accepts * a MIPSYSTEMMESSAGE_TYPE_WAITTIME message. */ -class MIPInterChainTimer : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPInterChainTimer : public MIPComponent { public: MIPInterChainTimer(); diff --git a/src/components/timer/mippusheventtimer.h b/src/components/timer/mippusheventtimer.h index 63634df..b339fdf 100644 --- a/src/components/timer/mippusheventtimer.h +++ b/src/components/timer/mippusheventtimer.h @@ -44,7 +44,7 @@ * You can then add a link from the soundcard input component to this component * to make this component behave like it's a timing component. */ -class MIPPushEventTimer : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPPushEventTimer : public MIPComponent { public: MIPPushEventTimer(); diff --git a/src/components/transform/mipaudio3dbase.h b/src/components/transform/mipaudio3dbase.h index 1c04a27..35b04e6 100644 --- a/src/components/transform/mipaudio3dbase.h +++ b/src/components/transform/mipaudio3dbase.h @@ -48,7 +48,7 @@ * works on a different scale, a scale factor can be installed to compensate. Finally, the class provides * an implementation of the convolution product. */ -class MIPAudio3DBase : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAudio3DBase : public MIPComponent { protected: /** Constructor to be used by derived classes. */ diff --git a/src/components/transform/mipaudiodistancefade.h b/src/components/transform/mipaudiodistancefade.h index e0827dc..7d6342b 100644 --- a/src/components/transform/mipaudiodistancefade.h +++ b/src/components/transform/mipaudiodistancefade.h @@ -40,7 +40,7 @@ class MIPRawFloatAudioMessage; * A simple 3D audio component which only takes the distance between participants into account. * The compontent accepts and produces floating point raw audio messages. */ -class MIPAudioDistanceFade : public MIPAudio3DBase +class EMIPLIB_IMPORTEXPORT MIPAudioDistanceFade : public MIPAudio3DBase { public: MIPAudioDistanceFade(); diff --git a/src/components/transform/mipaudiofilter.h b/src/components/transform/mipaudiofilter.h index ce30575..9931973 100644 --- a/src/components/transform/mipaudiofilter.h +++ b/src/components/transform/mipaudiofilter.h @@ -42,7 +42,7 @@ class MIPAudioMessage; * Removes a frequency range from audio messages. * It accepts floating point raw audio messages and produces similar audio messages. */ -class MIPAudioFilter : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAudioFilter : public MIPComponent { public: MIPAudioFilter(); diff --git a/src/components/transform/mipaudiosplitter.h b/src/components/transform/mipaudiosplitter.h index 08e403d..047e5b6 100644 --- a/src/components/transform/mipaudiosplitter.h +++ b/src/components/transform/mipaudiosplitter.h @@ -41,7 +41,7 @@ class MIPAudioMessage; * This component takes raw audio messages as its input and produces similar * messages, containing at most a specified amount of data. */ -class MIPAudioSplitter : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAudioSplitter : public MIPComponent { public: MIPAudioSplitter(); diff --git a/src/components/transform/mipavcodecframeconverter.h b/src/components/transform/mipavcodecframeconverter.h index 05f03d8..06a60ad 100644 --- a/src/components/transform/mipavcodecframeconverter.h +++ b/src/components/transform/mipavcodecframeconverter.h @@ -61,7 +61,7 @@ class MIPVideoMessage; * This component will convert incoming video frames to a specific width, height * and format. To do this, the libavcodec library is used. */ -class MIPAVCodecFrameConverter : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPAVCodecFrameConverter : public MIPComponent { public: MIPAVCodecFrameConverter(); diff --git a/src/components/transform/miphrirbase.h b/src/components/transform/miphrirbase.h index b2c6e1b..4f1a1ca 100644 --- a/src/components/transform/miphrirbase.h +++ b/src/components/transform/miphrirbase.h @@ -36,7 +36,7 @@ #include /** Base class for HRIR based 3D audio components. */ -class MIPHRIRBase : public MIPAudio3DBase +class EMIPLIB_IMPORTEXPORT MIPHRIRBase : public MIPAudio3DBase { protected: /** Constructor to be used by derived classes. */ diff --git a/src/components/transform/miphrirlisten.h b/src/components/transform/miphrirlisten.h index 1cea445..010f1df 100644 --- a/src/components/transform/miphrirlisten.h +++ b/src/components/transform/miphrirlisten.h @@ -42,7 +42,7 @@ class MIPRawFloatAudioMessage; * stereo raw floating point audio messages. The sound in the output messages will * have a 3D effect, based upon your own location and the location of the sound source. */ -class MIPHRIRListen : public MIPHRIRBase +class EMIPLIB_IMPORTEXPORT MIPHRIRListen : public MIPHRIRBase { public: MIPHRIRListen(); diff --git a/src/components/transform/mipsampleencoder.h b/src/components/transform/mipsampleencoder.h index 8dedc7e..0ce92a1 100644 --- a/src/components/transform/mipsampleencoder.h +++ b/src/components/transform/mipsampleencoder.h @@ -42,7 +42,7 @@ class MIPAudioMessage; * It accepts all raw audio messages and produces similar raw audio messages, using * a predefined encoding type. */ -class MIPSampleEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSampleEncoder : public MIPComponent { public: MIPSampleEncoder(); diff --git a/src/components/transform/mipsamplingrateconverter.h b/src/components/transform/mipsamplingrateconverter.h index f35464e..7030a93 100644 --- a/src/components/transform/mipsamplingrateconverter.h +++ b/src/components/transform/mipsamplingrateconverter.h @@ -42,7 +42,7 @@ class MIPAudioMessage; * similar messages with a specific sampling rate and number of channels set during * initialization. */ -class MIPSamplingRateConverter : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSamplingRateConverter : public MIPComponent { public: MIPSamplingRateConverter(); diff --git a/src/components/transform/mipspeexechocanceller.h b/src/components/transform/mipspeexechocanceller.h index aae6cea..7559579 100644 --- a/src/components/transform/mipspeexechocanceller.h +++ b/src/components/transform/mipspeexechocanceller.h @@ -57,7 +57,7 @@ * component, initialized with \c useTimeInfo set to \c false, and by using the * MIPAudioMixer::setExtraDelay function. */ -class MIPSpeexEchoCanceller : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPSpeexEchoCanceller : public MIPComponent { public: MIPSpeexEchoCanceller(); diff --git a/src/components/transform/mipyuv420framecutter.h b/src/components/transform/mipyuv420framecutter.h index 0170a47..d44a013 100644 --- a/src/components/transform/mipyuv420framecutter.h +++ b/src/components/transform/mipyuv420framecutter.h @@ -42,7 +42,7 @@ class MIPVideoMessage; * creates a video frame (same encoding) which containts a part of the * input frame as output. */ -class MIPYUV420FrameCutter : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPYUV420FrameCutter : public MIPComponent { public: MIPYUV420FrameCutter(); diff --git a/src/components/transmission/miprtpalawdecoder.h b/src/components/transmission/miprtpalawdecoder.h index 57bc440..dbad3a9 100644 --- a/src/components/transmission/miprtpalawdecoder.h +++ b/src/components/transmission/miprtpalawdecoder.h @@ -37,7 +37,7 @@ * This class takes MIPRTPReceiveMessages as input and generates * U-law encoded audio messages. */ -class MIPRTPALawDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPALawDecoder : public MIPRTPPacketDecoder { public: MIPRTPALawDecoder(); diff --git a/src/components/transmission/miprtpalawencoder.h b/src/components/transmission/miprtpalawencoder.h index c3b9120..a6389e1 100644 --- a/src/components/transmission/miprtpalawencoder.h +++ b/src/components/transmission/miprtpalawencoder.h @@ -40,7 +40,7 @@ class MIPRTPSendMessage; * This component accepts incoming A-law encoded 8000Hz mono audio packets and generates * MIPRTPSendMessage objects which can then be transferred to a MIPRTPComponent instance. */ -class MIPRTPALawEncoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPALawEncoder : public MIPRTPEncoder { public: MIPRTPALawEncoder(); diff --git a/src/components/transmission/miprtpcomponent.h b/src/components/transmission/miprtpcomponent.h index dc1bee3..af22a4d 100644 --- a/src/components/transmission/miprtpcomponent.h +++ b/src/components/transmission/miprtpcomponent.h @@ -50,7 +50,7 @@ namespace jrtplib * MIPRTPSendMessage are accepted. Messages produced by this component are of type * MIPRTPReceiveMessage. */ -class MIPRTPComponent : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPRTPComponent : public MIPComponent { public: MIPRTPComponent(); diff --git a/src/components/transmission/miprtpdecoder.h b/src/components/transmission/miprtpdecoder.h index 5bc8b84..c856b03 100644 --- a/src/components/transmission/miprtpdecoder.h +++ b/src/components/transmission/miprtpdecoder.h @@ -62,7 +62,7 @@ class MIPRTPPacketDecoder; * generation code, therefore it is the derived class that decides which messages * can be generated. */ -class MIPRTPDecoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPRTPDecoder : public MIPComponent { public: MIPRTPDecoder(); @@ -95,7 +95,7 @@ class MIPRTPDecoder : public MIPComponent * Sets the maximum amount of jitter buffering that may be done. Set it to a negative * value (default setting) to allow unconstrained jitter buffering. */ - bool setMaximumJitterBuffering(MIPTime t) { m_maxJitterBuffer = t; } + void setMaximumJitterBuffering(MIPTime t) { m_maxJitterBuffer = t; } bool push(const MIPComponentChain &chain, int64_t iteration, MIPMessage *pMsg); bool pull(const MIPComponentChain &chain, int64_t iteration, MIPMessage **pMsg); diff --git a/src/components/transmission/miprtpdummydecoder.h b/src/components/transmission/miprtpdummydecoder.h index d83195d..c7f45df 100644 --- a/src/components/transmission/miprtpdummydecoder.h +++ b/src/components/transmission/miprtpdummydecoder.h @@ -40,7 +40,7 @@ * happening, a dummy RTP packet decoder can be installed as default packet * decoder. */ -class MIPRTPDummyDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPDummyDecoder : public MIPRTPPacketDecoder { public: MIPRTPDummyDecoder() { } diff --git a/src/components/transmission/miprtpencoder.h b/src/components/transmission/miprtpencoder.h index 518073c..db7338b 100644 --- a/src/components/transmission/miprtpencoder.h +++ b/src/components/transmission/miprtpencoder.h @@ -36,7 +36,7 @@ /** Base class for RTP encoders. * Base class for RTP encoders. Contains a member function to set the payload type. */ -class MIPRTPEncoder : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPRTPEncoder : public MIPComponent { public: MIPRTPEncoder(const std::string &compName) : MIPComponent(compName) { m_payloadType = 0; } diff --git a/src/components/transmission/miprtpgsmdecoder.h b/src/components/transmission/miprtpgsmdecoder.h index 268766c..d64abb4 100644 --- a/src/components/transmission/miprtpgsmdecoder.h +++ b/src/components/transmission/miprtpgsmdecoder.h @@ -37,7 +37,7 @@ * This class takes MIPRTPReceiveMessages as input and generates * GSM encoded audio messages. */ -class MIPRTPGSMDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPGSMDecoder : public MIPRTPPacketDecoder { public: MIPRTPGSMDecoder(); diff --git a/src/components/transmission/miprtpgsmencoder.h b/src/components/transmission/miprtpgsmencoder.h index eb631c3..f25d6ee 100644 --- a/src/components/transmission/miprtpgsmencoder.h +++ b/src/components/transmission/miprtpgsmencoder.h @@ -43,7 +43,7 @@ class MIPRTPSendMessage; * This component accepts incoming GSM compressed audio packets and generates * MIPRTPSendMessage objects which can then be transferred to a MIPRTPComponent instance. */ -class MIPRTPGSMEncoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPGSMEncoder : public MIPRTPEncoder { public: MIPRTPGSMEncoder(); diff --git a/src/components/transmission/miprtph263decoder.h b/src/components/transmission/miprtph263decoder.h index c8710fd..1b2f443 100644 --- a/src/components/transmission/miprtph263decoder.h +++ b/src/components/transmission/miprtph263decoder.h @@ -44,7 +44,7 @@ * This class takes MIPRTPReceiveMessages as input and generates * H.263 video messages. */ -class MIPRTPH263Decoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPH263Decoder : public MIPRTPPacketDecoder { public: MIPRTPH263Decoder(); diff --git a/src/components/transmission/miprtph263encoder.h b/src/components/transmission/miprtph263encoder.h index 8f9816c..196b311 100644 --- a/src/components/transmission/miprtph263encoder.h +++ b/src/components/transmission/miprtph263encoder.h @@ -41,7 +41,7 @@ class MIPRTPSendMessage; * and generates MIPRTPSendMessage objects which can then be transferred * to a MIPRTPComponent instance. */ -class MIPRTPH263Encoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPH263Encoder : public MIPRTPEncoder { public: MIPRTPH263Encoder(); diff --git a/src/components/transmission/miprtpl16decoder.h b/src/components/transmission/miprtpl16decoder.h index 9602625..f242076 100644 --- a/src/components/transmission/miprtpl16decoder.h +++ b/src/components/transmission/miprtpl16decoder.h @@ -39,7 +39,7 @@ * raw audio messages containing signed 16 bit big endian samples of a * specific sampling rate. */ -class MIPRTPL16Decoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPL16Decoder : public MIPRTPPacketDecoder { public: MIPRTPL16Decoder(bool stereo, int sampRate = 44100); diff --git a/src/components/transmission/miprtpl16encoder.h b/src/components/transmission/miprtpl16encoder.h index 1494d2a..8faea35 100644 --- a/src/components/transmission/miprtpl16encoder.h +++ b/src/components/transmission/miprtpl16encoder.h @@ -42,7 +42,7 @@ class MIPRTPSendMessage; * which can then be transferred to a MIPRTPComponent instance. The default sampling * rate is 44100 Hz, which corresponds to a predefined payload type in RFC 3551. */ -class MIPRTPL16Encoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPL16Encoder : public MIPRTPEncoder { public: MIPRTPL16Encoder(); diff --git a/src/components/transmission/miprtplpcdecoder.h b/src/components/transmission/miprtplpcdecoder.h index 19daf18..c3eb397 100644 --- a/src/components/transmission/miprtplpcdecoder.h +++ b/src/components/transmission/miprtplpcdecoder.h @@ -37,7 +37,7 @@ * This class takes MIPRTPReceiveMessages as input and generates * LPC encoded audio messages. */ -class MIPRTPLPCDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPLPCDecoder : public MIPRTPPacketDecoder { public: MIPRTPLPCDecoder(); diff --git a/src/components/transmission/miprtplpcencoder.h b/src/components/transmission/miprtplpcencoder.h index 1f1b764..2a89131 100644 --- a/src/components/transmission/miprtplpcencoder.h +++ b/src/components/transmission/miprtplpcencoder.h @@ -43,7 +43,7 @@ class MIPRTPSendMessage; * This component accepts incoming LPC compressed audio packets and generates * MIPRTPSendMessage objects which can then be transferred to a MIPRTPComponent instance. */ -class MIPRTPLPCEncoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPLPCEncoder : public MIPRTPEncoder { public: MIPRTPLPCEncoder(); diff --git a/src/components/transmission/miprtppacketdecoder.h b/src/components/transmission/miprtppacketdecoder.h index e688b93..91054e9 100644 --- a/src/components/transmission/miprtppacketdecoder.h +++ b/src/components/transmission/miprtppacketdecoder.h @@ -42,7 +42,7 @@ namespace jrtplib class MIPMediaMessage; /** Abstract base class for RTP packet decoders for a specific kind of payload. */ -class MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPPacketDecoder { public: MIPRTPPacketDecoder() { } diff --git a/src/components/transmission/miprtpsilkdecoder.h b/src/components/transmission/miprtpsilkdecoder.h index 911d506..825edb6 100644 --- a/src/components/transmission/miprtpsilkdecoder.h +++ b/src/components/transmission/miprtpsilkdecoder.h @@ -38,9 +38,13 @@ /** This class decodes incoming RTP data into SILK messages. * This class takes MIPRTPReceiveMessages as input and generates - * SILK audio messages. + * SILK audio messages. For the best result, the user should set the timestamp + * unit of each RTPSourceData instance from which SILK messages are being + * received. If not, the component can derive this timestamp unit when two + * consecutive RTCP sender reports from that source have been received, but + * this can take a number of seconds. */ -class MIPRTPSILKDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPSILKDecoder : public MIPRTPPacketDecoder { public: MIPRTPSILKDecoder(); diff --git a/src/components/transmission/miprtpsilkencoder.h b/src/components/transmission/miprtpsilkencoder.h index 08e65c6..6805cfb 100644 --- a/src/components/transmission/miprtpsilkencoder.h +++ b/src/components/transmission/miprtpsilkencoder.h @@ -43,13 +43,17 @@ class MIPRTPSendMessage; * This component accepts incoming SILK compressed audio packets and generates * MIPRTPSendMessage objects which can then be transferred to a MIPRTPComponent instance. */ -class MIPRTPSILKEncoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPSILKEncoder : public MIPRTPEncoder { public: MIPRTPSILKEncoder(); ~MIPRTPSILKEncoder(); - /** Initializes the encoder. */ + /** Initializes the encoder. + * Initializes the component. + * \param timestampsPerSecond Tells the component how much the RTP timestamp should be increased + * each second. This can be either 8000, 12000, 16000 or 24000. + */ bool init(int timestampsPerSecond); bool push(const MIPComponentChain &chain, int64_t iteration, MIPMessage *pMsg); diff --git a/src/components/transmission/miprtpspeexdecoder.h b/src/components/transmission/miprtpspeexdecoder.h index 0f98c0d..41bad3f 100644 --- a/src/components/transmission/miprtpspeexdecoder.h +++ b/src/components/transmission/miprtpspeexdecoder.h @@ -41,7 +41,7 @@ * This class takes MIPRTPReceiveMessages as input and generates * Speex audio messages. */ -class MIPRTPSpeexDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPSpeexDecoder : public MIPRTPPacketDecoder { public: MIPRTPSpeexDecoder(); diff --git a/src/components/transmission/miprtpspeexencoder.h b/src/components/transmission/miprtpspeexencoder.h index e74c95b..1f7f292 100644 --- a/src/components/transmission/miprtpspeexencoder.h +++ b/src/components/transmission/miprtpspeexencoder.h @@ -43,7 +43,7 @@ class MIPRTPSendMessage; * This component accepts incoming Speex compressed audio packets and generates * MIPRTPSendMessage objects which can then be transferred to a MIPRTPComponent instance. */ -class MIPRTPSpeexEncoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPSpeexEncoder : public MIPRTPEncoder { public: MIPRTPSpeexEncoder(); diff --git a/src/components/transmission/miprtpulawdecoder.h b/src/components/transmission/miprtpulawdecoder.h index af83081..8e96a6d 100644 --- a/src/components/transmission/miprtpulawdecoder.h +++ b/src/components/transmission/miprtpulawdecoder.h @@ -37,7 +37,7 @@ * This class takes MIPRTPReceiveMessages as input and generates * U-law encoded audio messages. */ -class MIPRTPULawDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPULawDecoder : public MIPRTPPacketDecoder { public: MIPRTPULawDecoder(); diff --git a/src/components/transmission/miprtpulawencoder.h b/src/components/transmission/miprtpulawencoder.h index 41298c0..8233911 100644 --- a/src/components/transmission/miprtpulawencoder.h +++ b/src/components/transmission/miprtpulawencoder.h @@ -40,7 +40,7 @@ class MIPRTPSendMessage; * This component accepts incoming U-law encoded 8000Hz mono audio packets and generates * MIPRTPSendMessage objects which can then be transferred to a MIPRTPComponent instance. */ -class MIPRTPULawEncoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPULawEncoder : public MIPRTPEncoder { public: MIPRTPULawEncoder(); diff --git a/src/components/transmission/miprtpvideodecoder.h b/src/components/transmission/miprtpvideodecoder.h index f8dd921..38156d1 100644 --- a/src/components/transmission/miprtpvideodecoder.h +++ b/src/components/transmission/miprtpvideodecoder.h @@ -45,7 +45,7 @@ * video messages. The RTP messages themselves should use the * internal format provided by MIPRTPVideoEncoder. */ -class MIPRTPVideoDecoder : public MIPRTPPacketDecoder +class EMIPLIB_IMPORTEXPORT MIPRTPVideoDecoder : public MIPRTPPacketDecoder { public: MIPRTPVideoDecoder(); diff --git a/src/components/transmission/miprtpvideoencoder.h b/src/components/transmission/miprtpvideoencoder.h index 7261749..4e0d35c 100644 --- a/src/components/transmission/miprtpvideoencoder.h +++ b/src/components/transmission/miprtpvideoencoder.h @@ -42,7 +42,7 @@ class MIPRTPSendMessage; * encoder uses an internal format to store data in RTP packets, this will not * be compatible with other applications. */ -class MIPRTPVideoEncoder : public MIPRTPEncoder +class EMIPLIB_IMPORTEXPORT MIPRTPVideoEncoder : public MIPRTPEncoder { public: /** Specifies the kind of message that will be accepted as input. */ diff --git a/src/core/mipaudiomessage.h b/src/core/mipaudiomessage.h index d31e786..75f3b60 100644 --- a/src/core/mipaudiomessage.h +++ b/src/core/mipaudiomessage.h @@ -36,7 +36,7 @@ /** Base class for encoded and raw audio messages. * This class is the base class of both raw audio messages and encoded audio messages. */ -class MIPAudioMessage : public MIPMediaMessage +class EMIPLIB_IMPORTEXPORT MIPAudioMessage : public MIPMediaMessage { protected: /** Constructor of the class. diff --git a/src/core/mipcomponent.h b/src/core/mipcomponent.h index 2cd5605..e569233 100644 --- a/src/core/mipcomponent.h +++ b/src/core/mipcomponent.h @@ -44,7 +44,7 @@ class MIPFeedback; * This class serves as a base class from which actual components can be derived. A working component * needs to implement the MIPComponent::pull and MIPComponent::push methods. */ -class MIPComponent : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPComponent : public MIPErrorBase { protected: /** Create a component with the specified name. diff --git a/src/core/mipcomponentalias.h b/src/core/mipcomponentalias.h index 4ff9b3e..ae70b86 100644 --- a/src/core/mipcomponentalias.h +++ b/src/core/mipcomponentalias.h @@ -149,7 +149,7 @@ * In this chain, it is of course still possible that the same synchronization * problem occurs. */ -class MIPComponentAlias : public MIPComponent +class EMIPLIB_IMPORTEXPORT MIPComponentAlias : public MIPComponent { public: /** Create a component alias for component \c pComp. */ diff --git a/src/core/mipcomponentchain.h b/src/core/mipcomponentchain.h index d469335..59dd519 100644 --- a/src/core/mipcomponentchain.h +++ b/src/core/mipcomponentchain.h @@ -44,7 +44,7 @@ class MIPComponent; * chain is started, messages will be passed over these links. The messages are described by * classes derived from MIPMessage, components are implemented in classes derived from MIPComponent. */ -class MIPComponentChain : private jthread::JThread, public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPComponentChain : private jthread::JThread, public MIPErrorBase { public: /** Create a chain with a specific name. diff --git a/src/core/mipconfig.h.in b/src/core/mipconfig.h.in index 23d824b..828133b 100644 --- a/src/core/mipconfig.h.in +++ b/src/core/mipconfig.h.in @@ -26,6 +26,14 @@ #define MIPCONFIG_H +#define EMIPLIB_IMPORT ${EMIPLIB_IMPORT} +#define EMIPLIB_EXPORT ${EMIPLIB_EXPORT} +#ifdef EMIPLIB_COMPILING + #define EMIPLIB_IMPORTEXPORT EMIPLIB_EXPORT +#else + #define EMIPLIB_IMPORTEXPORT EMIPLIB_IMPORT +#endif // EMIPLIB_COMPILING + ${MIPCONFIG_GPL} ${MIPCONFIG_BIGENDIAN} diff --git a/src/core/mipencodedaudiomessage.h b/src/core/mipencodedaudiomessage.h index b9a84a3..4647d9d 100644 --- a/src/core/mipencodedaudiomessage.h +++ b/src/core/mipencodedaudiomessage.h @@ -59,7 +59,7 @@ /** Container for encoded audio data. */ -class MIPEncodedAudioMessage : public MIPAudioMessage +class EMIPLIB_IMPORTEXPORT MIPEncodedAudioMessage : public MIPAudioMessage { public: /** Creates an encoded audio message. diff --git a/src/core/mipencodedvideomessage.h b/src/core/mipencodedvideomessage.h index 9363d08..b3391cc 100644 --- a/src/core/mipencodedvideomessage.h +++ b/src/core/mipencodedvideomessage.h @@ -45,7 +45,7 @@ #define MIPENCODEDVIDEOMESSAGE_TYPE_JPEG 0x00000002 /** Container for encoded video data. */ -class MIPEncodedVideoMessage : public MIPVideoMessage +class EMIPLIB_IMPORTEXPORT MIPEncodedVideoMessage : public MIPVideoMessage { public: /** Creates an encoded video message. diff --git a/src/core/miperrorbase.h b/src/core/miperrorbase.h index eaa2758..2e79c94 100644 --- a/src/core/miperrorbase.h +++ b/src/core/miperrorbase.h @@ -35,7 +35,7 @@ /** This class provides the error description functions for other classes. */ -class MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPErrorBase { public: MIPErrorBase() { } diff --git a/src/core/mipfeedback.h b/src/core/mipfeedback.h index 6f31ffe..ca97c4c 100644 --- a/src/core/mipfeedback.h +++ b/src/core/mipfeedback.h @@ -38,7 +38,7 @@ * Each object in the same chain can inspect and/or modify the information in the * MIPFeedback instance. */ -class MIPFeedback +class EMIPLIB_IMPORTEXPORT MIPFeedback { public: MIPFeedback() : m_playbackStreamTime(0), m_playbackDelay(0) { m_playbackStreamTimeSet = false; } diff --git a/src/core/mipmediamessage.h b/src/core/mipmediamessage.h index 5c63432..c379b7e 100644 --- a/src/core/mipmediamessage.h +++ b/src/core/mipmediamessage.h @@ -41,7 +41,7 @@ * information. The MIPRTPDecoder class uses the timing information to store the position * of the data in the output stream. */ -class MIPMediaMessage : public MIPMessage +class EMIPLIB_IMPORTEXPORT MIPMediaMessage : public MIPMessage { public: /** Medium type. */ diff --git a/src/core/mipmessage.h b/src/core/mipmessage.h index 05412ad..161509a 100644 --- a/src/core/mipmessage.h +++ b/src/core/mipmessage.h @@ -69,7 +69,7 @@ * the MIPComponent::pull and MIPComponent::push functions. The * message type numbers can be found in mipmessage.h */ -class MIPMessage +class EMIPLIB_IMPORTEXPORT MIPMessage { protected: /** Creates a message with specific type and subtype. diff --git a/src/core/miprawaudiomessage.h b/src/core/miprawaudiomessage.h index 3ab1027..0fa9764 100644 --- a/src/core/miprawaudiomessage.h +++ b/src/core/miprawaudiomessage.h @@ -72,7 +72,7 @@ #define MIPRAWAUDIOMESSAGE_TYPE_U16 0x00000080 /** Container for floating point raw audio data. */ -class MIPRawFloatAudioMessage : public MIPAudioMessage +class EMIPLIB_IMPORTEXPORT MIPRawFloatAudioMessage : public MIPAudioMessage { public: /** Creates a MIPRawFloatAudioMessage instance. @@ -117,7 +117,7 @@ class MIPRawFloatAudioMessage : public MIPAudioMessage }; /** Container for unsigned eight-bit raw audio data. */ -class MIPRawU8AudioMessage : public MIPAudioMessage +class EMIPLIB_IMPORTEXPORT MIPRawU8AudioMessage : public MIPAudioMessage { public: /** Creates a MIPRawU8AudioMessage instance. @@ -163,7 +163,7 @@ class MIPRawU8AudioMessage : public MIPAudioMessage }; /** Container for sixteen-bit raw audio data. */ -class MIPRaw16bitAudioMessage : public MIPAudioMessage +class EMIPLIB_IMPORTEXPORT MIPRaw16bitAudioMessage : public MIPAudioMessage { public: /** Used in constructor to specify sample encoding. */ diff --git a/src/core/miprawvideomessage.h b/src/core/miprawvideomessage.h index 573e59a..e1660c1 100644 --- a/src/core/miprawvideomessage.h +++ b/src/core/miprawvideomessage.h @@ -57,7 +57,7 @@ #define MIPRAWVIDEOMESSAGE_TYPE_RGB32 0x00000008 /** Container for an YUV420P encoded raw video frame. */ -class MIPRawYUV420PVideoMessage : public MIPVideoMessage +class EMIPLIB_IMPORTEXPORT MIPRawYUV420PVideoMessage : public MIPVideoMessage { public: /** Creates a raw video message with a YUV420P representation. @@ -92,7 +92,7 @@ class MIPRawYUV420PVideoMessage : public MIPVideoMessage }; /** Container for an YUYV encoded raw video frame. */ -class MIPRawYUYVVideoMessage : public MIPVideoMessage +class EMIPLIB_IMPORTEXPORT MIPRawYUYVVideoMessage : public MIPVideoMessage { public: /** Creates a raw video message with a YUYV representation. @@ -127,7 +127,7 @@ class MIPRawYUYVVideoMessage : public MIPVideoMessage }; /** Container for an RGB encoded raw video frame. */ -class MIPRawRGBVideoMessage : public MIPVideoMessage +class EMIPLIB_IMPORTEXPORT MIPRawRGBVideoMessage : public MIPVideoMessage { public: /** Creates a raw video message with RGB representation. diff --git a/src/core/miprtpmessage.h b/src/core/miprtpmessage.h index 713c443..462881f 100644 --- a/src/core/miprtpmessage.h +++ b/src/core/miprtpmessage.h @@ -51,7 +51,7 @@ * This message is a container for data which has to be sent using the RTP protocol. * The subtype of this message is MIPRTPMESSAGE_TYPE_SEND, defined in miprtpmessage.h */ -class MIPRTPSendMessage : public MIPMessage +class EMIPLIB_IMPORTEXPORT MIPRTPSendMessage : public MIPMessage { public: /** Constructs a message containing data to be sent using RTP. @@ -105,7 +105,7 @@ class MIPRTPSendMessage : public MIPMessage * Using this message, received RTP data can be transferred. This class depends on * the \c JRTPLIB \c RTPPacket class. */ -class MIPRTPReceiveMessage : public MIPMessage +class EMIPLIB_IMPORTEXPORT MIPRTPReceiveMessage : public MIPMessage { public: /** Constructs a message containing received RTP data. diff --git a/src/core/mipsystemmessage.h b/src/core/mipsystemmessage.h index 420c3f6..1736b34 100644 --- a/src/core/mipsystemmessage.h +++ b/src/core/mipsystemmessage.h @@ -50,7 +50,7 @@ * This kind of message is used to instruct a component to wait until messages can be * distributed in the chain or to inform a component that an interval has elapsed. */ -class MIPSystemMessage : public MIPMessage +class EMIPLIB_IMPORTEXPORT MIPSystemMessage : public MIPMessage { public: /** Constructs a system message with a specific subtype. diff --git a/src/core/miptime.h b/src/core/miptime.h index 4609e6c..e645eb3 100644 --- a/src/core/miptime.h +++ b/src/core/miptime.h @@ -46,7 +46,7 @@ /** This class is used for timing purposes. * This class provides some time handling functions. */ -class MIPTime +class EMIPLIB_IMPORTEXPORT MIPTime { public: /** Returns a MIPTime object containing the current time. */ diff --git a/src/core/mipversion.cpp b/src/core/mipversion.cpp index 54093c9..952b497 100644 --- a/src/core/mipversion.cpp +++ b/src/core/mipversion.cpp @@ -33,7 +33,7 @@ MIPVersion::MIPVersion() { m_major = 1; m_minor = 1; - m_debug = 0; + m_debug = 1; #ifdef MIPCONFIG_GPL m_license = std::string("GPL"); #else diff --git a/src/core/mipversion.h b/src/core/mipversion.h index 05dc6f4..0dc3fcd 100644 --- a/src/core/mipversion.h +++ b/src/core/mipversion.h @@ -34,7 +34,7 @@ #include /** Version information about the library. */ -class MIPVersion +class EMIPLIB_IMPORTEXPORT MIPVersion { public: MIPVersion(); diff --git a/src/core/mipvideomessage.h b/src/core/mipvideomessage.h index e490023..0a4a9fd 100644 --- a/src/core/mipvideomessage.h +++ b/src/core/mipvideomessage.h @@ -38,7 +38,7 @@ /** Base class for encoded and raw video messages. * This class is the base class of both raw video messages and encoded video messages. */ -class MIPVideoMessage : public MIPMediaMessage +class EMIPLIB_IMPORTEXPORT MIPVideoMessage : public MIPMediaMessage { protected: /** Constructor of the class. diff --git a/src/sessions/mipaudiosession.h b/src/sessions/mipaudiosession.h index 33b112e..91b89a6 100644 --- a/src/sessions/mipaudiosession.h +++ b/src/sessions/mipaudiosession.h @@ -53,7 +53,7 @@ class MIPRTPSynchronizer; class MIPRTPPacketDecoder; /** Parameters for an audio session. */ -class MIPAudioSessionParams +class EMIPLIB_IMPORTEXPORT MIPAudioSessionParams { public: /** Used to select compression/encoding type. */ @@ -225,7 +225,7 @@ class MIPAudioSessionParams * RTPAddress from the JRTPLIB library. Currently, only RTPIPv4Address * instances can be specified. */ -class MIPAudioSession : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPAudioSession : public MIPErrorBase { public: MIPAudioSession(); diff --git a/src/sessions/mipvideosession.h b/src/sessions/mipvideosession.h index 398f49b..df571c8 100644 --- a/src/sessions/mipvideosession.h +++ b/src/sessions/mipvideosession.h @@ -68,7 +68,7 @@ class MIPAVCodecFrameConverter; class MIPComponentAlias; /** Parameters for a video session. */ -class MIPVideoSessionParams +class EMIPLIB_IMPORTEXPORT MIPVideoSessionParams { public: /** Specifies the type of session that will be used. */ @@ -264,7 +264,7 @@ class MIPVideoSessionParams * RTPAddress from the JRTPLIB library. Currently, only RTPIPv4Address * instances can be specified. */ -class MIPVideoSession : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPVideoSession : public MIPErrorBase { public: MIPVideoSession(); diff --git a/src/util/mipdirectorybrowser.h b/src/util/mipdirectorybrowser.h index aae9dc0..ce7840f 100644 --- a/src/util/mipdirectorybrowser.h +++ b/src/util/mipdirectorybrowser.h @@ -43,7 +43,7 @@ /** An object of this type can be used to get the file names in a * specific directory. */ -class MIPDirectoryBrowser : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPDirectoryBrowser : public MIPErrorBase { public: MIPDirectoryBrowser(); diff --git a/src/util/miprtppacketgrouper.h b/src/util/miprtppacketgrouper.h index d5cb92f..e2e9815 100644 --- a/src/util/miprtppacketgrouper.h +++ b/src/util/miprtppacketgrouper.h @@ -53,7 +53,7 @@ namespace jrtplib * to be sure that all packets with a specific timestamp have been * processed. */ -class MIPRTPPacketGrouper : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPRTPPacketGrouper : public MIPErrorBase { public: MIPRTPPacketGrouper(); diff --git a/src/util/miprtpsynchronizer.h b/src/util/miprtpsynchronizer.h index a137124..234d318 100644 --- a/src/util/miprtpsynchronizer.h +++ b/src/util/miprtpsynchronizer.h @@ -46,7 +46,7 @@ * function of a MIPRTPDecoder derived class. Based upon the RTCP CNAME information, streams * will be grouped and synchronized. */ -class MIPRTPSynchronizer : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPRTPSynchronizer : public MIPErrorBase { public: MIPRTPSynchronizer(); diff --git a/src/util/mipsignalwaiter.h b/src/util/mipsignalwaiter.h index 066f43f..498a639 100644 --- a/src/util/mipsignalwaiter.h +++ b/src/util/mipsignalwaiter.h @@ -41,7 +41,7 @@ * example, soundcard input plugins use such an object to indicate when * a new block of sound data is available. */ -class MIPSignalWaiter +class EMIPLIB_IMPORTEXPORT MIPSignalWaiter { public: MIPSignalWaiter(); diff --git a/src/util/mipspeexutil.h b/src/util/mipspeexutil.h index c2f7e48..706cd46 100644 --- a/src/util/mipspeexutil.h +++ b/src/util/mipspeexutil.h @@ -38,7 +38,7 @@ #include /** An instance of this class can be used to analyse Speex data. */ -class MIPSpeexUtil : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPSpeexUtil : public MIPErrorBase { public: /** Identifies the Speex bandwidth used. */ diff --git a/src/util/mipstreambuffer.h b/src/util/mipstreambuffer.h index e3d7974..b821127 100644 --- a/src/util/mipstreambuffer.h +++ b/src/util/mipstreambuffer.h @@ -40,7 +40,7 @@ * written and from which the same data can be read again, making * it well suited to safely pass data between threads. */ -class MIPStreamBuffer +class EMIPLIB_IMPORTEXPORT MIPStreamBuffer { public: /** Constructs a MIPStreamBuffer object. diff --git a/src/util/mipwavreader.h b/src/util/mipwavreader.h index 6cfaa19..c5ff1ee 100644 --- a/src/util/mipwavreader.h +++ b/src/util/mipwavreader.h @@ -36,7 +36,7 @@ #include /** This is a simple WAV file reader. */ -class MIPWAVReader : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPWAVReader : public MIPErrorBase { public: MIPWAVReader(); diff --git a/src/util/mipwavwriter.h b/src/util/mipwavwriter.h index d11ee1c..7151de7 100644 --- a/src/util/mipwavwriter.h +++ b/src/util/mipwavwriter.h @@ -36,7 +36,7 @@ #include /** This is a simple WAV file writer (8 bit, mono) */ -class MIPWAVWriter : public MIPErrorBase +class EMIPLIB_IMPORTEXPORT MIPWAVWriter : public MIPErrorBase { public: MIPWAVWriter();