Index: /OpenSceneGraph/trunk/include/osg/AudioStream
===================================================================
--- /OpenSceneGraph/trunk/include/osg/AudioStream (revision 10925)
+++ /OpenSceneGraph/trunk/include/osg/AudioStream (revision 10961)
@@ -39,4 +39,6 @@
     virtual void setDelay(const double delay) { _delay = delay; }
 
+    virtual void setVolume(float) {}
+    virtual float getVolume() const { return 0.0f; }
 
 private:
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp (revision 10925)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp (revision 10961)
@@ -113,4 +113,20 @@
 }
 
+void FFmpegDecoderAudio::setVolume(float volume)
+{
+    if (m_audio_sink.valid())
+    {
+        m_audio_sink->setVolume(volume);
+    }
+}
+
+float FFmpegDecoderAudio::getVolume() const
+{
+    if (m_audio_sink.valid())
+    {
+        return m_audio_sink->getVolume();
+    }
+    return 0.0f;
+}
 
 void FFmpegDecoderAudio::run()
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp (revision 10851)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp (revision 10961)
@@ -35,4 +35,7 @@
     void close(bool waitForThreadToExit);
     
+    void setVolume(float volume);
+    float getVolume() const;
+
     virtual void run();
 
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp (revision 10851)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp (revision 10961)
@@ -153,4 +153,13 @@
 }
 
+void FFmpegImageStream::setVolume(float volume)
+{
+    m_decoder->audio_decoder().setVolume(volume);
+}
+
+float FFmpegImageStream::getVolume() const
+{
+    return m_decoder->audio_decoder().getVolume();
+}
 
 double FFmpegImageStream::getLength() const
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp (revision 10851)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp (revision 10961)
@@ -33,4 +33,7 @@
         virtual void seek(double time);
         virtual void quit(bool waitForThreadToExit = true);
+
+        virtual void setVolume(float volume);
+        virtual float getVolume() const;
 
         virtual double getLength() const;
