bugGnash - The GNU Flash player - Bugs: bug #23139, Video not played on Spiegel.de and...

 
 

bug #23139: Video not played on Spiegel.de and Sueddeutsche.de

Submitter:  Adolf Winterer <awinterer>
Submitted:  Fri 02 May 2008 01:35:00 PM UTC
   
 
Category:  core Severity:  5 - Blocker
Release:  None Status:  Fixed
Privacy:  Public Assigned to:  bwy
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Wed 02 Mar 2011 10:13:20 AM UTC, comment #14: 

I moved checking of the read-only flag from PropertyList (caller) to Property so that Property can allow transparent replacement of destructive properties. Test also added in actionscript.all.

Benjamin Wolsey <bwy>
Group Member
Tue 01 Mar 2011 05:13:22 PM UTC, comment #13: 

Replacing placeholders requires a faked function call, which isn't possible within Property::setFlags(), so replacing all placeholders in PropertyList::setFlagsAll() is not a good idea.

It leaves us with a) simply not aborting and failing to replace a placeholder, which will produce incompatible behaviour, or b) changing PropertyList and Property to handle placeholders differently.

Benjamin Wolsey <bwy>
Group Member
Tue 01 Mar 2011 04:45:09 PM UTC, comment #12: 

The problem is that PropertyList::setFlagsAll is called on _global, changing all properties, including placeholder functions, to read-only.

When the Boolean class (and various others) are used, they attempt to replace the placeholder functions, but this aborts because they are read-only.

Having special behaviour for placeholders (i.e. replacing a property, regardless of flags, and retaining those flags), may require changes to the way PropertyList::setValue() is used or even more extensive changes to the API.

Alternatively it may be possible to ensure that all placeholders are replaced when setFlagsAll is called. This is a more expensive operation, but may be less intrusive in the code.

The following code reproduces the crash:

ASSetPropFlags(_global, null, 4);
var b = new Boolean();

Benjamin Wolsey <bwy>
Group Member
Mon 28 Feb 2011 05:48:30 PM UTC, comment #11: 

Somehow a _global.Boolean property is being initialized twice.

This could be one of the problems with only loading classes on request: AS can change the environment so that the class initialization doesn't do what you expect, or as in this case causes an assertion failure. I'm not sure exactly how it's happening yet.

Benjamin Wolsey <bwy>
Group Member
Mon 28 Feb 2011 04:03:22 PM UTC, comment #10: 

The abort from comment #5 and comment #1 has returned.

Bastiaan Jacques <bjacques>
Group Member
Wed 03 Dec 2008 01:47:53 PM UTC, comment #9: 

Your invocation works fine here.
Funny movie, btw :)

Sandro Santilli <strk>
Group Member
Wed 03 Dec 2008 12:42:47 PM UTC, comment #8: 

I don't think it was ever a black screen for me. This is my invocation script:

/usr/local/bin/gtk-gnash -j 456 -k 361 -U 'http://www.sueddeutsche.de/kultur/516/396303/text/' -P 'align=middle' -P 'allowscriptaccess=sameDomain' -P 'bgcolor=#ffffff' -P 'flashvars=xl=http://pix.sueddeutsche.de/imperia/md/video/redaktion/2008/12/01/456x342-monty_sde.flv&be=www.sueddeutsche.de/kultur/artikel' -P 'height=361' -P 'name=sz-video' -P 'pluginspage=http://www.macromedia.com/go/getflashplayer' -P 'quality=high' -P 'src=/app/video/sz-videoXL_new.swf' -P 'type=application/x-shockwave-flash' -P 'width=456' http://www.sueddeutsche.de/app/video/sz-videoXL_new.swf $@ -vv

Benjamin Wolsey <bwy>
Group Member
Wed 03 Dec 2008 12:32:59 PM UTC, comment #7: 

Still a black screen here, with ffmpeg.

Sandro Santilli <strk>
Group Member
Wed 03 Dec 2008 12:05:16 PM UTC, comment #6: 

The sueddeutsche.de site uses youtube embedded quite a bit now. Their own player, which is: http://www.sueddeutsche.de/kultur/516/396303/text, has also started working (possibly a NetConnection event bug, as I don't think it worked after the XML parsing fix).

spiegel.de uses SWF9 and AVM2, so there's not much point in keeping the bug open for that. I'll add it to the list of video sites not working, and it will have to wait until avm2 is implemented.

So please test the Süddeutsche pages, and I'll close this bug if there are no failing videos.

Benjamin Wolsey <bwy>
Group Member
Wed 07 May 2008 10:00:46 AM UTC, comment #5: 

Abort fixed, downgrading severity (and the video doesn't work).

Benjamin Wolsey <bwy>
Group Member
Wed 07 May 2008 09:04:19 AM UTC, comment #4: 

I committed a fix not considering the flags
for destructive getters set by internal calls
(still considering them for attempt to set from actionscript).
Fixes the abort, didn't really test the video, if you confirm
I'd put this back to normal severity.

Sandro Santilli <strk>
Group Member
Tue 06 May 2008 10:10:18 AM UTC, comment #3: 

Another possible fix would be not considering the flags,
since destructive getters are for INTERNAL USE ONLY.
In that case we'd keep the flags as initialized and change
as they change from user input, finally copying
the flags to the property when initialized by the
trigger.
It's a bit confusing that the current use of those destructive
triggers is to call init_member so we go trought reinitialization
of them... a cleaner design would have the triggers return
an as_value directly, similarly to the ones I used
for the flash package (less overhead too, and less things for
the GC to manage).

Sandro Santilli <strk>
Group Member
Tue 06 May 2008 09:24:28 AM UTC, comment #2: 

Alright, it seems the problem is that
the declarative class (destructive getter)
is set to read-only mode from actionscript code.

Testcase:

 ASSetPropFlags(_global, "System", 4, 0);  // read-only
 trace(System);

I guess the proper fix would be having the ASSetPropFlags
call above trigger the destructive getter....
Most likely there are other cases of "access" to
property that don't trigger actual initialization.


Sandro Santilli <strk>
Group Member
Mon 05 May 2008 09:47:38 PM UTC, comment #1: 

spiegel.de aborts:

http://www.spiegel.de/static/flash/flashvideo/180-all-010.swf

47473808387600] 23:44:43 ERROR: Property ContextMenu is read-only, not setting it to [type Function]
47473808387600] 23:44:43 ERROR: Attempt to initialize read-only property ``ContextMenu'' on object ``0x9b3da0'' twice


#2  0x00002b2d500316b7 in gnash::as_object::init_member (this=0x9b3da0,
    key=132, val=@0x7fff5b1bde80, flags=<value optimized out>, nsname=0,
    order=<value optimized out>) at as_object.cpp:741
#3  0x00002b2d50107530 in gnash::ContextMenu::registerConstructor (
    global=@0x9b3da0) at ContextMenu.cpp:179
#4  0x00002b2d50101803 in operator() (this=0x9c4830) at ClassHierarchy.cpp:163
#5  0x00002b2d5001410a in gnash::GetterSetter::UserDefinedGetterSetter::get (
    this=0x9c4b68, fn=@0x6) at Property.cpp:124
#6  0x00002b2d5001567f in gnash::Property::getDelayedValue (this=0x9c4b50,
    this_ptr=@0x9b3da0) at Property.h:64
#7  0x00002b2d50015bb5 in gnash::Property::getValue (this=0x5bdb,
    this_ptr=@0x6) at Property.cpp:151
#8  0x00002b2d50031371 in gnash::as_object::get_member_default (this=0x9b3da0,
    name=<value optimized out>, val=0x7fff5b1be2b0,
    nsname=<value optimized out>) at as_object.cpp:223
#9  0x00002b2d5002a859 in gnash::as_object::get_member (this=0x5bdb,
    name=23515, val=0x6, nsname=18446744073709551615)
    at ../../server/as_object.h:660
#10 0x00002b2d50025c48 in gnash::as_environment::get_variable_raw (
    this=0x9d4a18, varname=@0x7fff5b1be4a0, scopeStack=@0x7fff5b1be998,
    retTarget=0x0) at as_environment.cpp:206

Benjamin Wolsey <bwy>
Group Member
Fri 02 May 2008 01:35:00 PM UTC, original submission:  

Spiegel and Süddeutsche Zeitung are large and well known german print media which publish their content on their publicly accessible web sites. Both offer video content in flash movie format on their sites, which is not played back by Gnash.

Links:
http://www.spiegel.de/
--> "Video / Nachrichten" on the right hand side of the page.
http://www.sueddeutsche.de/
--> "Videos" halfway down the page.

Tested with Konqueror from KDE 3.5.9 and Firefox (Iceweasel) 2.0.0.14-2 on a Debian / Lenny based system, Kernel 2.6.24-1-amd64. The Gnash package is from the Debian repository, version is reported as 0.8.2-1.

To make sure Gnash is working I checked with YouTube, the videos are played, although it takes a page reload sometimes to get a video played.

Adolf Winterer <awinterer>

 

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

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by bjacques (Posted a comment)
  • -email is unavailable- added by strk (Updated the item)
  • -email is unavailable- added by bwy (Posted a comment)
  • -email is unavailable- added by awinterer (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 21 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2011-03-02 bjacques StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2011-03-02 bwy StatusNone Ready For Test
        Assigned tostrk bwy
    2011-02-28 bwy Severity4 - Important 5 - Blocker
    2011-02-28 bjacques Categoryvideo core
        Severity3 - Normal 4 - Important
        StatusFixed None
        Open/ClosedClosed Open
    2008-12-10 bwy StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2008-12-03 strk StatusConfirmed Ready For Test
    2008-12-03 strk StatusReady For Test Confirmed
    2008-12-03 bwy StatusConfirmed Ready For Test
    2008-05-07 bwy Severity5 - Blocker 3 - Normal
        StatusReady For Test Confirmed
    2008-05-07 strk StatusIn Progress Ready For Test
    2008-05-06 strk StatusConfirmed In Progress
    2008-05-06 strk Assigned toNone strk
    2008-05-06 strk StatusNone Confirmed
    2008-05-05 bwy Severity3 - Normal 5 - Blocker

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code