Sat 26 May 2007 12:47:26 AM UTC, comment #6:
I can still reproduce the bug with current CVS.
With tgc's patch applied, I get a black screen (no video) after pressing the play button, instead of a crash. If I press the start/stop buttons again, I get a black screen with the 'buffering' message, but no video is played and no more debug output is printed.
Also with tgc's patch, I tried another movie on the main page, and it played for a bit then crashed here:
#0 0x00000000 in ?? ()
#1 0x09da387e in gnash::NetStreamFfmpeg::close() (this=0x87d3e200) at NetStreamFfmpeg.cpp:144
#2 0x09d79801 in netstream_close (fn=@0xcfbfa8a0) at NetStream.cpp:121
#3 0x09ca55bd in gnash::builtin_function::operator()(gnash::fn_call const&) (this=0x864facc0,
fn=@0xcfbfa8a0) at builtin_function.h:64
#4 0x09df4250 in gnash::call_method(gnash::as_value const&, gnash::as_environment, gnash::as_object, int, int) (method=@0xcfbfa950, env=0x7ef692e4, this_ptr=0x87d3e200, nargs=0, first_arg_bottom_index=21)
at action.cpp:228
#5 0x09deb1d6 in gnash::SWF::SWFHandlers::ActionCallMethod(gnash::ActionExec&) (thread=@0xcfbfabf0)
at ASHandlers.cpp:2900
#6 0x09dd56f6 in gnash::SWF::ActionHandler::execute(gnash::ActionExec&) const (this=0x7e5fd7b0,
thread=@0xcfbfabf0) at ASHandlers.cpp:171
#7 0x09de2d3f in gnash::SWF::SWFHandlers::execute(gnash::SWF::action_type, gnash::ActionExec&) const (
this=0x29bf9c90, type=ACTION_CALLMETHOD, thread=@0xcfbfabf0) at ASHandlers.cpp:452
#8 0x09df0c6d in gnash::ActionExec::operator()() (this=0xcfbfabf0) at ActionExec.cpp:218
#9 0x09cfb159 in gnash::swf_function::operator()(gnash::fn_call const&) (this=0x833f5580, fn=@0xcfbfad20)
at swf_function.cpp:331
#10 0x09df4250 in gnash::call_method(gnash::as_value const&, gnash::as_environment, gnash::as_object, int, int) (method=@0xcfbfada0, env=0x808cd4e4, this_ptr=0x808cd400, nargs=0, first_arg_bottom_index=0)
at action.cpp:228
#11 0x09df44ce in gnash::call_method0(gnash::as_value const&, gnash::as_environment, gnash::as_object) (
method=@0xcfbfada0, env=0x808cd4e4, this_ptr=0x808cd400) at action.cpp:252
#12 0x09ce23d7 in gnash::sprite_instance::on_event(gnash::event_id const&) (this=0x808cd400, id=@0xcfbfae70)
at sprite_instance.cpp:2194
#13 0x09c926fd in gnash::character::on_button_event(gnash::event_id const&) (this=0x808cd400, id=@0xcfbfae70)
at character.h:803
#14 0x09ccb3cf in gnash::generate_mouse_button_events(gnash::mouse_button_state*) (ms=0x813ad930)
at movie_root.cpp:340
#15 0x09ccb802 in gnash::movie_root::fire_mouse_event() (this=0x813ad900) at movie_root.cpp:461
#16 0x09ccb127 in gnash::movie_root::notify_mouse_clicked(bool, int) (this=0x813ad900, mouse_pressed=false,
button_mask=1) at movie_root.cpp:258
#17 0x0200d34b in gnash::Gui::notify_mouse_clicked(bool, int) (this=0x8b589200, mouse_pressed=false, mask=1)
at gui.cpp:280
#18 0x02007d2a in gnash::GtkGui::button_release_event(_GtkWidget, _GdkEventButton, void*) (
event=0x7f4ab3f0, data=0x8b589200) at gtk.cpp:1238
#19 0x0a1fced2 in gtk_marshal_VOID__UINT_STRING () from /usr/local/lib/libgtk-x11-2.0.so.1000.12
#20 0x0ed4c21e in g_closure_invoke () from /usr/local/lib/libgobject-2.0.so.1200.11
#21 0x0ed5c331 in g_signal_emit_by_name () from /usr/local/lib/libgobject-2.0.so.1200.11
#22 0x0ed5b301 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.1200.11
#23 0x0ed5b73b in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.1200.11
#24 0x0a2f0328 in gtk_widget_send_expose () from /usr/local/lib/libgtk-x11-2.0.so.1000.12
#25 0x0a1fbcea in gtk_propagate_event () from /usr/local/lib/libgtk-x11-2.0.so.1000.12
#26 0x0a1fae53 in gtk_main_do_event () from /usr/local/lib/libgtk-x11-2.0.so.1000.12
#27 0x0ace67c6 in gdk_x11_register_standard_event_type () from /usr/local/lib/libgdk-x11-2.0.so.1000.12
#28 0x09e5a3a3 in g_source_is_destroyed () from /usr/local/lib/libglib-2.0.so.1200.11
#29 0x09e5b38d in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.1200.11
#30 0x09e5b6b2 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.1200.11
#31 0x09e5bbbe in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.1200.11
#32 0x0a1fa7c3 in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.1000.12
#33 0x02005605 in gnash::GtkGui::run() (this=0x8b589200) at gtk.cpp:318
#34 0x0325111e in gnash::Player::run(int, char*, char const, char const*) (this=0xcfbfb67c, argc=33,
argv=0xcfbfb738, infile=0xcfbfbc64 "-",
url=0xcfbfb9a5 "http://www.lulu.tv/wp-content/flash_play/flvplayer-nowings-lulutv-beta6.swf?file=[http://st]
---Type <return> to continue, or q <return> to quit---
atic.lulu.tv//wp-content/video2/2459/flash/9671/1180014031.flv&autoStart=true&postID=9671&vwidth=320&vheight=2"...) at Player.cpp:355
#35 0x1c003a04 in main (argc=33, argv=0xcfbfb738) at gnash.cpp:364
|
Wed 23 May 2007 07:54:54 PM UTC, comment #3:
It still crashes when I press the play button on the main page, but now it's in the audio -
(gdb) bt
#0 0x0beef801 in avcodec_decode_audio () from /usr/local/lib/libavcodec.so.8.0
#1 0x06c1df1a in gnash::NetStreamFfmpeg::decodeAudio(AVPacket*) (this=0x89c95200, packet=0x86e13e08)
at NetStreamFfmpeg.cpp:744
#2 0x06c1deb9 in gnash::NetStreamFfmpeg::decodeFLVFrame() (this=0x89c95200) at NetStreamFfmpeg.cpp:729
#3 0x06c1d99c in gnash::NetStreamFfmpeg::av_streamer(gnash::NetStreamFfmpeg*) (ns=0x89c95200)
at NetStreamFfmpeg.cpp:629
#4 0x06c206ab in operator()<void ()(gnash::NetStreamFfmpeg), boost::_bi::list0> (this=0x82815e64,
f=@0x82815e60, a=@0x86e13eeb) at bind.hpp:229
#5 0x06c20666 in boost::_bi::bind_t<void, void ()(gnash::NetStreamFfmpeg), boost::_bi::list1<boost::_bi::value<gnash::NetStreamFfmpeg*> > >::operator()() (this=0x82815e60) at bind_template.hpp:20
#6 0x06c2061e in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, void ()(gnash::NetStreamFfmpeg), boost::_bi::list1<boost::_bi::value<gnash::NetStreamFfmpeg*> > >, void>::invoke(boost::detail::function::any_pointer) (function_obj_ptr=
{obj_ptr = 0x82815e60, const_obj_ptr = 0x82815e60, func_ptr = 0x82815e60, data = "`"})
at function_template.hpp:136
#7 0x0edc4eed in boost::function0<void, std::allocator<boost::function_base> >::operator()() const ()
from /usr/local/lib/libboost_thread-mt.so.0.0
#8 0x0edc4b8a in boost::thread_group::size() () from /usr/local/lib/libboost_thread-mt.so.0.0
#9 0x093d0fcb in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:244
#10 0x0000001f in ?? ()
#11 0x00000000 in ?? ()
|
Fri 18 May 2007 03:11:23 PM UTC, original submission:
Gnash crashes when loading the featured movie on the lulu main page. This happens immediately after pressing the play button, or at some random time if left alone to load by itself.
The movie is:
http://www.lulu.tv/?p=8141
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
Here is a trace after hitting the play button on the main page.
(gdb) bt
#0 0x03cbc765 in avcodec_decode_video () from /usr/local/lib/libavcodec.so.8.0
#1 0x7f5c2e00 in ?? ()
#2 0x7f5c2e00 in ?? ()
#3 0x85883e30 in ?? ()
#4 0x0a2a83ae in gnash::NetStreamFfmpeg::read_frame() (this=0x0) at NetStreamFfmpeg.cpp:808
Previous frame inner to this frame (corrupt stack?)
And here when doing the same on the individual movie's page
#0 0x06be552d in kill () from /usr/lib/libc.so.40.3
#1 0x06c1dc1b in abort () at /usr/src/lib/libc/stdlib/abort.c:65
#2 0x0349d314 in __cxxabiv1::__terminate(void (*)()) () from /usr/local/lib/libagg.so.2.4
#3 0x0349d348 in std::terminate() () from /usr/local/lib/libagg.so.2.4
#4 0x0349d491 in __cxa_throw () from /usr/local/lib/libagg.so.2.4
#5 0x07144d2d in boost::mutex::do_lock() () from /usr/local/lib/libboost_thread-mt.so.0.0
#6 0x0427b220 in boost::detail::thread::lock_ops<boost::mutex>::lock(boost::mutex&) (m=@0x898a8e64)
at lock.hpp:38
#7 0x0427b1f1 in boost::detail::thread::scoped_lock<boost::mutex>::lock() (this=0xcfbf65e0) at lock.hpp:81
#8 0x0427b13e in scoped_lock (this=0xcfbf65e0, mx=@0x898a8e64, initially_locked=true) at lock.hpp:71
#9 0x04309626 in gnash::NetStream::setStatus(gnash::NetStream::StatusCode) (this=0x898a8e00,
status=playStart) at NetStream.cpp:488
#10 0x043302f5 in gnash::NetStreamFfmpeg::pause(int) (this=0x898a8e00, mode=-1) at NetStreamFfmpeg.cpp:90
#11 0x04306939 in netstream_pause (fn=@0xcfbf6720) at NetStream.cpp:135
#12 0x0423347d in gnash::builtin_function::operator()(gnash::fn_call const&) (this=0x80d54cc0,
fn=@0xcfbf6720) at builtin_function.h:64
#13 0x0437d6e6 in gnash::call_method(gnash::as_value const&, gnash::as_environment, gnash::as_object, int, int) (method=@0xcfbf67d0, env=0x7eac20e8, this_ptr=0x898a8e00, nargs=0, first_arg_bottom_index=1)
at action.cpp:234
#14 0x04374725 in gnash::SWF::SWFHandlers::ActionCallMethod(gnash::ActionExec&) (thread=@0xcfbf6a60)
at ASHandlers.cpp:2900
#15 0x0435ec2a in gnash::SWF::ActionHandler::execute(gnash::ActionExec&) const (this=0x86c8f7b0,
thread=@0xcfbf6a60) at ASHandlers.cpp:171
#16 0x0436c273 in gnash::SWF::SWFHandlers::execute(gnash::SWF::action_type, gnash::ActionExec&) const (
this=0x2418a5d8, type=ACTION_CALLMETHOD, thread=@0xcfbf6a60) at ASHandlers.cpp:452
#17 0x0437a17c in gnash::ActionExec::operator()() (this=0xcfbf6a60) at ActionExec.cpp:215
#18 0x042890dd in gnash::swf_function::operator()(gnash::fn_call const&) (this=0x894fb700, fn=@0xcfbf6b90)
at swf_function.cpp:331
#19 0x0437d6e6 in gnash::call_method(gnash::as_value const&, gnash::as_environment, gnash::as_object, int, int) (method=@0xcfbf6c40, env=0x7eac20e8, this_ptr=0x898a8e00, nargs=1, first_arg_bottom_index=1)
at action.cpp:234
#20 0x04309508 in gnash::NetStream::processStatusNotifications() (this=0x898a8e00) at NetStream.cpp:472
#21 0x04333113 in gnash::NetStreamFfmpeg::advance() (this=0x898a8e00) at NetStreamFfmpeg.cpp:1016
#22 0x0428a886 in gnash::video_stream_instance::advance(float) (this=0x810aff00)
at video_stream_instance.cpp:126
#23 0x042a6721 in gnash::DisplayList::advance(float) (this=0xcfbf6d60, delta_time=1) at dlist.cpp:681
#24 0x04270831 in gnash::sprite_instance::advance_sprite(float) (this=0x7eac2000, delta_time=1)
at sprite_instance.cpp:2489
#25 0x042577c6 in gnash::movie_instance::advance(float) (this=0x7eac2000, delta_time=1)
at movie_instance.cpp:87
#26 0x042598dd in gnash::movie_root::advance(float) (this=0x8286f600, delta_time=1) at movie_root.cpp:595
#27 0x02def6a3 in gnash::Gui::advance_movie(gnash::Gui*) (gui=0x7c1e9200) at gui.cpp:462
#28 0x0c426947 in g_main_context_is_owner () from /usr/local/lib/libglib-2.0.so.1200.11
#29 0x0c4243a3 in g_source_is_destroyed () from /usr/local/lib/libglib-2.0.so.1200.11
#30 0x0c42538d in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.1200.11
#31 0x0c4256b2 in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.1200.11
#32 0x0c425bbe in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.1200.11
#33 0x0c0427c3 in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.1000.12
#34 0x02de75f5 in gnash::GtkGui::run() (this=0x7c1e9200) at gtk.cpp:318
#35 0x0a2a90dd in gnash::Player::run(int, char*, char const, char const*) (this=0xcfbf70bc, argc=33,
argv=0xcfbf7178, infile=0xcfbf76a4 "-",
url=0xcfbf73e5 "http://www.lulu.tv/wp-content/flash_play/flvplayer-nowings-lulutv-beta6.swf?file=[http://static.lulu.tv//wp-content/video2/1194/flash/8141/1177355101.flv&autoStart=true&postID=8141&vwidth=320&vheight=2]
"...) at Player.cpp:355
#36 0x1c0039f4 in main (argc=33, argv=0xcfbf7178) at gnash.cpp:364
|