16 #include <vlutil/vlString.h>
17 #include <vlutil/vlTime.h>
19 #include <gst/gstelement.h>
20 #include <gst/app/gstappsrc.h>
35 virtual ~DtLgrGStreamerPipeline();
39 virtual
bool initializePipeline(const
DtString& pipelineConfigurationToUse);
42 virtual
void setPipeline(GstElement* pipeline);
45 virtual
bool startPipeline();
48 virtual const
DtString& pipelineConfiguration() const;
51 void destroyPipeline();
54 virtual
void tick(
double currentTime);
57 virtual
bool isStarted() const;
63 virtual
void unpause();
66 virtual
bool isPaused();
69 virtual
void setSpeed(
double speed);
72 virtual
bool jumpToPosition(
double position);
75 virtual
double position() const;
78 virtual
double duration() const;
81 virtual
void sendEos(
bool waitForSignal) const;
84 virtual
void overlayVideoSink();
87 virtual
void exposeWindow();
90 virtual
void switchToInterVideoSink(const
char* channel=0);
96 static
void setMediaSpeedFactor(
double mediaSpeedFactor);
97 static
double mediaSpeedFactor();
102 static
void setMediaWindowHandle(
void* windowHandle);
103 static
void* mediaWindowHandle();
109 virtual
bool isPipelineReady();
113 virtual
bool sendSpeedEvent(
double speed);
117 virtual
bool sendJumpToPosition(
double position);
120 virtual
void printMessage(const
DtString& label, GstMessage *message) const;
125 static GstBusSyncReply overlayWindowHandle(GstBus *bus, GstMessage *message, gpointer user_data);
132 bool myOkToPushBuffers;
135 GstElement* myPipeline;
138 double myResendSpeedTime;
141 bool myOverlayVideoSink;
148 static
double theMediaSpeedFactor;
149 static
bool theGsInitialized;
150 static
void* theMediaWindowHandle;
154 #endif // GST_ENABLED