Hi David,

What does creation time refer to?

Robert.

On Mon, Jul 26, 2010 at 5:25 PM, David Fries <[email protected]> wrote:
> Add a way to retrieve the creation time for MPEG-4 files.
>
> ---
>  include/osg/ImageStream                     |    2 +-
>  src/osgPlugins/ffmpeg/FFmpegDecoder.hpp     |    8 ++++++++
>  src/osgPlugins/ffmpeg/FFmpegImageStream.cpp |    5 +++++
>  src/osgPlugins/ffmpeg/FFmpegImageStream.hpp |    1 +
>  4 files changed, 15 insertions(+), 1 deletions(-)
>
> diff --git a/include/osg/ImageStream b/include/osg/ImageStream
> index 2749cd2..4b4a6d5 100644
> --- a/include/osg/ImageStream
> +++ b/include/osg/ImageStream
> @@ -76,7 +76,7 @@ class OSG_EXPORT ImageStream : public Image
>
>         LoopingMode getLoopingMode() const { return _loopingMode; }
>
> -
> +        virtual double getCreationTime() const { return HUGE_VAL; }
>         virtual double getLength() const { return 0.0; }
>         virtual double getFrameRate() const { return 0.0; }
>
> diff --git a/src/osgPlugins/ffmpeg/FFmpegDecoder.hpp 
> b/src/osgPlugins/ffmpeg/FFmpegDecoder.hpp
> index 6176dcc..a783f01 100644
> --- a/src/osgPlugins/ffmpeg/FFmpegDecoder.hpp
> +++ b/src/osgPlugins/ffmpeg/FFmpegDecoder.hpp
> @@ -26,6 +26,8 @@ class FormatContextPtr
>
>         T* get() { return _ptr; }
>
> +        operator bool() const { return _ptr != 0; }
> +
>         T * operator-> () const // never throws
>         {
>             return _ptr;
> @@ -74,6 +76,7 @@ public:
>     void loop(bool loop);
>     bool loop() const;
>
> +    double creation_time() const;
>     double duration() const;
>     double reference();
>
> @@ -144,6 +147,11 @@ inline bool FFmpegDecoder::loop() const
>     return m_loop;
>  }
>
> +inline double FFmpegDecoder::creation_time() const
> +{
> +   if(m_format_context) return m_format_context->timestamp;
> +   else return HUGE_VAL;
> +}
>
>  inline double FFmpegDecoder::duration() const
>  {
> diff --git a/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp 
> b/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
> index e14fbd9..bd25ef8 100644
> --- a/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
> +++ b/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
> @@ -162,6 +162,11 @@ float FFmpegImageStream::getVolume() const
>     return m_decoder->audio_decoder().getVolume();
>  }
>
> +double FFmpegImageStream::getCreationTime() const
> +{
> +    return m_decoder->creation_time();
> +}
> +
>  double FFmpegImageStream::getLength() const
>  {
>     return m_decoder->duration();
> diff --git a/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp 
> b/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp
> index 033a892..4395a58 100644
> --- a/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp
> +++ b/src/osgPlugins/ffmpeg/FFmpegImageStream.hpp
> @@ -36,6 +36,7 @@ namespace osgFFmpeg
>         virtual void setVolume(float volume);
>         virtual float getVolume() const;
>
> +        virtual double getCreationTime() const;
>         virtual double getLength() const;
>         virtual double getReferenceTime () const;
>         virtual double getFrameRate() const;
> --
> 1.7.0
>
>
> _______________________________________________
> osg-submissions mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
>
>
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to