diff --git a/src/AvTranscoder/avTranscoder.i b/src/AvTranscoder/avTranscoder.i index 8d463428..c394ed13 100644 --- a/src/AvTranscoder/avTranscoder.i +++ b/src/AvTranscoder/avTranscoder.i @@ -13,6 +13,7 @@ %include "AvTranscoder/swig/avMediaType.i" %include "AvTranscoder/swig/avRational.i" %include "AvTranscoder/swig/avLogLevel.i" +%include "AvTranscoder/swig/avOperator.i" %{ #include diff --git a/src/AvTranscoder/codec/ICodec.cpp b/src/AvTranscoder/codec/ICodec.cpp index e1a5949f..7cc51efa 100644 --- a/src/AvTranscoder/codec/ICodec.cpp +++ b/src/AvTranscoder/codec/ICodec.cpp @@ -51,7 +51,7 @@ ICodec::~ICodec() _avCodecContext = NULL; } -void ICodec::open() +void ICodec::openCodec() { if( ! _avCodecContext ) throw std::runtime_error( "unable to open a codec with no codec context" ); diff --git a/src/AvTranscoder/codec/ICodec.hpp b/src/AvTranscoder/codec/ICodec.hpp index 60add8bb..d1257bf8 100644 --- a/src/AvTranscoder/codec/ICodec.hpp +++ b/src/AvTranscoder/codec/ICodec.hpp @@ -36,7 +36,7 @@ class AvExport ICodec virtual ~ICodec() = 0; /// Initialize the codec context. - void open(); + void openCodec(); std::string getCodecName() const; AVCodecID getCodecId() const; diff --git a/src/AvTranscoder/decoder/AudioDecoder.cpp b/src/AvTranscoder/decoder/AudioDecoder.cpp index 21e91d16..fe6391e2 100644 --- a/src/AvTranscoder/decoder/AudioDecoder.cpp +++ b/src/AvTranscoder/decoder/AudioDecoder.cpp @@ -52,7 +52,7 @@ AudioDecoder::~AudioDecoder() void AudioDecoder::setup() { - _inputStream->getAudioCodec().open(); + _inputStream->getAudioCodec().openCodec(); } bool AudioDecoder::decodeNextFrame( Frame& frameBuffer ) diff --git a/src/AvTranscoder/decoder/VideoDecoder.cpp b/src/AvTranscoder/decoder/VideoDecoder.cpp index 8e8b4543..b551a334 100644 --- a/src/AvTranscoder/decoder/VideoDecoder.cpp +++ b/src/AvTranscoder/decoder/VideoDecoder.cpp @@ -50,7 +50,7 @@ VideoDecoder::~VideoDecoder() void VideoDecoder::setup() { - _inputStream->getVideoCodec().open(); + _inputStream->getVideoCodec().openCodec(); } bool VideoDecoder::decodeNextFrame( Frame& frameBuffer ) diff --git a/src/AvTranscoder/encoder/AudioEncoder.cpp b/src/AvTranscoder/encoder/AudioEncoder.cpp index bb3d6acb..c10fbd4c 100644 --- a/src/AvTranscoder/encoder/AudioEncoder.cpp +++ b/src/AvTranscoder/encoder/AudioEncoder.cpp @@ -37,7 +37,7 @@ AudioEncoder::~AudioEncoder() void AudioEncoder::setup() { - _codec.open(); + _codec.openCodec(); } bool AudioEncoder::encodeFrame( const Frame& sourceFrame, Frame& codedFrame ) diff --git a/src/AvTranscoder/encoder/VideoEncoder.cpp b/src/AvTranscoder/encoder/VideoEncoder.cpp index 1b462417..d0bd0064 100644 --- a/src/AvTranscoder/encoder/VideoEncoder.cpp +++ b/src/AvTranscoder/encoder/VideoEncoder.cpp @@ -38,7 +38,7 @@ VideoEncoder::~VideoEncoder() void VideoEncoder::setup() { - _codec.open(); + _codec.openCodec(); } diff --git a/src/AvTranscoder/frame/Frame.hpp b/src/AvTranscoder/frame/Frame.hpp index 432818cd..2814a3a9 100644 --- a/src/AvTranscoder/frame/Frame.hpp +++ b/src/AvTranscoder/frame/Frame.hpp @@ -19,8 +19,10 @@ class AvExport Frame /// Create a frame with a the given buffer size Frame( const size_t dataSize ); +#ifndef SWIG /// Create a frame from the given AVPAcket (copy data of given packet) Frame( const AVPacket& avPacket ); +#endif /// Override copy constructor in order to copy AVPacket data Frame( const Frame& other ); @@ -52,11 +54,11 @@ class AvExport Frame /// Clear existing data and set size to 0 void clear(); - AVPacket& getAVPacket() { return _packet; } unsigned char* getData() { return _packet.data; } size_t getSize() const { return _packet.size; } #ifndef SWIG + AVPacket& getAVPacket() { return _packet; } const AVPacket& getAVPacket() const { return _packet; } const unsigned char* getData() const { return _packet.data; } #endif diff --git a/src/AvTranscoder/swig/avOperator.i b/src/AvTranscoder/swig/avOperator.i new file mode 100644 index 00000000..215e3652 --- /dev/null +++ b/src/AvTranscoder/swig/avOperator.i @@ -0,0 +1,7 @@ +#if SWIGPYTHON + %rename(__assign__) *::operator=; +#endif + +#if SWIGJAVA + %rename(clone) *::operator=; +#endif diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2e4ce98b..d0af291e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -76,6 +76,9 @@ if(SWIG_FOUND) set(AVTRANSCODER_BINDING_FILE "AvTranscoder/avTranscoder.i") set_source_files_properties(${AVTRANSCODER_BINDING_FILE} PROPERTIES CPLUSPLUS ON) + # Swig flags + set(CMAKE_SWIG_FLAGS -c++ -fcompact -small -O -Werror) + ### PYTHON BINDING if(AVTRANSCODER_DISABLE_PYTHON_BINDING) message("PYTHON binding disabled, will not build python binding.") @@ -84,9 +87,6 @@ if(SWIG_FOUND) if(PYTHONLIBS_FOUND) include_directories(${PYTHON_INCLUDE_PATH}) - # Swig flags - set(CMAKE_SWIG_FLAGS -c++ -fcompact) - # Create '_avtranscoder' shared lib (python) swig_add_module(avtranscoder-py python ${AVTRANSCODER_BINDING_FILE}) # For Python binding, need to compile the wrapper into a lib called "_.so" @@ -131,7 +131,7 @@ if(SWIG_FOUND) include_directories(${JNI_INCLUDE_DIRS}) # Swig flags - set(CMAKE_SWIG_FLAGS -c++ -fcompact -package org.avtranscoder) + set(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_FLAGS} -package org.avtranscoder) # Create 'avtranscoder-java' shared lib swig_add_module(avtranscoder-java java ${AVTRANSCODER_BINDING_FILE})