fixed compilation issues with new Ptr
authorVladislav Vinogradov <vlad.vinogradov@itseez.com>
Fri, 6 Sep 2013 11:52:07 +0000 (15:52 +0400)
committerVladislav Vinogradov <vlad.vinogradov@itseez.com>
Fri, 6 Sep 2013 11:52:07 +0000 (15:52 +0400)
modules/core/src/opengl.cpp
modules/gpucodec/src/video_reader.cpp
modules/gpucodec/src/video_source.cpp
modules/gpucodec/src/video_writer.cpp

index 827d276..7bff69b 100644 (file)
@@ -484,7 +484,7 @@ cv::ogl::Buffer::Buffer(int arows, int acols, int atype, unsigned int abufId, bo
     (void) autoRelease;
     throw_no_ogl();
 #else
-    impl_ = new Impl(abufId, autoRelease);
+    impl_.reset(new Impl(abufId, autoRelease));
     rows_ = arows;
     cols_ = acols;
     type_ = atype;
@@ -500,7 +500,7 @@ cv::ogl::Buffer::Buffer(Size asize, int atype, unsigned int abufId, bool autoRel
     (void) autoRelease;
     throw_no_ogl();
 #else
-    impl_ = new Impl(abufId, autoRelease);
+    impl_.reset(new Impl(abufId, autoRelease));
     rows_ = asize.height;
     cols_ = asize.width;
     type_ = atype;
@@ -529,7 +529,7 @@ cv::ogl::Buffer::Buffer(InputArray arr, Target target, bool autoRelease) : rows_
             Mat mat = arr.getMat();
             CV_Assert( mat.isContinuous() );
             const GLsizeiptr asize = mat.rows * mat.cols * mat.elemSize();
-            impl_ = new Impl(asize, mat.data, target, autoRelease);
+            impl_.reset(new Impl(asize, mat.data, target, autoRelease));
             rows_ = mat.rows;
             cols_ = mat.cols;
             type_ = mat.type();
@@ -552,7 +552,7 @@ void cv::ogl::Buffer::create(int arows, int acols, int atype, Target target, boo
     if (rows_ != arows || cols_ != acols || type_ != atype)
     {
         const GLsizeiptr asize = arows * acols * CV_ELEM_SIZE(atype);
-        impl_ = new Impl(asize, 0, target, autoRelease);
+        impl_.reset(new Impl(asize, 0, target, autoRelease));
         rows_ = arows;
         cols_ = acols;
         type_ = atype;
@@ -563,8 +563,6 @@ void cv::ogl::Buffer::create(int arows, int acols, int atype, Target target, boo
 void cv::ogl::Buffer::release()
 {
 #ifdef HAVE_OPENGL
-    if (*impl_.refcount == 1)
-        impl_->setAutoRelease(true);
     impl_ = Impl::empty();
     rows_ = 0;
     cols_ = 0;
@@ -968,7 +966,7 @@ cv::ogl::Texture2D::Texture2D(int arows, int acols, Format aformat, unsigned int
     (void) autoRelease;
     throw_no_ogl();
 #else
-    impl_ = new Impl(atexId, autoRelease);
+    impl_.reset(new Impl(atexId, autoRelease));
     rows_ = arows;
     cols_ = acols;
     format_ = aformat;
@@ -984,7 +982,7 @@ cv::ogl::Texture2D::Texture2D(Size asize, Format aformat, unsigned int atexId, b
     (void) autoRelease;
     throw_no_ogl();
 #else
-    impl_ = new Impl(atexId, autoRelease);
+    impl_.reset(new Impl(atexId, autoRelease));
     rows_ = asize.height;
     cols_ = asize.width;
     format_ = aformat;
@@ -1024,7 +1022,7 @@ cv::ogl::Texture2D::Texture2D(InputArray arr, bool autoRelease) : rows_(0), cols
         {
             ogl::Buffer buf = arr.getOGlBuffer();
             buf.bind(ogl::Buffer::PIXEL_UNPACK_BUFFER);
-            impl_ = new Impl(internalFormats[cn], asize.width, asize.height, srcFormats[cn], gl_types[depth], 0, autoRelease);
+            impl_.reset(new Impl(internalFormats[cn], asize.width, asize.height, srcFormats[cn], gl_types[depth], 0, autoRelease));
             ogl::Buffer::unbind(ogl::Buffer::PIXEL_UNPACK_BUFFER);
             break;
         }
@@ -1037,7 +1035,7 @@ cv::ogl::Texture2D::Texture2D(InputArray arr, bool autoRelease) : rows_(0), cols
                 GpuMat dmat = arr.getGpuMat();
                 ogl::Buffer buf(dmat, ogl::Buffer::PIXEL_UNPACK_BUFFER);
                 buf.bind(ogl::Buffer::PIXEL_UNPACK_BUFFER);
-                impl_ = new Impl(internalFormats[cn], asize.width, asize.height, srcFormats[cn], gl_types[depth], 0, autoRelease);
+                impl_.reset(new Impl(internalFormats[cn], asize.width, asize.height, srcFormats[cn], gl_types[depth], 0, autoRelease));
                 ogl::Buffer::unbind(ogl::Buffer::PIXEL_UNPACK_BUFFER);
             #endif
 
@@ -1049,7 +1047,7 @@ cv::ogl::Texture2D::Texture2D(InputArray arr, bool autoRelease) : rows_(0), cols
             Mat mat = arr.getMat();
             CV_Assert( mat.isContinuous() );
             ogl::Buffer::unbind(ogl::Buffer::PIXEL_UNPACK_BUFFER);
-            impl_ = new Impl(internalFormats[cn], asize.width, asize.height, srcFormats[cn], gl_types[depth], mat.data, autoRelease);
+            impl_.reset(new Impl(internalFormats[cn], asize.width, asize.height, srcFormats[cn], gl_types[depth], mat.data, autoRelease));
             break;
         }
     }
@@ -1072,7 +1070,7 @@ void cv::ogl::Texture2D::create(int arows, int acols, Format aformat, bool autoR
     if (rows_ != arows || cols_ != acols || format_ != aformat)
     {
         ogl::Buffer::unbind(ogl::Buffer::PIXEL_UNPACK_BUFFER);
-        impl_ = new Impl(aformat, acols, arows, aformat, gl::FLOAT, 0, autoRelease);
+        impl_.reset(new Impl(aformat, acols, arows, aformat, gl::FLOAT, 0, autoRelease));
         rows_ = arows;
         cols_ = acols;
         format_ = aformat;
@@ -1083,8 +1081,6 @@ void cv::ogl::Texture2D::create(int arows, int acols, Format aformat, bool autoR
 void cv::ogl::Texture2D::release()
 {
 #ifdef HAVE_OPENGL
-    if (*impl_.refcount == 1)
-        impl_->setAutoRelease(true);
     impl_ = Impl::empty();
     rows_ = 0;
     cols_ = 0;
index 67e9cd1..abb0da3 100644 (file)
@@ -99,9 +99,9 @@ namespace
         cuSafeCall( cuCtxGetCurrent(&ctx) );
         cuSafeCall( cuvidCtxLockCreate(&lock_, ctx) );
 
-        frameQueue_ = new detail::FrameQueue;
-        videoDecoder_ = new detail::VideoDecoder(videoSource_->format(), lock_);
-        videoParser_ = new detail::VideoParser(videoDecoder_, frameQueue_);
+        frameQueue_.reset(new FrameQueue);
+        videoDecoder_.reset(new VideoDecoder(videoSource_->format(), lock_));
+        videoParser_.reset(new VideoParser(videoDecoder_, frameQueue_));
 
         videoSource_->setVideoParser(videoParser_);
         videoSource_->start();
@@ -216,21 +216,21 @@ Ptr<VideoReader> cv::gpucodec::createVideoReader(const String& filename)
 
     try
     {
-        videoSource = new detail::CuvidVideoSource(filename);
+        videoSource.reset(new CuvidVideoSource(filename));
     }
     catch (...)
     {
         Ptr<RawVideoSource> source(new detail::FFmpegVideoSource(filename));
-        videoSource = new detail::RawVideoSourceWrapper(source);
+        videoSource.reset(new RawVideoSourceWrapper(source));
     }
 
-    return new VideoReaderImpl(videoSource);
+    return makePtr<VideoReaderImpl>(videoSource);
 }
 
 Ptr<VideoReader> cv::gpucodec::createVideoReader(const Ptr<RawVideoSource>& source)
 {
     Ptr<detail::VideoSource> videoSource(new detail::RawVideoSourceWrapper(source));
-    return new VideoReaderImpl(videoSource);
+    return makePtr<VideoReaderImpl>(videoSource);
 }
 
 #endif // HAVE_NVCUVID
index ce6a1bd..e4241cf 100644 (file)
@@ -69,7 +69,7 @@ void cv::gpucodec::detail::RawVideoSourceWrapper::start()
 {
     stop_ = false;
     hasError_ = false;
-    thread_ = new Thread(readLoop, this);
+    thread_.reset(new Thread(readLoop, this));
 }
 
 void cv::gpucodec::detail::RawVideoSourceWrapper::stop()
index 6ffb7c1..a1484c2 100644 (file)
@@ -908,12 +908,12 @@ Ptr<VideoWriter> cv::gpucodec::createVideoWriter(const String& fileName, Size fr
 
 Ptr<VideoWriter> cv::gpucodec::createVideoWriter(const Ptr<EncoderCallBack>& encoderCallback, Size frameSize, double fps, SurfaceFormat format)
 {
-    return new VideoWriterImpl(encoderCallback, frameSize, fps, format);
+    return makePtr<VideoWriterImpl>(encoderCallback, frameSize, fps, format);
 }
 
 Ptr<VideoWriter> cv::gpucodec::createVideoWriter(const Ptr<EncoderCallBack>& encoderCallback, Size frameSize, double fps, const EncoderParams& params, SurfaceFormat format)
 {
-    return new VideoWriterImpl(encoderCallback, frameSize, fps, params, format);
+    return makePtr<VideoWriterImpl>(encoderCallback, frameSize, fps, params, format);
 }
 
 #endif // !defined HAVE_CUDA || !defined WIN32