From e9320eb83115f66e99bd98e76c8c9ff78ca043d4 Mon Sep 17 00:00:00 2001 From: Comment Date: Fri, 26 Apr 2013 10:20:53 +0100 Subject: tweaks --- rotord/gstvideoloader.cpp | 365 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 364 insertions(+), 1 deletion(-) (limited to 'rotord/gstvideoloader.cpp') diff --git a/rotord/gstvideoloader.cpp b/rotord/gstvideoloader.cpp index 0cdc060..2835b02 100644 --- a/rotord/gstvideoloader.cpp +++ b/rotord/gstvideoloader.cpp @@ -783,4 +783,367 @@ void ofGstVideoUtils::eos_cb(){ ofGstUtils::eos_cb(); //ofEventArgs args; //ofNotifyEvent(eosEvent,args); -} \ No newline at end of file +} + +ofGstVideoPlayer::ofGstVideoPlayer(){ + nFrames = 0; + //internalPixelFormat = OF_PIXELS_RGB; + bIsStream = false; + bIsAllocated = false; + threadAppSink = false; + videoUtils.setSinkListener(this); +} + +ofGstVideoPlayer::~ofGstVideoPlayer(){ + close(); +} + +bool ofGstVideoPlayer::loadMovie(string name){ + close(); + /* + if( name.find( "file://",0 ) != string::npos){ + bIsStream = false; + }else if( name.find( "://",0 ) == string::npos){ + name = "file://"+ofToDataPath(name,true); + bIsStream = false; + }else{ + bIsStream = true; + } + */ + cerr<<"loading "< 0.5f) framePosInInt = framePosInInt + 1; + //frame = (int)ceil((getTotalNumFrames() * getPosition())); + frame = framePosInInt; + + return frame; +} + +int ofGstVideoPlayer::getTotalNumFrames(){ + return nFrames; +} + +void ofGstVideoPlayer::firstFrame(){ + setFrame(0); +} + +void ofGstVideoPlayer::nextFrame(){ + gint64 currentFrame = getCurrentFrame(); + if(currentFrame!=-1) setFrame(currentFrame + 1); +} + +void ofGstVideoPlayer::previousFrame(){ + gint64 currentFrame = getCurrentFrame(); + if(currentFrame!=-1) setFrame(currentFrame - 1); +} + +void ofGstVideoPlayer::setFrame(int frame){ // frame 0 = first frame... + float pct = (float)frame / (float)nFrames; + setPosition(pct); +} + +bool ofGstVideoPlayer::isStream(){ + return bIsStream; +} + +void ofGstVideoPlayer::update(){ + videoUtils.update(); +} + +void ofGstVideoPlayer::play(){ + videoUtils.play(); +} + +void ofGstVideoPlayer::stop(){ + videoUtils.stop(); +} + +void ofGstVideoPlayer::setPaused(bool bPause){ + videoUtils.setPaused(bPause); +} + +bool ofGstVideoPlayer::isPaused(){ + return videoUtils.isPaused(); +} + +bool ofGstVideoPlayer::isLoaded(){ + return videoUtils.isLoaded(); +} + +bool ofGstVideoPlayer::isPlaying(){ + return videoUtils.isPlaying(); +} + +float ofGstVideoPlayer::getPosition(){ + return videoUtils.getPosition(); +} + +float ofGstVideoPlayer::getSpeed(){ + return videoUtils.getSpeed(); +} + +float ofGstVideoPlayer::getDuration(){ + return videoUtils.getDuration(); +} + +bool ofGstVideoPlayer::getIsMovieDone(){ + return videoUtils.getIsMovieDone(); +} + +void ofGstVideoPlayer::setPosition(float pct){ + videoUtils.setPosition(pct); +} + +void ofGstVideoPlayer::setVolume(float volume){ + videoUtils.setVolume(volume); +} + +void ofGstVideoPlayer::setLoopState(ofLoopType state){ + videoUtils.setLoopState(state); +} + +ofLoopType ofGstVideoPlayer::getLoopState(){ + return videoUtils.getLoopState(); +} + +void ofGstVideoPlayer::setSpeed(float speed){ + videoUtils.setSpeed(speed); +} + +void ofGstVideoPlayer::close(){ + bIsAllocated = false; + videoUtils.close(); +} + +bool ofGstVideoPlayer::isFrameNew(){ + return videoUtils.isFrameNew(); +} + +unsigned char * ofGstVideoPlayer::getPixels(){ + return videoUtils.getPixels(); +} +/* +ofPixelsRef ofGstVideoPlayer::getPixelsRef(){ + return videoUtils.getPixelsRef(); +} +*/ +float ofGstVideoPlayer::getHeight(){ + return videoUtils.getHeight(); +} + +float ofGstVideoPlayer::getWidth(){ + return videoUtils.getWidth(); +} + +ofGstVideoUtils * ofGstVideoPlayer::getGstVideoUtils(){ + return &videoUtils; +} + +void ofGstVideoPlayer::setFrameByFrame(bool frameByFrame){ + videoUtils.setFrameByFrame(frameByFrame); +} + -- cgit v1.2.3