summaryrefslogtreecommitdiff
path: root/rotord/gstvideoloader.h
diff options
context:
space:
mode:
authorComment <tim@gray.(none)>2013-04-26 10:20:53 +0100
committerComment <tim@gray.(none)>2013-04-26 10:20:53 +0100
commite9320eb83115f66e99bd98e76c8c9ff78ca043d4 (patch)
tree6ac0d66a1abd4634e3218ec69ae33dd8442fd6f9 /rotord/gstvideoloader.h
parent06ac4feb6f4ce99d3e9fca26fa4045ef01156ff7 (diff)
tweaks
Diffstat (limited to 'rotord/gstvideoloader.h')
-rw-r--r--rotord/gstvideoloader.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/rotord/gstvideoloader.h b/rotord/gstvideoloader.h
index 66b4c9c..867da01 100644
--- a/rotord/gstvideoloader.h
+++ b/rotord/gstvideoloader.h
@@ -151,4 +151,75 @@ public:
virtual void on_stream_prepared(){};
};
+class ofGstVideoPlayer: public ofGstAppSink{
+public:
+
+ ofGstVideoPlayer();
+ ~ofGstVideoPlayer();
+
+ /// needs to be called before loadMovie
+ //bool setPixelFormat(ofPixelFormat pixelFormat);
+ //ofPixelFormat getPixelFormat();
+
+ bool loadMovie(string uri);
+
+ void update();
+
+ int getCurrentFrame();
+ int getTotalNumFrames();
+
+ void firstFrame();
+ void nextFrame();
+ void previousFrame();
+ void setFrame(int frame); // frame 0 = first frame...
+
+ bool isStream();
+
+ void play();
+ void stop();
+ void setPaused(bool bPause);
+ bool isPaused();
+ bool isLoaded();
+ bool isPlaying();
+
+ float getPosition();
+ float getSpeed();
+ float getDuration();
+ bool getIsMovieDone();
+ void setPosition(float pct);
+ void setVolume(float volume);
+ void setLoopState(ofLoopType state);
+ ofLoopType getLoopState();
+ void setSpeed(float speed);
+ void close();
+
+ bool isFrameNew();
+
+ unsigned char * getPixels();
+ //ofPixelsRef getPixelsRef();
+
+ float getHeight();
+ float getWidth();
+
+ void setFrameByFrame(bool frameByFrame);
+ void setThreadAppSink(bool threaded);
+
+ ofGstVideoUtils * getGstVideoUtils();
+
+protected:
+ bool allocate(int bpp);
+ void on_stream_prepared();
+
+ // return true to set the message as attended so upstream doesn't try to process it
+ virtual bool on_message(GstMessage* msg){return false;};
+
+private:
+ //ofPixelFormat internalPixelFormat;
+ guint64 nFrames;
+ int fps_n, fps_d;
+ bool bIsStream;
+ bool bIsAllocated;
+ bool threadAppSink;
+ ofGstVideoUtils videoUtils;
+};