diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51e14270..b5911127 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,6 +20,9 @@ set(CMAKE_VERBOSE_MAKEFILE OFF)
 if(NOT WIN32)
 	set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -fPIC -pg -g")
 	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fPIC -O3")
+else()
+	set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
+	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
 endif()
 
 
diff --git a/app/avInfo/CMakeLists.txt b/app/avInfo/CMakeLists.txt
index cf437fa1..a79cf781 100644
--- a/app/avInfo/CMakeLists.txt
+++ b/app/avInfo/CMakeLists.txt
@@ -11,11 +11,18 @@ set_target_properties(avinfo PROPERTIES VERSION ${AVTRANSCODER_VERSION})
 target_link_libraries(avinfo avtranscoder-shared)
 
 # Install app
+if(WIN32)
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avinfo.exe")
+else()
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avinfo" "${CMAKE_CURRENT_BINARY_DIR}/avinfo-${AVTRANSCODER_VERSION}")
+endif()
+
 install(
-	FILES "${CMAKE_CURRENT_BINARY_DIR}/avinfo" "${CMAKE_CURRENT_BINARY_DIR}/avinfo-${AVTRANSCODER_VERSION}"
+	FILES ${BINARY_FILES}
 	PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE
 	DESTINATION "bin/"
 )
+
 install(
 	FILES ${CMAKE_CURRENT_SOURCE_DIR}/avinfo.man
 	RENAME "avinfo.1"
diff --git a/app/avMeta/CMakeLists.txt b/app/avMeta/CMakeLists.txt
index ea01da99..3f888824 100644
--- a/app/avMeta/CMakeLists.txt
+++ b/app/avMeta/CMakeLists.txt
@@ -11,11 +11,18 @@ set_target_properties(avmeta PROPERTIES VERSION ${AVTRANSCODER_VERSION})
 target_link_libraries(avmeta avtranscoder-shared)
 
 # Install app
+if(WIN32)
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avmeta.exe")
+else()
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avmeta" "${CMAKE_CURRENT_BINARY_DIR}/avmeta-${AVTRANSCODER_VERSION}")
+endif()
+
 install(
-	FILES "${CMAKE_CURRENT_BINARY_DIR}/avmeta" "${CMAKE_CURRENT_BINARY_DIR}/avmeta-${AVTRANSCODER_VERSION}"
+	FILES ${BINARY_FILES}
 	PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE
 	DESTINATION "bin/"
 )
+
 install(
 	FILES ${CMAKE_CURRENT_SOURCE_DIR}/avmeta.man
 	RENAME "avmeta.1"
diff --git a/app/avTranscoder/CMakeLists.txt b/app/avTranscoder/CMakeLists.txt
index f312fc2e..b6b1fc0a 100644
--- a/app/avTranscoder/CMakeLists.txt
+++ b/app/avTranscoder/CMakeLists.txt
@@ -11,11 +11,18 @@ set_target_properties(avtranscoder PROPERTIES VERSION ${AVTRANSCODER_VERSION})
 target_link_libraries(avtranscoder avtranscoder-shared)
 
 # Install app
+if(WIN32)
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avtranscoder.exe")
+else()
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avtranscoder" "${CMAKE_CURRENT_BINARY_DIR}/avtranscoder-${AVTRANSCODER_VERSION}")
+endif()
+
 install(
-	FILES "${CMAKE_CURRENT_BINARY_DIR}/avtranscoder" "${CMAKE_CURRENT_BINARY_DIR}/avtranscoder-${AVTRANSCODER_VERSION}"
+	FILES ${BINARY_FILES}
 	PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE
 	DESTINATION "bin/"
 )
+
 install(
 	FILES ${CMAKE_CURRENT_SOURCE_DIR}/av++.man
 	RENAME av++.1
diff --git a/app/avplay/CMakeLists.txt b/app/avplay/CMakeLists.txt
index 2af5cf36..6236ae47 100644
--- a/app/avplay/CMakeLists.txt
+++ b/app/avplay/CMakeLists.txt
@@ -13,26 +13,38 @@ endif()
 
 # Check GLUT
 find_package(GLUT)
-if(NOT GLUT_FOUND)
+
+if(NOT GLUT_Xi_LIBRARY OR NOT GLUT_Xmu_LIBRARY)
+	set(GLUT_FOUND FALSE)
+endif()
+
+if(NOT GLUT_FOUND) 
 	message("GLUT not found, will not build avplay app.")
 	return()
 endif()
 
 # Build app
 include_directories(${AVTRANSCODER_SRC_PATH} ${FFMPEG_INCLUDE_DIR})
-include_directories( ${OPENGL_INCLUDE_DIRS}  ${GLUT_INCLUDE_DIRS} )
+include_directories( ${OPENGL_INCLUDE_DIRS}  ${GLUT_INCLUDE_DIR} )
 
 file(GLOB AVPLAY_SRC_FILES "*.cpp" "*.hpp")
 add_executable(avplay ${AVPLAY_SRC_FILES})
 set_target_properties(avplay PROPERTIES VERSION ${AVTRANSCODER_VERSION})
-target_link_libraries(avplay avtranscoder-shared ${OPENGL_LIBRARIES} ${GLUT_LIBRARY})
+target_link_libraries(avplay avtranscoder-shared ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES})
 
 # Install app
+if(WIN32)
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avplay.exe")
+else()
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avplay" "${CMAKE_CURRENT_BINARY_DIR}/avplay-${AVTRANSCODER_VERSION}")
+endif()
+
 install(
-	FILES "${CMAKE_CURRENT_BINARY_DIR}/avplay" "${CMAKE_CURRENT_BINARY_DIR}/avplay-${AVTRANSCODER_VERSION}"
+	FILES ${BINARY_FILES}
 	PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE
 	DESTINATION "bin/"
 )
+
 install(
 	FILES ${CMAKE_CURRENT_SOURCE_DIR}/avplayer.man
 	RENAME avplayer.1
diff --git a/app/genericProcessor/CMakeLists.txt b/app/genericProcessor/CMakeLists.txt
index 6a1fe4fe..a673e03c 100644
--- a/app/genericProcessor/CMakeLists.txt
+++ b/app/genericProcessor/CMakeLists.txt
@@ -11,11 +11,18 @@ set_target_properties(avprocessor PROPERTIES VERSION ${AVTRANSCODER_VERSION})
 target_link_libraries(avprocessor avtranscoder-shared)
 
 # Install app
+if(WIN32)
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avprocessor.exe")
+else()
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avprocessor" "${CMAKE_CURRENT_BINARY_DIR}/avprocessor-${AVTRANSCODER_VERSION}")
+endif()
+
 install(
-	FILES "${CMAKE_CURRENT_BINARY_DIR}/avprocessor" "${CMAKE_CURRENT_BINARY_DIR}/avprocessor-${AVTRANSCODER_VERSION}"
+	FILES ${BINARY_FILES}
 	PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE
 	DESTINATION "bin/"
 )
+
 install(
 	FILES ${CMAKE_CURRENT_SOURCE_DIR}/avprocessor.man
 	RENAME avprocessor.1
diff --git a/app/optionChecker/CMakeLists.txt b/app/optionChecker/CMakeLists.txt
index 0372fb90..ca1d20a0 100644
--- a/app/optionChecker/CMakeLists.txt
+++ b/app/optionChecker/CMakeLists.txt
@@ -7,14 +7,26 @@ include(AvTranscoderMacros)
 # Build app
 include_directories(${AVTRANSCODER_SRC_PATH} ${FFMPEG_INCLUDE_DIR})
 # Add C++11 flag
-set(CMAKE_CXX_FLAGS "-std=c++0x")
+if(NOT WIN32)
+	set(CMAKE_CXX_FLAGS "-std=c++0x")
+elseif(NOT MSVC12)
+	message("C++11 not supported, will not build avOptionChecker app.")
+	return()
+endif()
+
 add_executable(avoptionchecker optionChecker.cpp)
 set_target_properties(avoptionchecker PROPERTIES VERSION ${AVTRANSCODER_VERSION})
 target_link_libraries(avoptionchecker avtranscoder-shared)
 
 # Install app
+if(WIN32)
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avoptionchecker.exe")
+else()
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avoptionchecker" "${CMAKE_CURRENT_BINARY_DIR}/avoptionchecker-${AVTRANSCODER_VERSION}")
+endif()
+
 install(
-	FILES "${CMAKE_CURRENT_BINARY_DIR}/avoptionchecker" "${CMAKE_CURRENT_BINARY_DIR}/avoptionchecker-${AVTRANSCODER_VERSION}"
+	FILES ${BINARY_FILES}
 	PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE
 	DESTINATION "bin/"
 )
diff --git a/app/presetChecker/CMakeLists.txt b/app/presetChecker/CMakeLists.txt
index 763c6031..d179f514 100644
--- a/app/presetChecker/CMakeLists.txt
+++ b/app/presetChecker/CMakeLists.txt
@@ -7,17 +7,30 @@ include(AvTranscoderMacros)
 # Build app
 include_directories(${AVTRANSCODER_SRC_PATH} ${FFMPEG_INCLUDE_DIR})
 # Add C++11 flag
-set(CMAKE_CXX_FLAGS "-std=c++0x")
+if(NOT WIN32)
+	set(CMAKE_CXX_FLAGS "-std=c++0x")
+elseif(NOT MSVC12)
+	message("C++11 not supported, will not build avPresetChecker app.")
+	return()
+endif()
+
 add_executable(avpresetchecker presetChecker.cpp)
 set_target_properties(avpresetchecker PROPERTIES VERSION ${AVTRANSCODER_VERSION})
 target_link_libraries(avpresetchecker avtranscoder-shared)
 
 # Install app
+if(WIN32)
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avpresetchecker.exe")
+else()
+	set(BINARY_FILES "${CMAKE_CURRENT_BINARY_DIR}/avpresetchecker" "${CMAKE_CURRENT_BINARY_DIR}/avpresetchecker-${AVTRANSCODER_VERSION}")
+endif()
+
 install(
-	FILES "${CMAKE_CURRENT_BINARY_DIR}/avpresetchecker" "${CMAKE_CURRENT_BINARY_DIR}/avpresetchecker-${AVTRANSCODER_VERSION}"
+	FILES ${BINARY_FILES}
 	PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_READ WORLD_EXECUTE
 	DESTINATION "bin/"
 )
+
 install(
 	FILES ${CMAKE_CURRENT_SOURCE_DIR}/avprofiles.man
 	RENAME avprofiles.1
diff --git a/app/presetChecker/presetChecker.cpp b/app/presetChecker/presetChecker.cpp
index f89c0b8e..f921f25f 100644
--- a/app/presetChecker/presetChecker.cpp
+++ b/app/presetChecker/presetChecker.cpp
@@ -25,13 +25,13 @@ int main( int argc, char** argv )
 			std::cout << std::setw(35) << key.first << key.second << std::endl;
 
 		try{
-			if( profile.find( avtranscoder::Profile::avProfileType )->second == avtranscoder::Profile::avProfileTypeVideo )
+			if( profile.find( avtranscoder::constants::avProfileType )->second == avtranscoder::constants::avProfileTypeVideo )
 			{
 				avtranscoder::AvOutputVideo outputVideo;
 				outputVideo.setProfile( profile, outputVideo.getVideoCodec().getVideoFrameDesc() );
 			}
 
-			if( profile.find( avtranscoder::Profile::avProfileType )->second == avtranscoder::Profile::avProfileTypeAudio )
+			if( profile.find( avtranscoder::constants::avProfileType )->second == avtranscoder::constants::avProfileTypeAudio )
 			{
 				avtranscoder::AvOutputAudio outputAudio;
 				outputAudio.setProfile( profile, outputAudio.getAudioCodec().getFrameDesc() );
diff --git a/src/AvTranscoder/Library.hpp b/src/AvTranscoder/Library.hpp
index d5f44de6..82219878 100644
--- a/src/AvTranscoder/Library.hpp
+++ b/src/AvTranscoder/Library.hpp
@@ -9,7 +9,7 @@
 namespace avtranscoder
 {
 
-class Library
+class AvExport Library
 {
 public:
 	Library( const std::string& name, const std::string& license, const size_t major, const size_t minor, const size_t release );
@@ -33,11 +33,11 @@ class Library
 
 typedef std::vector< Library > Libraries;
 
-Libraries getLibraries();
+Libraries AvExport getLibraries();
 
-std::vector<std::string> getInputExtensions();
+std::vector<std::string> AvExport getInputExtensions();
 
-std::vector<std::string> getOutputExtensions();
+std::vector<std::string> AvExport getOutputExtensions();
 
 }
 
diff --git a/src/AvTranscoder/Profile.cpp b/src/AvTranscoder/Profile.cpp
index d28df5e5..d9005b52 100644
--- a/src/AvTranscoder/Profile.cpp
+++ b/src/AvTranscoder/Profile.cpp
@@ -16,22 +16,6 @@
 namespace avtranscoder
 {
 
-const std::string Profile::avProfileIdentificator( "avProfile" );
-const std::string Profile::avProfileIdentificatorHuman( "avProfileLong" );
-
-const std::string Profile::avProfileType( "avProfileType" );
-const std::string Profile::avProfileTypeFormat( "avProfileTypeFormat" );
-const std::string Profile::avProfileTypeVideo( "avProfileTypeVideo" );
-const std::string Profile::avProfileTypeAudio( "avProfileTypeAudio" );
-
-const std::string Profile::avProfileFormat( "format" );
-const std::string Profile::avProfileCodec( "codec" );
-const std::string Profile::avProfilePixelFormat( "pix_fmt" );
-const std::string Profile::avProfileSampleFormat( "sample_fmt" );
-const std::string Profile::avProfileFrameRate( "r" );
-const std::string Profile::avProfileSampleRate( "ar" );
-const std::string Profile::avProfileChannel( "ac" );
-
 Profile::Profile( bool autoload )
 {
 	if( autoload )
@@ -55,11 +39,11 @@ void Profile::loadProfile( const std::string& avProfileFile )
 	}
 	// check if profile contains required values
 	if( 
-		customProfile.count( avProfileIdentificator ) &&
-		customProfile.count( avProfileIdentificatorHuman ) &&
-		customProfile.count( avProfileType ) &&
-		( customProfile.find( avProfileType )->second == avProfileTypeVideo ||
-		customProfile.find( avProfileType )->second == avProfileTypeAudio )
+		customProfile.count( constants::avProfileIdentificator ) &&
+		customProfile.count( constants::avProfileIdentificatorHuman ) &&
+		customProfile.count( constants::avProfileType ) &&
+		( customProfile.find( constants::avProfileType )->second == constants::avProfileTypeVideo ||
+		customProfile.find( constants::avProfileType )->second == constants::avProfileTypeAudio )
 		)
 	{
 		_profiles.push_back( customProfile );
@@ -101,11 +85,11 @@ void Profile::loadProfiles( const std::string& avProfilesPath )
 
 void Profile::update( const ProfileDesc& profile )
 {
-	std::string profileId( profile.find( avProfileIdentificator )->second );
+	std::string profileId( profile.find( constants::avProfileIdentificator )->second );
 	size_t profileIndex = 0;
 	for( ProfilesDesc::iterator it = _profiles.begin(); it != _profiles.end(); ++it )
 	{
-		if( (*it).find( avProfileIdentificator )->second == profileId )
+		if( (*it).find( constants::avProfileIdentificator )->second == profileId )
 		{
 			_profiles.at( profileIndex ) = profile;
 			return;
@@ -127,7 +111,7 @@ Profile::ProfilesDesc Profile::getFormatProfiles()
 
 	for( ProfilesDesc::iterator it = _profiles.begin(); it != _profiles.end(); ++it )
 	{
-		if( (*it).find( avProfileType )->second == avProfileTypeFormat )
+		if( (*it).find( constants::avProfileType )->second == constants::avProfileTypeFormat )
 			profiles.push_back( *it );
 	}
 
@@ -140,7 +124,7 @@ Profile::ProfilesDesc Profile::getVideoProfiles()
 
 	for( ProfilesDesc::iterator it = _profiles.begin(); it != _profiles.end(); ++it )
 	{
-		if( (*it).find( avProfileType )->second == avProfileTypeVideo )
+		if( (*it).find( constants::avProfileType )->second == constants::avProfileTypeVideo )
 			profiles.push_back( *it );
 	}
 
@@ -153,7 +137,7 @@ Profile::ProfilesDesc Profile::getAudioProfiles()
 
 	for( ProfilesDesc::iterator it = _profiles.begin(); it != _profiles.end(); ++it )
 	{
-		if( (*it).find( avProfileType )->second == avProfileTypeAudio )
+		if( (*it).find( constants::avProfileType )->second == constants::avProfileTypeAudio )
 			profiles.push_back( *it );
 	}
 
@@ -164,7 +148,7 @@ Profile::ProfileDesc& Profile::getProfile( const std::string& searchProfile )
 {
 	for( ProfilesDesc::iterator it = _profiles.begin(); it != _profiles.end(); ++it )
 	{
-		if( (*it).find( avProfileIdentificator )->second == searchProfile )
+		if( (*it).find( constants::avProfileIdentificator )->second == searchProfile )
 		{
 			return (*it);
 		}
diff --git a/src/AvTranscoder/Profile.hpp b/src/AvTranscoder/Profile.hpp
index 3e5b62b8..af72a0c4 100644
--- a/src/AvTranscoder/Profile.hpp
+++ b/src/AvTranscoder/Profile.hpp
@@ -11,24 +11,27 @@
 namespace avtranscoder
 {
 
+namespace constants
+{
+	const std::string avProfileIdentificator = "avProfile";
+	const std::string avProfileIdentificatorHuman = "avProfileLong";
+	const std::string avProfileType = "avProfileType";
+	const std::string avProfileTypeFormat = "avProfileTypeFormat";
+	const std::string avProfileTypeVideo = "avProfileTypeVideo";
+	const std::string avProfileTypeAudio = "avProfileTypeAudio";
+	const std::string avProfileFormat = "format";
+	const std::string avProfileCodec = "codec";
+	const std::string avProfilePixelFormat = "pix_fmt";
+	const std::string avProfileSampleFormat = "sample_fmt";
+	const std::string avProfileFrameRate = "r";
+	const std::string avProfileSampleRate = "ar";
+	const std::string avProfileChannel = "ac";
+}
+
 class AvExport Profile
 {
 public:
-	static const std::string avProfileIdentificator;
-	static const std::string avProfileIdentificatorHuman;
-	static const std::string avProfileType;
 
-	static const std::string avProfileTypeFormat;
-	static const std::string avProfileTypeVideo;
-	static const std::string avProfileTypeAudio;
-	
-	static const std::string avProfileFormat;
-	static const std::string avProfileCodec;
-	static const std::string avProfilePixelFormat;
-	static const std::string avProfileSampleFormat;
-	static const std::string avProfileFrameRate;
-	static const std::string avProfileSampleRate;
-	static const std::string avProfileChannel;
 
 public:
 	// typedef std::pair< std::string, std::string > KeyDesc;
@@ -53,7 +56,10 @@ class AvExport Profile
 
 private:
 	ProfilesDesc _profiles;
+
 };
 
+
+
 }
 #endif
\ No newline at end of file
diff --git a/src/AvTranscoder/avTranscoder.i b/src/AvTranscoder/avTranscoder.i
index fc6faa02..a99f3512 100644
--- a/src/AvTranscoder/avTranscoder.i
+++ b/src/AvTranscoder/avTranscoder.i
@@ -11,8 +11,6 @@
 %include "AvTranscoder/swig/avExport.i"
 
 %{
-#include <AvTranscoder/common.hpp>
-
 #include <AvTranscoder/Profile.hpp>
 
 #include <AvTranscoder/frame/Pixel.hpp>
@@ -48,25 +46,6 @@
 
 #include <AvTranscoder/transcoder/StreamTranscoder.hpp>
 #include <AvTranscoder/transcoder/Transcoder.hpp>
-
-/* initialize static const members for binding */
-namespace avtranscoder {
-const std::string Profile::avProfileIdentificator = "avProfile";
-const std::string Profile::avProfileIdentificatorHuman = "avProfileLong";
-
-const std::string Profile::avProfileType = "avProfileType";
-const std::string Profile::avProfileTypeFormat = "avProfileTypeFormat";
-const std::string Profile::avProfileTypeVideo = "avProfileTypeVideo";
-const std::string Profile::avProfileTypeAudio = "avProfileTypeAudio";
-
-const std::string Profile::avProfileFormat = "format";
-const std::string Profile::avProfileCodec = "codec";
-const std::string Profile::avProfilePixelFormat = "pix_fmt";
-const std::string Profile::avProfileSampleFormat = "sample_fmt";
-const std::string Profile::avProfileFrameRate = "r";
-const std::string Profile::avProfileSampleRate = "ar";
-const std::string Profile::avProfileChannel = "ac";
-}
 %}
 
 namespace std {	
@@ -82,8 +61,6 @@ namespace std {
 %template(ProfilesVector)  vector< map< string, string > >;
 }
 
-%include <AvTranscoder/common.hpp>
-
 %include "AvTranscoder/progress/progress.i"
 
 %include <AvTranscoder/Profile.hpp>
diff --git a/src/AvTranscoder/common.hpp b/src/AvTranscoder/common.hpp
index d24e5b27..7c3c1c52 100644
--- a/src/AvTranscoder/common.hpp
+++ b/src/AvTranscoder/common.hpp
@@ -55,8 +55,10 @@ namespace avtranscoder
 
 typedef AVRational Rational;
 
-void AvExport split( std::vector< std::string >& splitedString, const std::string& inputString, const std::string& splitChars = ";" );
-int AvExport getFilesInDir( const std::string& dir, std::vector< std::string >& files );
+#ifndef SWIG
+void split( std::vector< std::string >& splitedString, const std::string& inputString, const std::string& splitChars = ";" );
+int getFilesInDir( const std::string& dir, std::vector< std::string >& files );
+#endif
 
 std::string AvExport getFormat( const std::string& filename );
 bool AvExport matchFormat( const std::string& format, const std::string& filename );
diff --git a/src/AvTranscoder/essenceStream/AvInputVideo.cpp b/src/AvTranscoder/essenceStream/AvInputVideo.cpp
index 46dc5c64..c1004cdc 100644
--- a/src/AvTranscoder/essenceStream/AvInputVideo.cpp
+++ b/src/AvTranscoder/essenceStream/AvInputVideo.cpp
@@ -133,9 +133,9 @@ void AvInputVideo::setProfile( const Profile::ProfileDesc& desc )
 
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType )
 			continue;
 
 		try
diff --git a/src/AvTranscoder/essenceStream/AvOutputAudio.cpp b/src/AvTranscoder/essenceStream/AvOutputAudio.cpp
index 80bd01ca..e1fbf756 100644
--- a/src/AvTranscoder/essenceStream/AvOutputAudio.cpp
+++ b/src/AvTranscoder/essenceStream/AvOutputAudio.cpp
@@ -173,24 +173,24 @@ bool AvOutputAudio::encodeFrame( Frame& codedFrame )
 
 void AvOutputAudio::setProfile( const Profile::ProfileDesc& desc, const AudioFrameDesc& frameDesc  )
 {
-	if( ! desc.count( Profile::avProfileCodec ) || 		
-		! desc.count( Profile::avProfileSampleFormat ) )
+	if( ! desc.count( constants::avProfileCodec ) || 		
+		! desc.count( constants::avProfileSampleFormat ) )
 	{
-		throw std::runtime_error( "The profile " + desc.find( Profile::avProfileIdentificatorHuman )->second + " is invalid." );
+		throw std::runtime_error( "The profile " + desc.find( constants::avProfileIdentificatorHuman )->second + " is invalid." );
 	}
 	
-	_codec.setCodec( eCodecTypeEncoder, desc.find( Profile::avProfileCodec )->second );
+	_codec.setCodec( eCodecTypeEncoder, desc.find( constants::avProfileCodec )->second );
 	_codec.setAudioParameters( frameDesc );
 
 	Context codecContext( _codec.getAVCodecContext() );
 	
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType ||
-			(*it).first == Profile::avProfileCodec ||
-			(*it).first == Profile::avProfileSampleFormat )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType ||
+			(*it).first == constants::avProfileCodec ||
+			(*it).first == constants::avProfileSampleFormat )
 			continue;
 
 		try
@@ -208,11 +208,11 @@ void AvOutputAudio::setProfile( const Profile::ProfileDesc& desc, const AudioFra
 
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType ||
-			(*it).first == Profile::avProfileCodec ||
-			(*it).first == Profile::avProfileSampleFormat )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType ||
+			(*it).first == constants::avProfileCodec ||
+			(*it).first == constants::avProfileSampleFormat )
 			continue;
 
 		try
diff --git a/src/AvTranscoder/essenceStream/AvOutputVideo.cpp b/src/AvTranscoder/essenceStream/AvOutputVideo.cpp
index 4eb05970..0c636e15 100644
--- a/src/AvTranscoder/essenceStream/AvOutputVideo.cpp
+++ b/src/AvTranscoder/essenceStream/AvOutputVideo.cpp
@@ -174,16 +174,16 @@ bool AvOutputVideo::encodeFrame( Frame& codedFrame )
 
 void AvOutputVideo::setProfile( const Profile::ProfileDesc& desc, const avtranscoder::VideoFrameDesc& frameDesc )
 {
-	if( ! desc.count( Profile::avProfileCodec ) ||
-		! desc.count( Profile::avProfilePixelFormat ) || 
-		! desc.count( Profile::avProfileFrameRate ) )
+	if( ! desc.count( constants::avProfileCodec ) ||
+		! desc.count( constants::avProfilePixelFormat ) || 
+		! desc.count( constants::avProfileFrameRate ) )
 	{
-		throw std::runtime_error( "The profile " + desc.find( Profile::avProfileIdentificatorHuman )->second + " is invalid." );
+		throw std::runtime_error( "The profile " + desc.find( constants::avProfileIdentificatorHuman )->second + " is invalid." );
 	}
 	
-	_codec.setCodec( eCodecTypeEncoder, desc.find( Profile::avProfileCodec )->second );
+	_codec.setCodec( eCodecTypeEncoder, desc.find( constants::avProfileCodec )->second );
 
-	const size_t frameRate = std::strtoul( desc.find( Profile::avProfileFrameRate )->second.c_str(), NULL, 0 );
+	const size_t frameRate = std::strtoul( desc.find( constants::avProfileFrameRate )->second.c_str(), NULL, 0 );
 	_codec.setTimeBase( 1, frameRate );
 
 	_codec.setImageParameters( frameDesc );
@@ -192,12 +192,12 @@ void AvOutputVideo::setProfile( const Profile::ProfileDesc& desc, const avtransc
 	
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType ||
-			(*it).first == Profile::avProfileCodec ||
-			(*it).first == Profile::avProfilePixelFormat ||
-			(*it).first == Profile::avProfileFrameRate )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType ||
+			(*it).first == constants::avProfileCodec ||
+			(*it).first == constants::avProfilePixelFormat ||
+			(*it).first == constants::avProfileFrameRate )
 			continue;
 
 		try
@@ -215,12 +215,12 @@ void AvOutputVideo::setProfile( const Profile::ProfileDesc& desc, const avtransc
 
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType ||
-			(*it).first == Profile::avProfileCodec ||
-			(*it).first == Profile::avProfilePixelFormat ||
-			(*it).first == Profile::avProfileFrameRate )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType ||
+			(*it).first == constants::avProfileCodec ||
+			(*it).first == constants::avProfilePixelFormat ||
+			(*it).first == constants::avProfileFrameRate )
 			continue;
 
 		try
diff --git a/src/AvTranscoder/file/InputFile.cpp b/src/AvTranscoder/file/InputFile.cpp
index ed664986..cc1b3db4 100644
--- a/src/AvTranscoder/file/InputFile.cpp
+++ b/src/AvTranscoder/file/InputFile.cpp
@@ -217,9 +217,9 @@ void InputFile::setProfile( const Profile::ProfileDesc& desc )
 	
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType )
 			continue;
 		
 		try
diff --git a/src/AvTranscoder/file/OutputFile.cpp b/src/AvTranscoder/file/OutputFile.cpp
index 6b6638cf..09e19f37 100644
--- a/src/AvTranscoder/file/OutputFile.cpp
+++ b/src/AvTranscoder/file/OutputFile.cpp
@@ -224,25 +224,25 @@ void OutputFile::addMetadata( const std::string& key, const std::string& value )
 
 void OutputFile::setProfile( const Profile::ProfileDesc& desc )
 {
-	if( ! desc.count( Profile::avProfileFormat ) )
+	if( ! desc.count( constants::avProfileFormat ) )
 	{
-		throw std::runtime_error( "The profile " + desc.find( Profile::avProfileIdentificatorHuman )->second + " is invalid." );
+		throw std::runtime_error( "The profile " + desc.find( constants::avProfileIdentificatorHuman )->second + " is invalid." );
 	}
 	
-	if( ! matchFormat( desc.find( Profile::avProfileFormat )->second, _filename ) )
+	if( ! matchFormat( desc.find( constants::avProfileFormat )->second, _filename ) )
 	{
 		throw std::runtime_error( "Invalid format according to the file extension." );
 	}
-	_outputFormat = av_guess_format( desc.find( Profile::avProfileFormat )->second.c_str(), _filename.c_str(), NULL);
+	_outputFormat = av_guess_format( desc.find( constants::avProfileFormat )->second.c_str(), _filename.c_str(), NULL);
 	
 	Context formatContext( _formatContext );
 	
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType ||
-			(*it).first == Profile::avProfileFormat )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType ||
+			(*it).first == constants::avProfileFormat )
 			continue;
 		
 		try
@@ -260,10 +260,10 @@ void OutputFile::setProfile( const Profile::ProfileDesc& desc )
 	
 	for( Profile::ProfileDesc::const_iterator it = desc.begin(); it != desc.end(); ++it )
 	{
-		if( (*it).first == Profile::avProfileIdentificator ||
-			(*it).first == Profile::avProfileIdentificatorHuman ||
-			(*it).first == Profile::avProfileType ||
-			(*it).first == Profile::avProfileFormat )
+		if( (*it).first == constants::avProfileIdentificator ||
+			(*it).first == constants::avProfileIdentificatorHuman ||
+			(*it).first == constants::avProfileType ||
+			(*it).first == constants::avProfileFormat )
 			continue;
 
 		try
diff --git a/src/AvTranscoder/frame/AudioFrame.hpp b/src/AvTranscoder/frame/AudioFrame.hpp
index 7b0e5f17..2421e7f8 100644
--- a/src/AvTranscoder/frame/AudioFrame.hpp
+++ b/src/AvTranscoder/frame/AudioFrame.hpp
@@ -30,8 +30,8 @@ class AvExport AudioFrameDesc
 	
 	void setParameters( const Profile::ProfileDesc& desc )
 	{
-		if( desc.find( Profile::avProfileSampleFormat ) != desc.end() )
-			setSampleFormat( desc.find( Profile::avProfileSampleFormat )->second );
+		if( desc.find( constants::avProfileSampleFormat ) != desc.end() )
+			setSampleFormat( desc.find( constants::avProfileSampleFormat )->second );
 	}
 
 	size_t getSampleRate() const { return _sampleRate; }
diff --git a/src/AvTranscoder/frame/VideoFrame.hpp b/src/AvTranscoder/frame/VideoFrame.hpp
index 7e6ba80a..569cb10a 100644
--- a/src/AvTranscoder/frame/VideoFrame.hpp
+++ b/src/AvTranscoder/frame/VideoFrame.hpp
@@ -46,8 +46,8 @@ class AvExport VideoFrameDesc
 	
 	void setParameters( const Profile::ProfileDesc& desc )
 	{
-		if( desc.find( Profile::avProfilePixelFormat ) != desc.end() )
-			setPixel( Pixel( desc.find( Profile::avProfilePixelFormat )->second.c_str() ) );
+		if( desc.find( constants::avProfilePixelFormat ) != desc.end() )
+			setPixel( Pixel( desc.find( constants::avProfilePixelFormat )->second.c_str() ) );
 	}
 
 	size_t               getWidth ()    const { return _width;  }
diff --git a/src/AvTranscoder/option/Option.hpp b/src/AvTranscoder/option/Option.hpp
index 80009188..a906871f 100644
--- a/src/AvTranscoder/option/Option.hpp
+++ b/src/AvTranscoder/option/Option.hpp
@@ -32,7 +32,7 @@ enum EOptionBaseType
  * Get its type to know what the option is about: Int, Double, Ratio, Choice...
  * Parse its array of options to get the potential childs (Choice and Group).
  */
-class Option
+class AvExport Option
 {
 public:
 	Option( AVOption& avOption, void* avContext );
diff --git a/src/AvTranscoder/profile/Avi.hpp b/src/AvTranscoder/profile/Avi.hpp
index 30496d5d..e67793e3 100644
--- a/src/AvTranscoder/profile/Avi.hpp
+++ b/src/AvTranscoder/profile/Avi.hpp
@@ -7,11 +7,11 @@ namespace avtranscoder
 void loadAvi( Profile::ProfilesDesc& profiles )
 {
 	Profile::ProfileDesc avi;
-	avi[ Profile::avProfileIdentificator ] = "avi";
-	avi[ Profile::avProfileIdentificatorHuman ] = "AVI (Audio Video Interleaved)";
-	avi[ Profile::avProfileType ] = Profile::avProfileTypeFormat;
+	avi[ constants::avProfileIdentificator ] = "avi";
+	avi[ constants::avProfileIdentificatorHuman ] = "AVI (Audio Video Interleaved)";
+	avi[ constants::avProfileType ] = constants::avProfileTypeFormat;
 
-	avi[ Profile::avProfileFormat ] = "avi";
+	avi[ constants::avProfileFormat ] = "avi";
 
 	profiles.push_back( avi );
 }
diff --git a/src/AvTranscoder/profile/DNxHD.hpp b/src/AvTranscoder/profile/DNxHD.hpp
index 1a998a54..7f9d12bb 100644
--- a/src/AvTranscoder/profile/DNxHD.hpp
+++ b/src/AvTranscoder/profile/DNxHD.hpp
@@ -7,34 +7,34 @@ namespace avtranscoder
 void loadDNxHD( Profile::ProfilesDesc& profiles )
 {
 	Profile::ProfileDesc dnxhd120;
-	dnxhd120[ Profile::avProfileIdentificator ] = "dnxhd120";
-	dnxhd120[ Profile::avProfileIdentificatorHuman ] = "DNxHD 120";
-	dnxhd120[ Profile::avProfileType ] = Profile::avProfileTypeVideo;
-	dnxhd120[ Profile::avProfileCodec ] = "dnxhd";
+	dnxhd120[ constants::avProfileIdentificator ] = "dnxhd120";
+	dnxhd120[ constants::avProfileIdentificatorHuman ] = "DNxHD 120";
+	dnxhd120[ constants::avProfileType ] = constants::avProfileTypeVideo;
+	dnxhd120[ constants::avProfileCodec ] = "dnxhd";
 	dnxhd120[ "b" ] = "120000000";
-	dnxhd120[ Profile::avProfilePixelFormat ] = "yuv422p";
+	dnxhd120[ constants::avProfilePixelFormat ] = "yuv422p";
 	dnxhd120[ "g" ] = "1";
-	dnxhd120[ Profile::avProfileFrameRate ] = "25";
+	dnxhd120[ constants::avProfileFrameRate ] = "25";
 
 	Profile::ProfileDesc dnxhd185;
-	dnxhd185[ Profile::avProfileIdentificator ] = "dnxhd185";
-	dnxhd185[ Profile::avProfileIdentificatorHuman ] = "DNxHD 185";
-	dnxhd185[ Profile::avProfileType ] = Profile::avProfileTypeVideo;
-	dnxhd185[ Profile::avProfileCodec ] = "dnxhd";
+	dnxhd185[ constants::avProfileIdentificator ] = "dnxhd185";
+	dnxhd185[ constants::avProfileIdentificatorHuman ] = "DNxHD 185";
+	dnxhd185[ constants::avProfileType ] = constants::avProfileTypeVideo;
+	dnxhd185[ constants::avProfileCodec ] = "dnxhd";
 	dnxhd185[ "b" ] = "185000000";
-	dnxhd185[ Profile::avProfilePixelFormat ] = "yuv422p";
+	dnxhd185[ constants::avProfilePixelFormat ] = "yuv422p";
 	dnxhd185[ "g" ] = "1";
-	dnxhd185[ Profile::avProfileFrameRate ] = "25";
+	dnxhd185[ constants::avProfileFrameRate ] = "25";
 
 	Profile::ProfileDesc dnxhd185x;
-	dnxhd185x[ Profile::avProfileIdentificator ] = "dnxhd185x";
-	dnxhd185x[ Profile::avProfileIdentificatorHuman ] = "DNxHD 185 X";
-	dnxhd185x[ Profile::avProfileType ] = Profile::avProfileTypeVideo;
-	dnxhd185x[ Profile::avProfileCodec ] = "dnxhd";
+	dnxhd185x[ constants::avProfileIdentificator ] = "dnxhd185x";
+	dnxhd185x[ constants::avProfileIdentificatorHuman ] = "DNxHD 185 X";
+	dnxhd185x[ constants::avProfileType ] = constants::avProfileTypeVideo;
+	dnxhd185x[ constants::avProfileCodec ] = "dnxhd";
 	dnxhd185x[ "b" ] = "185000000";
-	dnxhd185x[ Profile::avProfilePixelFormat ] = "yuv422p10";
+	dnxhd185x[ constants::avProfilePixelFormat ] = "yuv422p10";
 	dnxhd185x[ "g" ] = "1";
-	dnxhd185x[ Profile::avProfileFrameRate ] = "25";
+	dnxhd185x[ constants::avProfileFrameRate ] = "25";
 
 	profiles.push_back( dnxhd120 );
 	profiles.push_back( dnxhd185 );
diff --git a/src/AvTranscoder/profile/Mkv.hpp b/src/AvTranscoder/profile/Mkv.hpp
index abf5a12c..d80f8dff 100644
--- a/src/AvTranscoder/profile/Mkv.hpp
+++ b/src/AvTranscoder/profile/Mkv.hpp
@@ -7,11 +7,11 @@ namespace avtranscoder
 void loadMkv( Profile::ProfilesDesc& profiles )
 {
 	Profile::ProfileDesc mkv;
-	mkv[ Profile::avProfileIdentificator ] = "mkv";
-	mkv[ Profile::avProfileIdentificatorHuman ] = "Matroska";
-	mkv[ Profile::avProfileType ] = Profile::avProfileTypeFormat;
+	mkv[ constants::avProfileIdentificator ] = "mkv";
+	mkv[ constants::avProfileIdentificatorHuman ] = "Matroska";
+	mkv[ constants::avProfileType ] = constants::avProfileTypeFormat;
 
-	mkv[ Profile::avProfileFormat ] = "matroska";
+	mkv[ constants::avProfileFormat ] = "matroska";
 
 	profiles.push_back( mkv );
 }
diff --git a/src/AvTranscoder/profile/Wave.hpp b/src/AvTranscoder/profile/Wave.hpp
index f075737d..62328bb5 100644
--- a/src/AvTranscoder/profile/Wave.hpp
+++ b/src/AvTranscoder/profile/Wave.hpp
@@ -7,52 +7,52 @@ namespace avtranscoder
 void loadWave( Profile::ProfilesDesc& profiles )
 {
 	Profile::ProfileDesc wave48k;
-	wave48k[ Profile::avProfileType ] = Profile::avProfileTypeAudio;
-	wave48k[ Profile::avProfileSampleRate ] = "48000";
+	wave48k[ constants::avProfileType ] = constants::avProfileTypeAudio;
+	wave48k[ constants::avProfileSampleRate ] = "48000";
 
 	// 48kHz - 16bits little endian - mono
-	wave48k[ Profile::avProfileIdentificator ] = "wave16b48kmono";
-	wave48k[ Profile::avProfileIdentificatorHuman ] = "Wave 16bits 48kHz mono";
-	wave48k[ Profile::avProfileCodec ] = "pcm_s16le";
-	wave48k[ Profile::avProfileSampleFormat ] = "s16";
-	wave48k[ Profile::avProfileChannel ] = "1";
+	wave48k[ constants::avProfileIdentificator ] = "wave16b48kmono";
+	wave48k[ constants::avProfileIdentificatorHuman ] = "Wave 16bits 48kHz mono";
+	wave48k[ constants::avProfileCodec ] = "pcm_s16le";
+	wave48k[ constants::avProfileSampleFormat ] = "s16";
+	wave48k[ constants::avProfileChannel ] = "1";
 
 	profiles.push_back( wave48k );
 
 	// 48kHz - 16bits little endian - stereo
-	wave48k[ Profile::avProfileIdentificator ] = "wave16b48kstereo";
-	wave48k[ Profile::avProfileIdentificatorHuman ] = "Wave 16bits 48kHz stereo";
-	wave48k[ Profile::avProfileChannel ] = "2";
+	wave48k[ constants::avProfileIdentificator ] = "wave16b48kstereo";
+	wave48k[ constants::avProfileIdentificatorHuman ] = "Wave 16bits 48kHz stereo";
+	wave48k[ constants::avProfileChannel ] = "2";
 
 	profiles.push_back( wave48k );
 
 	// 48kHz - 16bits little endian - 5.1
-	wave48k[ Profile::avProfileIdentificator ] = "wave16b48k5_1";
-	wave48k[ Profile::avProfileIdentificatorHuman ] = "Wave 16bits 48kHz 5.1";
-	wave48k[ Profile::avProfileChannel ] = "6";
+	wave48k[ constants::avProfileIdentificator ] = "wave16b48k5_1";
+	wave48k[ constants::avProfileIdentificatorHuman ] = "Wave 16bits 48kHz 5.1";
+	wave48k[ constants::avProfileChannel ] = "6";
 
 	profiles.push_back( wave48k );
 
 	// 48kHz - 24bits little endian - mono
-	wave48k[ Profile::avProfileIdentificator ] = "wave24b48kmono";
-	wave48k[ Profile::avProfileIdentificatorHuman ] = "Wave 24bits 48kHz mono";
-	wave48k[ Profile::avProfileCodec ] = "pcm_s24le";
-	wave48k[ Profile::avProfileSampleFormat ] = "s32";
-	wave48k[ Profile::avProfileChannel ] = "1";
+	wave48k[ constants::avProfileIdentificator ] = "wave24b48kmono";
+	wave48k[ constants::avProfileIdentificatorHuman ] = "Wave 24bits 48kHz mono";
+	wave48k[ constants::avProfileCodec ] = "pcm_s24le";
+	wave48k[ constants::avProfileSampleFormat ] = "s32";
+	wave48k[ constants::avProfileChannel ] = "1";
 
 	profiles.push_back( wave48k );
 
 	// 48kHz - 24bits little endian - stereo
-	wave48k[ Profile::avProfileIdentificator ] = "wave24b48kstereo";
-	wave48k[ Profile::avProfileIdentificatorHuman ] = "Wave 24bits 48kHz stereo";
-	wave48k[ Profile::avProfileChannel ] = "2";
+	wave48k[ constants::avProfileIdentificator ] = "wave24b48kstereo";
+	wave48k[ constants::avProfileIdentificatorHuman ] = "Wave 24bits 48kHz stereo";
+	wave48k[ constants::avProfileChannel ] = "2";
 
 	profiles.push_back( wave48k );
 
 	// 48kHz - 24bits little endian - 5.1
-	wave48k[ Profile::avProfileIdentificator ] = "wave24b48k5_1";
-	wave48k[ Profile::avProfileIdentificatorHuman ] = "Wave 24bits 48kHz 5.1";
-	wave48k[ Profile::avProfileChannel ] = "6";
+	wave48k[ constants::avProfileIdentificator ] = "wave24b48k5_1";
+	wave48k[ constants::avProfileIdentificatorHuman ] = "Wave 24bits 48kHz 5.1";
+	wave48k[ constants::avProfileChannel ] = "6";
 
 	profiles.push_back( wave48k );
 }
diff --git a/src/AvTranscoder/profile/XdCamHd422.hpp b/src/AvTranscoder/profile/XdCamHd422.hpp
index b96be302..82ae8084 100644
--- a/src/AvTranscoder/profile/XdCamHd422.hpp
+++ b/src/AvTranscoder/profile/XdCamHd422.hpp
@@ -8,12 +8,12 @@ void loadXdCamHD422( Profile::ProfilesDesc& profiles )
 {
 	Profile::ProfileDesc xdCamHd422;
 
-	xdCamHd422[ Profile::avProfileIdentificator ] = "xdcamhd422";
-	xdCamHd422[ Profile::avProfileIdentificatorHuman ] = "XdCamHD 422";
-	xdCamHd422[ Profile::avProfileType ] = Profile::avProfileTypeVideo;
+	xdCamHd422[ constants::avProfileIdentificator ] = "xdcamhd422";
+	xdCamHd422[ constants::avProfileIdentificatorHuman ] = "XdCamHD 422";
+	xdCamHd422[ constants::avProfileType ] = constants::avProfileTypeVideo;
 
 
-	xdCamHd422[ Profile::avProfileCodec ] = "mpeg2video";
+	xdCamHd422[ constants::avProfileCodec ] = "mpeg2video";
 	xdCamHd422[ "profile" ] = "0"; // FF_PROFILE_MPEG2_422
 	xdCamHd422[ "level" ] = "2";
 
@@ -23,9 +23,9 @@ void loadXdCamHD422( Profile::ProfilesDesc& profiles )
 	xdCamHd422[ "qmin" ] = "2";
 	xdCamHd422[ "qmax" ] = "12";
 	xdCamHd422[ "dc" ] = "2"; // 10 - 8 = 2
-	xdCamHd422[ Profile::avProfileFrameRate ] = "25";
+	xdCamHd422[ constants::avProfileFrameRate ] = "25";
 
-	xdCamHd422[ Profile::avProfilePixelFormat ] = "yuv422p";
+	xdCamHd422[ constants::avProfilePixelFormat ] = "yuv422p";
 
 	// color informations are not used in FFmpeg/LibAV for Mpeg2
 	xdCamHd422[ "colorspace" ] = "1"; // AVCOL_SPC_BT709
diff --git a/src/AvTranscoder/progress/progress.i b/src/AvTranscoder/progress/progress.i
index 8a676125..7bd30a37 100644
--- a/src/AvTranscoder/progress/progress.i
+++ b/src/AvTranscoder/progress/progress.i
@@ -1,4 +1,5 @@
 %{
+ #include <AvTranscoder/common.hpp>
  #include <AvTranscoder/progress/IProgress.hpp>
  #include <AvTranscoder/progress/ConsoleProgress.hpp>
  #include <AvTranscoder/progress/NoDisplayProgress.hpp>
@@ -7,6 +8,7 @@
 /* turn on director wrapping for IProgress */
 %feature("director") IProgress;
 
+%include <AvTranscoder/common.hpp>
 %include <AvTranscoder/progress/IProgress.hpp>
 %include <AvTranscoder/progress/ConsoleProgress.hpp>
 %include <AvTranscoder/progress/NoDisplayProgress.hpp>
diff --git a/src/AvTranscoder/transcoder/StreamTranscoder.cpp b/src/AvTranscoder/transcoder/StreamTranscoder.cpp
index a4db8f25..3491171f 100644
--- a/src/AvTranscoder/transcoder/StreamTranscoder.cpp
+++ b/src/AvTranscoder/transcoder/StreamTranscoder.cpp
@@ -184,10 +184,10 @@ StreamTranscoder::StreamTranscoder(
 	, _infinityStream( false )
 {
 	// create a coding case based on a InputEssence (aka generator)
-	if( ! profile.count( Profile::avProfileType ) )
+	if( ! profile.count( constants::avProfileType ) )
 		throw std::runtime_error( "unable to found stream type (audio, video, etc.)" );
 
-	if( profile.find( Profile::avProfileType )->second == Profile::avProfileTypeVideo )
+	if( profile.find( constants::avProfileType )->second == constants::avProfileTypeVideo )
 	{
 		AvOutputVideo* outputVideo = new AvOutputVideo();
 		
@@ -210,7 +210,7 @@ StreamTranscoder::StreamTranscoder(
 		return;
 	}
 
-	if( profile.find( Profile::avProfileType )->second == Profile::avProfileTypeAudio )
+	if( profile.find( constants::avProfileType )->second == constants::avProfileTypeAudio )
 	{
 		AvOutputAudio* outputAudio = new AvOutputAudio();
 
diff --git a/src/AvTranscoder/transcoder/Transcoder.cpp b/src/AvTranscoder/transcoder/Transcoder.cpp
index dac4bd8a..fb49d81e 100644
--- a/src/AvTranscoder/transcoder/Transcoder.cpp
+++ b/src/AvTranscoder/transcoder/Transcoder.cpp
@@ -397,10 +397,10 @@ void Transcoder::addTranscodeStream( const std::string& filename, const size_t s
 
 void Transcoder::addDummyStream( const Profile::ProfileDesc& profile, const ICodec& codec )
 {
-	if( ! profile.count( Profile::avProfileType ) )
+	if( ! profile.count( constants::avProfileType ) )
 		throw std::runtime_error( "unable to found stream type (audio, video, etc.)" );
 
-	if( profile.find( Profile::avProfileType )->second == Profile::avProfileTypeAudio )
+	if( profile.find( constants::avProfileType )->second == constants::avProfileTypeAudio )
 	{
 		if( _verbose )
 			std::cout << "add a generated audio stream" << std::endl;
@@ -410,7 +410,7 @@ void Transcoder::addDummyStream( const Profile::ProfileDesc& profile, const ICod
 		_streamTranscoders.push_back( new StreamTranscoder( *_generatorAudio.back(), _outputFile, profile ) );
 	}
 
-	if( profile.find( Profile::avProfileType )->second == Profile::avProfileTypeVideo )
+	if( profile.find( constants::avProfileType )->second == constants::avProfileTypeVideo )
 	{
 		if( _verbose )
 			std::cout << "add generated video stream" << std::endl;
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 518d273d..86bdce13 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -25,7 +25,11 @@ target_link_libraries(avtranscoder-static ${FFMPEG_LIBRARIES})
 # Create 'avtranscoder' shared lib
 add_library(avtranscoder-shared SHARED ${AVTRANSCODER_SRC_FILES})
 set_target_properties(avtranscoder-shared PROPERTIES LINKER_LANGUAGE CXX)
-set_target_properties(avtranscoder-shared PROPERTIES OUTPUT_NAME avtranscoder)
+if(WIN32)
+	set_target_properties(avtranscoder-shared PROPERTIES OUTPUT_NAME "avtranscoder-${AVTRANSCODER_VERSION}")
+else()
+	set_target_properties(avtranscoder-shared PROPERTIES OUTPUT_NAME avtranscoder)
+endif()
 set_target_properties(avtranscoder-shared PROPERTIES SOVERSION ${AVTRANSCODER_VERSION_MAJOR})
 set_target_properties(avtranscoder-shared PROPERTIES VERSION ${AVTRANSCODER_VERSION})
 target_link_libraries(avtranscoder-shared ${FFMPEG_LIBRARIES})