gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/trunk r9647: Fix for bug #24144. It isn't


From: Benjamin Wolsey
Subject: [Gnash-commit] /srv/bzr/gnash/trunk r9647: Fix for bug #24144. It isn't very elegant, but should work until FLVParser
Date: Thu, 28 Aug 2008 15:57:29 +0200
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9647
committer: Benjamin Wolsey <address@hidden>
branch nick: trunk
timestamp: Thu 2008-08-28 15:57:29 +0200
message:
  Fix for bug #24144. It isn't very elegant, but should work until FLVParser
  gets some much needed attention.
modified:
  libmedia/FLVParser.cpp
    ------------------------------------------------------------
    revno: 9646.1.1
    committer: Benjamin Wolsey <address@hidden>
    branch nick: work
    timestamp: Thu 2008-08-28 15:56:42 +0200
    message:
      Start frame one byte further on for VP6F codec.
      
      I've found no documentation for this, but it is evidently necessary. The
      FLVParser code does a lot of seeking and re-reading. 
      
      VP6A and SCREEN codecs still don't work. SCREEN because of mismatch in
      expected and actual size, which probably comes from the fact that
      FLVParser guesses what the size is and doesn't read it for this format.
    modified:
      libmedia/FLVParser.cpp
=== modified file 'libmedia/FLVParser.cpp'
--- a/libmedia/FLVParser.cpp    2008-08-18 23:53:04 +0000
+++ b/libmedia/FLVParser.cpp    2008-08-28 13:56:42 +0000
@@ -334,6 +334,14 @@
        {
                // 1:keyframe, 2:interlacedFrame, 3:disposableInterlacedFrame
                int frameType = (tag[11] & 0xf0) >> 4;
+
+               boost::uint16_t codec = (tag[11] & 0x0f) >> 0;
+
+        if (codec == VIDEO_CODEC_VP6)
+        {
+            _stream->read_byte();
+            --bodyLength;
+        }
                
                if ( doIndex )
                {
@@ -358,7 +366,6 @@
                // video format has been noted, so we do that now
                if ( ! _videoInfo.get() )
                {
-                       boost::uint16_t codec = (tag[11] & 0x0f) >> 0;
                        // Set standard guessed size...
                        boost::uint16_t width = 320;
                        boost::uint16_t height = 240;


reply via email to

[Prev in Thread] Current Thread [Next in Thread]