From e9320eb83115f66e99bd98e76c8c9ff78ca043d4 Mon Sep 17 00:00:00 2001 From: Comment Date: Fri, 26 Apr 2013 10:20:53 +0100 Subject: tweaks --- rotord/gstvideoloader.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) (limited to 'rotord/gstvideoloader.h') 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; +}; -- cgit v1.2.3