bugGnash - The GNU Flash player - Bugs: bug #26670, The problem of the order of...

 
 

bug #26670: The problem of the order of definition tags.

Submitted by:  Mao-Yeh Huang <cidhuang>
Submitted on:  Mon 25 May 2009 08:45:17 AM UTC  
 
Category: parserSeverity: 3 - Normal
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: None
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Mon 02 Aug 2010 07:59:05 AM UTC, comment #4:

Finally fixed with revision 12346

Benjamin Wolsey <bwy>
Project Member
Thu 09 Jul 2009 12:39:49 PM UTC, comment #3:

Attached a cut version of the file. The patch attached shows that it can be fixed by looking up the bitmap later, but also shows how much fill_style needs cleaning up.

(The patch should make _bitmapInfo mutable rather than the awful const_cast, but I was saving rebuilding time).

(file #18390)

Benjamin Wolsey <bwy>
Project Member
Mon 25 May 2009 10:03:42 AM UTC, comment #2:

I can confirm this. The SWF is too large to attach.

What is the best way to fix it? fill_style currently stores a pointer to a BitmapInfo. This can either be in the character dictionary (define bits tag) or created on demand (for a gradient fill).

Storing a character ID is no use for a gradient fill, but a pointer set at parsing time is no use for the bitmap fill.

We need either to store both and look the id up again in the character dictionary if it's a bitmap and not yet found), or make different fillstyles into subclasses.

Or are there other ideas?

Benjamin Wolsey <bwy>
Project Member
Mon 25 May 2009 08:56:32 AM UTC, comment #1:

Can you attach the SWF or give a URL to it?

Benjamin Wolsey <bwy>
Project Member
Mon 25 May 2009 08:45:17 AM UTC, original submission:

Hi,

I got a .swf file. It can be played by IE and Firefox, but it can not be played by Gnash. I verified the content with swfdump(please see below), and it seems the problem of the mistake of flash spec.

According to the spec, if tag1 is referenced by tag2, tag2 must be placed before tag1. In this sample, id 0001 reference id 0002, but id 0001 is placed before id 0002.

Just let you know the situation. Maybe you'd like to support it and regard this as new fuction which is supported by Adobe official player.

Part of the result of using swfdump to parse this sample is shown below.

[HEADER] File version: 3
[HEADER] File size: 3807640
[HEADER] Frame rate: 30.000000
[HEADER] Frame count: 60
[HEADER] Movie width: 408.00
[HEADER] Movie height: 179.00
[009] 3 SETBACKGROUNDCOLOR (94/94/94)
-=> 94 94 94 ??

Error: Unknown tag:0x019

[019] 0 (null)
[020] 39 DEFINESHAPE3 defines id 0001
bbox [0.00, 0.00, 408.00, 179.00]
| fillstyles(01) linestyles(00)
| 1 ) BITMAPc 2
|
| fill: 00/01 line:00 - moveTo 0.00 0.00
| fill: 00/01 line:00 - lineTo 408.00 0.00
| fill: 00/01 line:00 - lineTo 408.00 179.00
| fill: 00/01 line:00 - lineTo 0.00 179.00
| fill: 00/01 line:00 - lineTo 0.00 0.00
|
uses IDs: 2==== Error: Id 0002 is not yet defined.
====

-=> 01 00 70 00 0f f0 00 00 6f e0 01 41 02 00 d9 40 ..p..?.o?A..惲
-=> 00 05 00 00 02 00 00 10 12 08 83 c1 fe 0e d6 fe ..........?耟
-=> 78 40 41 db 20 40 00 x@A?@.
[023] 62748 DEFINEBITSJPEG3 defines id 0002
bbox [0.00, 0.00, 0.00, 0.00]
-=> 02 00 d8 dc 00 00 ff d8 ff db 00 84 00 01 01 01 ..嵁..???...
-=> 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 ................
-=> 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 ................
-=> 01 01 01 01 01 01 01 01 02 02 02 02 02 02 02 02 ................
-=> 02 02 02 03 03 03 03 03 03 03 03 03 03 01 01 01 ................
-=> 01 01 01 01 02 01 01 02 02 02 01 02 02 03 03 03 ................
-=> 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 ................
-=> 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 ................

Mao-Yeh Huang <cidhuang>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #18390:  fixbmp.diff added by bwy (2KiB - text/x-patch)
file #18388:  02cut.swf added by bwy (500KiB - application/x-shockwave-flash)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by bwy (Posted a comment)
  • -unavailable- added by cidhuang (Submitted the item)
  • -unavailable- added by cidhuang
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 7 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Wed 25 Aug 2010 11:43:06 AM UTCbwyStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Mon 02 Aug 2010 08:10:25 AM UTCbwyStatusConfirmed=>Ready For Test
    Thu 09 Jul 2009 12:39:49 PM UTCbwyAttached File-=>Added fixbmp.diff, #18390
    Thu 09 Jul 2009 12:36:47 PM UTCbwyAttached File-=>Added 02cut.swf, #18388
    Mon 25 May 2009 10:03:42 AM UTCbwyStatusNone=>Confirmed
    Mon 25 May 2009 08:45:17 AM UTCcidhuangCarbon-Copy-=>Added -unavailable-

    Back to the top


    Powered by Savane 3.1-cleanup1