diff --git a/src/AvTranscoder/EssenceStream/DummyVideo.cpp b/src/AvTranscoder/EssenceStream/DummyVideo.cpp index 2191e4bc..d916dd4f 100644 --- a/src/AvTranscoder/EssenceStream/DummyVideo.cpp +++ b/src/AvTranscoder/EssenceStream/DummyVideo.cpp @@ -6,6 +6,8 @@ namespace avtranscoder DummyVideo::DummyVideo( ) : InputEssence( ) , _inputFrame( NULL ) + , _videoDesc() + , _videoFrameDesc() , _numberOfView( 1 ) { } @@ -32,12 +34,13 @@ void DummyVideo::setFrame( Frame& inputFrame ) bool DummyVideo::readNextFrame( Frame& frameBuffer ) { - frameBuffer.getBuffer().resize( _videoFrameDesc.getDataSize() ); - if( ! _inputFrame ) { int fillChar = 0; // fill images with black - memset( frameBuffer.getPtr(), fillChar, frameBuffer.getSize() ); + + if( frameBuffer.getSize() != _videoFrameDesc.getDataSize() ) + frameBuffer.getBuffer().resize( _videoFrameDesc.getDataSize() ); + memset( frameBuffer.getPtr(), fillChar, _videoFrameDesc.getDataSize() ); return true; } diff --git a/src/AvTranscoder/EssenceStream/OutputVideo.cpp b/src/AvTranscoder/EssenceStream/OutputVideo.cpp index 79ce8d97..7749bc1c 100644 --- a/src/AvTranscoder/EssenceStream/OutputVideo.cpp +++ b/src/AvTranscoder/EssenceStream/OutputVideo.cpp @@ -68,7 +68,7 @@ bool OutputVideo::encodeFrame( const Frame& sourceFrame, DataStream& codedFrame frame->width = codecContext->width; frame->height = codecContext->height; frame->format = codecContext->pix_fmt; - avpicture_fill( (AVPicture*)frame, const_cast< unsigned char * >( sourceImageFrame.getPtr() ), codecContext->pix_fmt, codecContext->width, codecContext->height ); + avpicture_fill( (AVPicture*)frame, sourceImageFrame.getPtr(), codecContext->pix_fmt, codecContext->width, codecContext->height ); AVPacket packet; av_init_packet( &packet ); @@ -80,12 +80,7 @@ bool OutputVideo::encodeFrame( const Frame& sourceFrame, DataStream& codedFrame if( ( codecContext->coded_frame ) && ( codecContext->coded_frame->pts != (int)AV_NOPTS_VALUE ) ) { - // why need to do that ? - //packet.pts = av_rescale_q( codecContext->coded_frame->pts, codecContext->time_base, codecContext->time_base ); - - //std::cout << "pts with rescale " << (int)packet.pts << std::endl; packet.pts = codecContext->coded_frame->pts; - //std::cout << "pts without rescale " << (int)packet.pts << std::endl; } if( codecContext->coded_frame && @@ -94,7 +89,6 @@ bool OutputVideo::encodeFrame( const Frame& sourceFrame, DataStream& codedFrame packet.flags |= AV_PKT_FLAG_KEY; } - #if LIBAVCODEC_VERSION_MAJOR > 53 int gotPacket = 0; int ret = avcodec_encode_video2( codecContext, &packet, frame, &gotPacket ); @@ -145,7 +139,6 @@ bool OutputVideo::encodeFrame( const Frame& sourceFrame, DataStream& codedFrame return ret == 0; } - bool OutputVideo::encodeFrame( DataStream& codedFrame ) { AVCodecContext* codecContext = _videoDesc.getCodecContext(); diff --git a/src/AvTranscoder/EssenceStructures/VideoFrame.hpp b/src/AvTranscoder/EssenceStructures/VideoFrame.hpp index cfd582ed..bfade4ad 100644 --- a/src/AvTranscoder/EssenceStructures/VideoFrame.hpp +++ b/src/AvTranscoder/EssenceStructures/VideoFrame.hpp @@ -97,9 +97,6 @@ class AvExport VideoFrame : public Frame m_dataBuffer = DataBuffer( ref.getDataSize(), 0 ); } - virtual ~VideoFrame() - {}; - const VideoFrameDesc& desc() const { return m_videoFrameDesc; } private: diff --git a/src/AvTranscoder/EssenceTransform/VideoEssenceTransform.cpp b/src/AvTranscoder/EssenceTransform/VideoEssenceTransform.cpp index 6e23bf3f..65ccb9f1 100644 --- a/src/AvTranscoder/EssenceTransform/VideoEssenceTransform.cpp +++ b/src/AvTranscoder/EssenceTransform/VideoEssenceTransform.cpp @@ -99,11 +99,11 @@ void VideoEssenceTransform::convert( const Frame& srcFrame, Frame& dstFrame ) for( size_t plane = 0; plane < MAX_SWS_PLANE; ++plane ) { - _srcData.at( plane ) = (uint8_t*) const_cast< unsigned char* >( src.getPtr() + _srcOffsets.at( plane ) ); + _srcData.at( plane ) = (uint8_t*) src.getPtr() + _srcOffsets.at( plane ); _dstData.at( plane ) = (uint8_t*) dst.getPtr() + _dstOffsets.at( plane ); } - if( !_imageConvertContext ) + if( ! _imageConvertContext ) { throw std::runtime_error( "unknown color convert context" ); } @@ -112,7 +112,7 @@ void VideoEssenceTransform::convert( const Frame& srcFrame, Frame& dstFrame ) &_srcData[0], &_srcLineSize[0], 0, src.desc().getHeight(), &_dstData[0], &_dstLineSize[0] ); - if( ret != (int) src.desc().getHeight() ) + if( ret != (int) dst.desc().getHeight() ) throw std::runtime_error( "error in color converter" ); }