aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llmedia/llmediaimplgstreamer.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/llmedia/llmediaimplgstreamer.h32
1 files changed, 19 insertions, 13 deletions
diff --git a/linden/indra/llmedia/llmediaimplgstreamer.h b/linden/indra/llmedia/llmediaimplgstreamer.h
index f1ffd3a..07b698d 100644
--- a/linden/indra/llmedia/llmediaimplgstreamer.h
+++ b/linden/indra/llmedia/llmediaimplgstreamer.h
@@ -18,7 +18,8 @@
18 * There are special exceptions to the terms and conditions of the GPL as 18 * There are special exceptions to the terms and conditions of the GPL as
19 * it is applied to this Source Code. View the full text of the exception 19 * it is applied to this Source Code. View the full text of the exception
20 * in the file doc/FLOSS-exception.txt in this software distribution, or 20 * in the file doc/FLOSS-exception.txt in this software distribution, or
21 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception 21 * online at
22 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 * 23 *
23 * By copying, modifying or distributing this software, you acknowledge 24 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above, 25 * that you have read and understood your obligations described above,
@@ -48,9 +49,6 @@ extern "C" {
48} 49}
49 50
50#include "llmediaimplgstreamervidplug.h" 51#include "llmediaimplgstreamervidplug.h"
51#ifdef LL_GST_SOUNDSINK
52#include "llmediaimplgstreamersndplug.h"
53#endif // LL_GST_SOUNDSINK
54 52
55class LLMediaManagerData; 53class LLMediaManagerData;
56class LLMediaImplMaker; 54class LLMediaImplMaker;
@@ -81,30 +79,38 @@ class LLMediaImplGStreamer:
81 79
82 LLMediaEmitter< LLMediaObserver > getEventEmitter() const {return mEventEmitter;}; 80 LLMediaEmitter< LLMediaObserver > getEventEmitter() const {return mEventEmitter;};
83 81
84 private:
85 // misc 82 // misc
86 bool unload();
87 bool pause(); 83 bool pause();
88 bool stop(); 84 bool stop();
89 bool play(); 85 bool play();
90 static gboolean bus_callback (GstBus *bus, 86 bool getTimePos(double &sec_out);
91 GstMessage *message, 87 static const double MIN_LOOP_SEC = 1.0F;
92 gpointer data); 88
89 private:
90 bool unload();
91
92 static bool mDoneInit;
93
94 guint mBusWatchID;
95
93 unsigned char* mediaData; 96 unsigned char* mediaData;
94 int mMediaRowbytes; 97 int mMediaRowbytes;
95 98
96 int mTextureFormatPrimary; 99 int mTextureFormatPrimary;
97 int mTextureFormatType; 100 int mTextureFormatType;
98 101
99 // GStreamer-specific 102 // Very GStreamer-specific
100 GMainLoop *mPump; // event pump for this media 103 GMainLoop *mPump; // event pump for this media
101 GstElement *mPlaybin; 104 GstElement *mPlaybin;
102 GstSLVideo *mVideoSink; 105 GstSLVideo *mVideoSink;
103#ifdef LL_GST_SOUNDSINK
104 GstSLSound *mAudioSink;
105#endif // LL_GST_SOUNDSINK
106}; 106};
107 107
108extern "C" {
109gboolean llmediaimplgstreamer_bus_callback (GstBus *bus,
110 GstMessage *message,
111 gpointer data);
112}
113
108class LLMediaImplGStreamerMaker : public LLMediaImplMaker 114class LLMediaImplGStreamerMaker : public LLMediaImplMaker
109{ 115{
110public: 116public: