[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gnash-commit
Subject:    [Gnash-commit] /srv/bzr/gnash/trunk r9647: Fix for bug #24144. It
From:       Benjamin Wolsey <bwy () benjaminwolsey ! de>
Date:       2008-08-28 13:57:29
Message-ID: E1KYi3W-0006vX-3N () sv ! gnu ! org
[Download RAW message or body]

------------------------------------------------------------
revno: 9647
committer: Benjamin Wolsey <bwy@benjaminwolsey.de>
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 <bwy@benjaminwolsey.de>
    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

["r9647.diff" (r9647.diff)]

=== 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;



_______________________________________________
Gnash-commit mailing list
Gnash-commit@gnu.org
http://lists.gnu.org/mailman/listinfo/gnash-commit


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic