Browse Source

Use unique_ptr for VideoSource::_videoPlayer

master
Krisjanis Rijnieks 8 years ago
parent
commit
1676f9ae69
  1. 32
      src/Sources/VideoSource.cpp
  2. 4
      src/Sources/VideoSource.h

32
src/Sources/VideoSource.cpp

@ -13,7 +13,7 @@ VideoSource::VideoSource(){
#ifdef TARGET_RASPBERRY_PI #ifdef TARGET_RASPBERRY_PI
omxPlayer = 0; omxPlayer = 0;
#else #else
videoPlayer = 0; _videoPlayer = 0;
_initialVolumeSet = false; _initialVolumeSet = false;
#endif #endif
} }
@ -25,12 +25,12 @@ void VideoSource::loadVideo(string & filePath){
omxPlayer = OMXPlayerCache::instance()->load(filePath); omxPlayer = OMXPlayerCache::instance()->load(filePath);
texture = &(omxPlayer->getTextureReference()); texture = &(omxPlayer->getTextureReference());
#else #else
videoPlayer = new ofVideoPlayer(); _videoPlayer = make_unique<ofVideoPlayer>();
videoPlayer->load(filePath); _videoPlayer->load(filePath);
videoPlayer->setLoopState(OF_LOOP_NORMAL); _videoPlayer->setLoopState(OF_LOOP_NORMAL);
videoPlayer->play(); _videoPlayer->play();
videoPlayer->setVolume(VideoSource::enableAudio ? 1.0f : 0.0f); _videoPlayer->setVolume(VideoSource::enableAudio ? 1.0f : 0.0f);
texture = &(videoPlayer->getTexture()); texture = &(_videoPlayer->getTexture());
ofAddListener(ofEvents().update, this, &VideoSource::update); ofAddListener(ofEvents().update, this, &VideoSource::update);
#endif #endif
loaded = true; loaded = true;
@ -42,10 +42,10 @@ void VideoSource::clear(){
OMXPlayerCache::instance()->unload(path); OMXPlayerCache::instance()->unload(path);
#else #else
ofRemoveListener(ofEvents().update, this, &VideoSource::update); ofRemoveListener(ofEvents().update, this, &VideoSource::update);
videoPlayer->stop(); _videoPlayer->stop();
videoPlayer->close(); _videoPlayer->close();
delete videoPlayer; _videoPlayer.reset();
videoPlayer = 0; _videoPlayer = 0;
#endif #endif
loaded = false; loaded = false;
} }
@ -54,20 +54,20 @@ void VideoSource::togglePause(){
#ifdef TARGET_RASPBERRY_PI #ifdef TARGET_RASPBERRY_PI
omxPlayer->togglePause(); omxPlayer->togglePause();
#else #else
videoPlayer->setPaused(!videoPlayer->isPaused()); _videoPlayer->setPaused(!_videoPlayer->isPaused());
#endif #endif
} }
#ifndef TARGET_RASPBERRY_PI #ifndef TARGET_RASPBERRY_PI
void VideoSource::update(ofEventArgs & args){ void VideoSource::update(ofEventArgs & args){
if(videoPlayer != 0){ if(_videoPlayer != 0){
if(!_initialVolumeSet){ if(!_initialVolumeSet){
if(videoPlayer->isInitialized()){ if(_videoPlayer->isInitialized()){
videoPlayer->setVolume(VideoSource::enableAudio ? 1.0f : 0.0f); _videoPlayer->setVolume(VideoSource::enableAudio ? 1.0f : 0.0f);
_initialVolumeSet = true; _initialVolumeSet = true;
} }
} }
videoPlayer->update(); _videoPlayer->update();
} }
} }
#endif #endif

4
src/Sources/VideoSource.h

@ -36,9 +36,7 @@ class VideoSource : public BaseSource {
#ifdef TARGET_RASPBERRY_PI #ifdef TARGET_RASPBERRY_PI
ofxOMXPlayer * omxPlayer; // Naming different for less confusion ofxOMXPlayer * omxPlayer; // Naming different for less confusion
#else #else
// Go with ofVideoPlayer or unique_ptr<ofVideoPlayer> _videoPlayer;
// TODO: High Performance Video player on newer Macs
ofVideoPlayer * videoPlayer;
bool _initialVolumeSet; bool _initialVolumeSet;
#endif #endif

Loading…
Cancel
Save