Paste Code
Paste Blends
Paste Images
Index: MovieTexture_FFMpeg.cpp
===================================================================
--- MovieTexture_FFMpeg.cpp (revision 28313)
+++ MovieTexture_FFMpeg.cpp (working copy)
@@ -284,6 +284,8 @@
avcodec::AVPacket m_Packet;
int m_iCurrentPacketOffset;

+ float m_fLastFrame;
+
/* 0 = no EOF
* 1 = EOF from ReadPacket
* 2 = EOF from ReadPacket and DecodePacket */
@@ -302,6 +304,8 @@
* they exist. */
m_bHadBframes = true;

+ m_fLastFrame = 0;
+
Init();
}

@@ -334,6 +338,13 @@
/* Read until we get a frame, EOF or error. Return -1 on error, 0 on EOF, 1 if we have a frame. */
int MovieDecoder_FFMpeg::DecodeFrame( float fTargetTime )
{
+ //hack to filter out stuttering
+ if(fTargetTime<m_fLastFrame) {
+ fTargetTime=m_fLastFrame;
+ } else {
+ m_fLastFrame=fTargetTime;
+ }
+
while( 1 )
{
int ret = DecodePacket( fTargetTime );
  1. Index: MovieTexture_FFMpeg.cpp
  2. ===================================================================
  3. --- MovieTexture_FFMpeg.cpp     (revision 28313)
  4. +++ MovieTexture_FFMpeg.cpp     (working copy)
  5. @@ -284,6 +284,8 @@
  6.         avcodec::AVPacket m_Packet;
  7.         int m_iCurrentPacketOffset;
  8.  
  9. +       float m_fLastFrame;
  10. +
  11.         /* 0 = no EOF
  12.          * 1 = EOF from ReadPacket
  13.          * 2 = EOF from ReadPacket and DecodePacket */
  14. @@ -302,6 +304,8 @@
  15.          * they exist. */
  16.         m_bHadBframes = true;
  17.  
  18. +       m_fLastFrame = 0;
  19. +
  20.         Init();
  21.  }
  22.  
  23. @@ -334,6 +338,13 @@
  24.  /* Read until we get a frame, EOF or error.  Return -1 on error, 0 on EOF, 1 if we have a frame. */
  25.  int MovieDecoder_FFMpeg::DecodeFrame( float fTargetTime )
  26.  {
  27. +       //hack to filter out stuttering
  28. +       if(fTargetTime<m_fLastFrame) {
  29. +               fTargetTime=m_fLastFrame;
  30. +       } else {
  31. +               m_fLastFrame=fTargetTime;
  32. +       }
  33. +
  34.         while( 1 )
  35.         {
  36.                 int ret = DecodePacket( fTargetTime );
  37.  
go to heaven