Tue 05 Feb 2008 01:59:31 PM UTC, comment #8:
Bounds invalidation is not the problem here.
In the SWF, ActionScript calls NetStream.play(), which starts playback. Then, AS calls NetStream.pause() almost immediately afterwards.
I gather the user is expected to press play so playback would start. But in our case, when you press the play button, NetStream.pause() is not called again (for unpause). When the play button is clicked repeatedly, these messages start to appear:
6828] 05:49:46: DEBUG: ActionCastOp TESTING
Profiling will have to tell where the high CPU usage is coming from, but I suspect it's not from NetStream, since the stream is in PAUSED most of the time.
Reassigning to someone who knows more about the ActionScript side of things than I do.
|
Fri 18 May 2007 05:55:36 PM UTC, original submission:
When trying to play this video:
http://www.break.com/index/crazy-anit-car-protesters.html
Gnash cvs20070518
Copyright (C) 2005-2007 Free Software Foundation, Inc.
Gnash comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of Gnash under the terms of the GNU General
Public License. For more information, see the file named COPYING.
Build options cvs20070518
Target:
Renderer: agg GUI: gtk Media handler: ffmpeg
xEmbed supported in this Mozilla version
Gtk2+ supported in this Mozilla version
NewStream: The full URL is http://www.break.com/breakswf/v7/break_player.swf?cache=6
Forked sucessfully, child process PID is 18566
Closed 52files.
Starting process: /usr/local/bin/gnash -v -x 14783777 -j 440 -k 366 -u http://www.break.com/breakswf/v7/break_player.swf?cache=6 -U http://www.break.com/index/crazy-anit-car-protesters.html -P allowfullscreen=true -P allowscriptaccess=always -P bembedded=0 -P bisreplaystatsactive=1 -P bisstatsactive=1 -P debugflag=1 -P flashvars=POPOVERTIME=0&showpopover=1&showPopupForNSecs=7&POPNTHTIME=5&sFlashRoot=http://media1.break.com/static/v3/global/swf/sponsoredvideo/&sVidLoc=http://media1.break.com/dnet/media/2007/5/crazy-anit-car-protesters.flv&RelatedXML=http://websvc.break.com/cms/CMSWebRelatedContent.asmx/GetRelatedVideos&sStatsUrl=http://stats.break.com/invoke.txt&senderPlayAll=0&iContentID=294919&iSiteID=1&debugFlag=1&volumeControl=20&playAllBumper=true&vid=294919&sid=bigmny&cat=Other&kw=bike,car,crazy,protester,Crazy Anti-Car Protesters&playAllTimeout=10 -P height=366 -P id=break_player -P name=break_player -P quality=high -P src=/breakswf/v7/break_player.swf?cache=6 -P type=application/x-shockwave-flash -P width=440 -
Verbose output turned on
Setting width to 440
Setting height to 366
Setting root URL to http://www.break.com/breakswf/v7/break_player.swf?cache=6
Setting base URL to http://www.break.com/index/crazy-anit-car-protesters.html
No rendering flags specified, using rcfile
virtual bool gnash::GtkGui::init(int, char***) enter
Created XEmbedded window
virtual bool gnash::GtkGui::createMenu() enter
virtual bool gnash::GtkGui::setupEvents() enter
static gboolean gnash::GtkGui::realize_event(GtkWidget, GdkEvent, void*) enter
framebuffer pixel format is RGB24
Base url set to: http://www.break.com/index/crazy-anit-car-protesters.html
ERROR: Unimplemented: SWF8 is not fully supported, trying anyway but don't expect it to work
virtual bool gnash::GtkGui::createWindow(int, int) enter
GTK-AGG: 510000 bytes offscreen buffer allocated
initialized AGG buffer <0x85228000>, 510000 bytes, 440x366, rowsize is 1320 bytes
virtual bool gnash::GtkGui::run() enter
ERROR: Unimplemented: FileAttributes tag in the SWF requests that network access is not granted to this movie (or application?). Anyway Gnash won't care; use white/black listing in your .gnashrc instead
ERROR: FIXME: DefineFontAlignZoneTag unfinished
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: FIXME: DefineFontAlignZoneTag unfinished
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: FIXME: DefineFontAlignZoneTag unfinished
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: button record refer to character with id 264, which is not found in the chars dictionary
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: button record refer to character with id 317, which is not found in the chars dictionary
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 70
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: button record refer to character with id 264, which is not found in the chars dictionary
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 84
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 84
ERROR: Unimplemented: FIXME: tagtype = 83
ERROR: Unimplemented: FIXME: tagtype = 74
ERROR: Unimplemented: FIXME: debugger doesn't deal with anonymous function calls
ERROR: Max stack count reached (255) - should abort execution
ERROR: Max stack count reached (255) - should abort execution
ERROR: Can't set propflags on object property width (either not found or protected)
ERROR: Can't set propflags on object property height (either not found or protected)
ERROR: Unimplemented: Created New TextFormat object at 0x8227b900. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x83326f00. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d080. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d180. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d000. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d100. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d280. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d200. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d380. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d400. Not fully implemented yet
ERROR: Unimplemented: Created New TextFormat object at 0x8b44d300. Not fully implemented yet
Exported interface of function 0x8b44d880 has been overwritten (from 0x89f72e80 to 0x89f72f20)
ERROR: Max stack count reached (255) - should abort execution
ERROR: Max stack count reached (255) - should abort execution
ERROR: Max stack count reached (255) - should abort execution
ERROR: Max stack count reached (255) - should abort execution
ERROR: Unimplemented: object_watch
ERROR: Max stack count reached (255) - should abort execution
ERROR: Max stack count reached (255) - should abort execution
ERROR: Unimplemented: selection_addlistener
ERROR: Max stack count reached (255) - should abort execution
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: selection_addlistener
ERROR: Unimplemented: FIXME: can't set _width on character with null or world bounds
#0 0x060cc5e4 in operator< <gnash::as_object> (a=@0xcf7fe160, b=@0x8a28e2e0) at intrusive_ptr.hpp:210
#1 0x060cc5bd in std::less<boost::intrusive_ptr<gnash::as_object> >::operator()(boost::intrusive_ptr<gnash::as_object> const&, boost::intrusive_ptr<gnash::as_object> const&) const (this=0x8a585454, __x=@0xcf7fe160,
__y=@0x8a28e2e0) at stl_function.h:197
#2 0x060cca09 in std::_Rb_tree<boost::intrusive_ptr<gnash::as_object>, boost::intrusive_ptr<gnash::as_object>, std::_Identity<boost::intrusive_ptr<gnash::as_object> >, std::less<boost::intrusive_ptr<gnash::as_object> >, std::allocator<boost::intrusive_ptr<gnash::as_object> > >::upper_bound(boost::intrusive_ptr<gnash::as_object> const&) (this=0x8a58544c, __k=@0xcf7fe160) at stl_tree.h:1359
#3 0x060cc8d3 in std::_Rb_tree<boost::intrusive_ptr<gnash::as_object>, boost::intrusive_ptr<gnash::as_object>, std::_Identity<boost::intrusive_ptr<gnash::as_object> >, std::less<boost::intrusive_ptr<gnash::as_object> >, std::allocator<boost::intrusive_ptr<gnash::as_object> > >::equal_range(boost::intrusive_ptr<gnash::as_object> const&) (this=0x8a58544c, __k=@0xcf7fe160) at stl_tree.h:1392
#4 0x060cba11 in std::_Rb_tree<boost::intrusive_ptr<gnash::as_object>, boost::intrusive_ptr<gnash::as_object>, std::_Identity<boost::intrusive_ptr<gnash::as_object> >, std::less<boost::intrusive_ptr<gnash::as_object> >, std::allocator<boost::intrusive_ptr<gnash::as_object> > >::erase(boost::intrusive_ptr<gnash::as_object> const&) (this=0x8a58544c, __x=@0xcf7fe160) at stl_tree.h:1183
#5 0x060c9ed1 in std::set<boost::intrusive_ptr<gnash::as_object>, std::less<boost::intrusive_ptr<gnash::as_object> >, std::allocator<boost::intrusive_ptr<gnash::as_object> > >::erase(boost::intrusive_ptr<gnash::as_object> const&) (this=0x8a58544c, __x=@0xcf7fe160) at stl_set.h:171
#6 0x060c8f89 in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#7 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#8 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#9 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#10 0x06090700 in ~intrusive_ptr (this=0xcf7fe230) at intrusive_ptr.hpp:83
#11 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#12 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#13 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#14 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#15 0x06090700 in ~intrusive_ptr (this=0xcf7fe300) at intrusive_ptr.hpp:83
#16 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#17 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#18 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#19 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#20 0x06090700 in ~intrusive_ptr (this=0xcf7fe3d0) at intrusive_ptr.hpp:83
#21 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#22 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#23 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#24 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#25 0x06090700 in ~intrusive_ptr (this=0xcf7fe4a0) at intrusive_ptr.hpp:83
#26 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#27 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#28 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#29 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#30 0x06090700 in ~intrusive_ptr (this=0xcf7fe570) at intrusive_ptr.hpp:83
#31 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#32 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#33 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#34 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#35 0x06090700 in ~intrusive_ptr (this=0xcf7fe640) at intrusive_ptr.hpp:83
#36 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#37 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#38 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#39 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#40 0x06090700 in ~intrusive_ptr (this=0xcf7fe710) at intrusive_ptr.hpp:83
#41 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#42 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#43 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#44 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#45 0x06090700 in ~intrusive_ptr (this=0xcf7fe7e0) at intrusive_ptr.hpp:83
#46 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#47 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#48 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#49 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#50 0x06090700 in ~intrusive_ptr (this=0xcf7fe8b0) at intrusive_ptr.hpp:83
#51 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#52 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#53 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#54 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#55 0x06090700 in ~intrusive_ptr (this=0xcf7fe980) at intrusive_ptr.hpp:83
#56 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#57 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#58 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#59 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#60 0x06090700 in ~intrusive_ptr (this=0xcf7fea50) at intrusive_ptr.hpp:83
#61 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#62 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#63 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#64 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#65 0x06090700 in ~intrusive_ptr (this=0xcf7feb20) at intrusive_ptr.hpp:83
#66 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#67 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
[...]
#4945 0x06090700 in ~intrusive_ptr (this=0xcf830420) at intrusive_ptr.hpp:83
#4946 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
listener=0x85708500) at movie_root.cpp:747
#4947 0x0610fd64 in ~button_character_instance (this=0x85708500) at button_character_instance.cpp:280
#4948 0x0608fa8f in gnash::ref_counted::drop_ref() const (this=0x85708500) at ref_counted.h:65
#4949 0x06090c20 in void gnash::intrusive_ptr_release<gnash::as_object>(gnash::as_object*) (o=0x85708500)
at smart_ptr.h:54
#4950 0x06090700 in ~intrusive_ptr (this=0xcf8304f0) at intrusive_ptr.hpp:83
#4951 0x060c8fbd in gnash::movie_root::remove_key_listener(gnash::as_object*) (this=0x8a585400,
[...]
|