Index: /OpenSceneGraph/trunk/include/osg/ImageStream
===================================================================
--- /OpenSceneGraph/trunk/include/osg/ImageStream (revision 9827)
+++ /OpenSceneGraph/trunk/include/osg/ImageStream (revision 9910)
@@ -79,5 +79,6 @@
 
         virtual double getLength() const { return 0.0; }
-        
+        virtual double getFrameRate() const { return 0.0; } 
+
         virtual void setReferenceTime(double) {}
         virtual double getReferenceTime() const { return 0.0; }
@@ -88,5 +89,4 @@
         virtual void setVolume(float) {}
         virtual float getVolume() const { return 0.0f; }
-
 
         typedef std::vector< osg::ref_ptr<osg::AudioStream> > AudioStreams;
Index: /OpenSceneGraph/trunk/include/osg/AudioStream
===================================================================
--- /OpenSceneGraph/trunk/include/osg/AudioStream (revision 9847)
+++ /OpenSceneGraph/trunk/include/osg/AudioStream (revision 9910)
@@ -60,5 +60,4 @@
         virtual void consumeAudioBuffer(void * const buffer, const size_t size) = 0;
         
-        virtual bool audioStream() const = 0;
         virtual int audioFrequency() const = 0;
         virtual int audioNbChannels() const = 0;
Index: /OpenSceneGraph/trunk/include/osg/Image
===================================================================
--- /OpenSceneGraph/trunk/include/osg/Image (revision 9888)
+++ /OpenSceneGraph/trunk/include/osg/Image (revision 9910)
@@ -186,4 +186,7 @@
         void setPacking(unsigned int packing) { _packing = packing; }
         inline unsigned int getPacking() const { return _packing; }
+
+        inline void setPixelAspectRatio(float pixelAspectRatio) { _pixelAspectRatio = pixelAspectRatio; }
+        inline float getPixelAspectRatio() const { return _pixelAspectRatio; }
         
         /** Return the number of bits required for each pixel. */
@@ -347,4 +350,5 @@
         GLenum _dataType;
         unsigned int _packing;
+        float _pixelAspectRatio;
 
         AllocationMode _allocationMode;
Index: /OpenSceneGraph/trunk/src/osg/Image.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osg/Image.cpp (revision 9682)
+++ /OpenSceneGraph/trunk/src/osg/Image.cpp (revision 9910)
@@ -34,21 +34,19 @@
 
 Image::Image()
-    :Object(true)
+    :Object(true),
+    _fileName(""),
+    _writeHint(NO_PREFERENCE),
+    _origin(BOTTOM_LEFT),
+    _s(0), _t(0), _r(0),
+    _internalTextureFormat(0),
+    _pixelFormat(0),
+    _dataType(0),
+    _packing(4),
+    _pixelAspectRatio(1.0),
+    _allocationMode(USE_NEW_DELETE),
+    _data(0L),
+    _modifiedCount(0)
 {
     setDataVariance(STATIC); 
-
-    _fileName               = "";
-    _writeHint              = NO_PREFERENCE;
-    _origin                 = BOTTOM_LEFT;
-    _s = _t = _r            = 0;
-    _internalTextureFormat  = 0;
-    _pixelFormat            = (unsigned int)0;
-    _dataType               = (unsigned int)0;
-    _packing                = 4;
-
-    _allocationMode         = USE_NEW_DELETE;
-    _data                   = (unsigned char *)0L;
-
-    _modifiedCount = 0;
 }
 
@@ -63,4 +61,5 @@
     _dataType(image._dataType),
     _packing(image._packing),
+    _pixelAspectRatio(image._pixelAspectRatio),
     _data(0L),
     _modifiedCount(image._modifiedCount),
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegAudioStream.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegAudioStream.cpp (revision 9850)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegAudioStream.cpp (revision 9910)
@@ -52,10 +52,4 @@
 
 
-bool FFmpegAudioStream::audioStream() const 
-{ 
-    return m_decoder->audio_decoder().validContext(); 
-}
-
-
 
 int FFmpegAudioStream::audioFrequency() const 
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegAudioStream.hpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegAudioStream.hpp (revision 9847)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegAudioStream.hpp (revision 9910)
@@ -22,5 +22,4 @@
         void consumeAudioBuffer(void * const buffer, const size_t size);
         
-        bool audioStream() const;
         int audioFrequency() const;
         int audioNbChannels() const;
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp (revision 9869)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp (revision 9910)
@@ -131,5 +131,4 @@
 void FFmpegDecoderAudio::fillBuffer(void * const buffer, size_t size)
 {
-    size_t filled = 0;
     uint8_t * dst_buffer = reinterpret_cast<uint8_t*>(buffer);
 
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp (revision 9869)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp (revision 9910)
@@ -223,13 +223,13 @@
 void FFmpegDecoderVideo::findAspectRatio()
 {
-    double ratio = 0.0;
+    float ratio = 0.0f;
 
     if (m_context->sample_aspect_ratio.num != 0)
-        ratio = (av_q2d(m_context->sample_aspect_ratio) * m_width) / m_height;
-
-    if (ratio <= 0.0)
-        ratio = double(m_width) / double(m_height);
-
-    m_aspect_ratio = ratio;
+        ratio = float(av_q2d(m_context->sample_aspect_ratio));
+
+    if (ratio <= 0.0f)
+        ratio = 1.0f;
+
+    m_pixel_aspect_ratio = ratio;
 }
 
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp (revision 9869)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp (revision 9910)
@@ -19,5 +19,5 @@
     m_frame_published_flag(false)
 {
-    setOrigin(osg::Image::BOTTOM_LEFT);
+    setOrigin(osg::Image::TOP_LEFT);
 
     std::auto_ptr<FFmpegDecoder> decoder(new FFmpegDecoder);
@@ -72,7 +72,7 @@
         const_cast<unsigned char *>(m_decoder->video_decoder().image()), NO_DELETE
     );
-    
-    setOrigin(osg::Image::TOP_LEFT);
-
+
+    setPixelAspectRatio(m_decoder->video_decoder().pixelAspectRatio());
+    
     m_decoder->video_decoder().setUserData(this);
     m_decoder->video_decoder().setPublishCallback(publishNewFrame);
@@ -141,5 +141,5 @@
 
 
-double FFmpegImageStream::duration() const
+double FFmpegImageStream::getLength() const
 { 
     return m_decoder->duration(); 
@@ -148,22 +148,16 @@
 
 
-bool FFmpegImageStream::videoAlphaChannel() const 
+double FFmpegImageStream::getFrameRate() const
+{ 
+    return m_decoder->video_decoder().frameRate(); 
+}
+
+
+
+bool FFmpegImageStream::isImageTranslucent() const 
 { 
     return m_decoder->video_decoder().alphaChannel(); 
 }
 
-
-
-double FFmpegImageStream::videoAspectRatio() const
-{ 
-    return m_decoder->video_decoder().aspectRatio();
-}
-
-
-
-double FFmpegImageStream::videoFrameRate() const
-{ 
-    return m_decoder->video_decoder().frameRate(); 
-}
 
 
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp (revision 9869)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp (revision 9910)
@@ -75,5 +75,5 @@
     int width() const;
     int height() const;
-    double aspectRatio() const;
+    float pixelAspectRatio() const;
     bool alphaChannel() const;
     double frameRate() const;
@@ -115,5 +115,5 @@
 
     double                  m_frame_rate;
-    double                  m_aspect_ratio;
+    float                   m_pixel_aspect_ratio;
     int                     m_width;
     int                     m_height;
@@ -156,7 +156,7 @@
 
 
-inline double FFmpegDecoderVideo::aspectRatio() const
+inline float FFmpegDecoderVideo::pixelAspectRatio() const
 {
-    return m_aspect_ratio;
+    return m_pixel_aspect_ratio;
 }
 
Index: /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp
===================================================================
--- /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp (revision 9847)
+++ /OpenSceneGraph/trunk/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp (revision 9910)
@@ -33,10 +33,8 @@
         virtual void quit(bool waitForThreadToExit = true);
 
-        double duration() const;
+        virtual double getLength() const;
+        virtual double getFrameRate() const;
 
-        bool videoAlphaChannel() const;
-        double videoAspectRatio() const;
-        double videoFrameRate() const;
-
+        virtual bool isImageTranslucent() const;
 
     private:
