bugGnash - The GNU Flash player - Bugs: bug #20880, Slow/choppy sound and video in...

 
 

bug #20880: Slow/choppy sound and video in 0.8.1 release (OpenBSD)

Submitted by:  Deanna Phillips <deanna>
Submitted on:  Thu 23 Aug 2007 07:15:47 PM UTC  
 
Category: NoneSeverity: 3 - Normal
Release: NoneStatus: Confirmed
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.

 

(Jump to the original submission Jump to the original submission)

Sat 25 Oct 2008 01:39:54 PM UTC, comment #13:

Closing because media handling has changed (and is still changing) rapidly. Please file a new bug if there are sound problems on OpenBSD in 0.8.4

Benjamin Wolsey <bwy>
Project Member
Wed 28 May 2008 07:57:21 PM UTC, comment #12:

Actually I've finally managed to get our gstreamer working with
gnash and will use that config for the 0.8.3 OpenBSD port. It
has its own set of problems, but a new gnash on OpenBSD looks
more likely than it has in a long time. Thanks!

Deanna Phillips <deanna>
Wed 28 May 2008 06:56:29 PM UTC, comment #11:

Some profiling information pinpointing the bottleneck would probably be useful. That said, Sandro is refactoring the ffmpeg code in HEAD. So you can try that, too.

Bastiaan Jacques <bjacques>
Project Member
Wed 28 May 2008 03:31:29 PM UTC, comment #10:

This is still a huge problem. Gnash ffmpeg/SDL has been unusuable for us since 0.8.0. Any idea where I could be troubleshooting here?

Deanna Phillips <deanna>
Thu 06 Sep 2007 12:30:54 PM UTC, comment #9:

using LOAD_MOVIES_IN_A_SEPARATE_THREAD only matters when playing an external mp3 or flv, which i don't think happens here.

Tomas Groth <tgc>
Fri 24 Aug 2007 05:50:36 PM UTC, comment #8:

I'm not being clear enough about my tests.

Sound and video (everything) starts out much better in the standalone player with 0.8.1 built with LOAD_MOVIES_IN_A_SEPARATE_THREAD commented out. But it does get worse as I get further into the movie (choppy, slowed down).

Youtube is equally horrible with and without LOAD_MOVIES_IN_A_SEPARATE_THREAD.

-r1 and -r2 are equally fine with and without LOAD_MOVIES_IN_A_SEPARATE_THREAD.

Deanna Phillips <deanna>
Fri 24 Aug 2007 05:24:41 PM UTC, comment #7:

Could it be then that the parser is too aggressive ?
The last test would be making Gnash parse the whole movie before starting to play.

I think one difference between 080 and 081 is that the parser makes more checks on SWF sanity.

Sandro Santilli <strk>
Project Member
Fri 24 Aug 2007 05:16:04 PM UTC, comment #6:

I tried without sound on 0.8.1 and then 0.8.0 to compare, and as far as I can tell the results are the same.

I then tried 0.8.1 with just sound (no rendering) and the sound problems disappear.

Deanna Phillips <deanna>
Fri 24 Aug 2007 04:57:49 PM UTC, comment #5:

Could you please try with -r1 (disable sound) ?

Sandro Santilli <strk>
Project Member
Fri 24 Aug 2007 04:52:18 PM UTC, comment #4:

The segfault happened with the standalone player. If I try to play the creative commons flash in firefox, from their site (linked off gnashdev) firefox becomes unresponsive. I use the ion window manager and am unable to refocus on firefox. I can hear the choppy sound and the movie playing a bit, then restarting, over and over and this is the debug output in my terminal.

xEmbed supported in this Mozilla version
Gtk2+ supported in this Mozilla version
NewStream: The full URL is http://mirrors.creativecommons.org/getcreative/Creative_Commons_-_Get_Creative.swf
Forked sucessfully, child process PID is 6957
Closed 45files.
Starting process: /usr/local/bin/gtk-gnash -v -x 14692479 -j 905 -k 615 -u http://mirrors.creativecommons.org/getcreative/Creative_Commons_-_Get_Creative.swf -U http://mirrors.creativecommons.org/getcreative/Creative_Commons_-_Get_Creative.swf -P height=100% -P name=plugin -P src=http://mirrors.creativecommons.org/getcreative/Creative_Commons_-_Get_Creative.swf -P type=application/x-shockwave-flash -P width=100% -
6957] 12:40:26: Verbose output turned on
6957] 12:40:26: Setting width to 905
6957] 12:40:26: Setting height to 615
6957] 12:40:26: Setting root URL to http://mirrors.creativecommons.org/getcreative/Creative_Commons_-_Get_Creative.swf
6957] 12:40:26: Setting base URL to http://mirrors.creativecommons.org/getcreative/Creative_Commons_-_Get_Creative.swf
6957] 12:40:26: No rendering flags specified, using rcfile
6957] 12:40:26: Your X server expects RGB24 pixmap data for standard mode.
6957] 12:40:26: Created XEmbedded window
6957] 12:40:26: framebuffer pixel format is RGB24
6957] 12:40:26: Base url set to: http://mirrors.creativecommons.org/getcreative/Creative_Commons_-_Get_Creative.swf
6957] 12:40:26: GTK-AGG: 1680000 bytes offscreen buffer allocated

6957] 12:40:26: initialized AGG buffer <0x7cfd2000>, 1680000 bytes, 905x615, rowsize is 2715 bytes
6957] 12:40:26: ERROR: Unimplemented: DefineFontInfo2 partially implemented
6957] 12:40:40: DEBUG: Setting jpeg loader to 0x8146d000
6957] 12:40:50: ERROR: *** no tag loader for type 256 (movie)
bits_left=-10
bits_left=-7
overread, skip -9 enddists: -4 -4
mdb:247, lastbuf:42 skipping granule 0
mdb:247, lastbuf:42 skipping granule 0
overread, skip -7 enddists: -5 -5
bits_left=-5
overread, skip -7 enddists: -6 -6
bits_left=-2
bits_left=-3
bits_left=-1
bits_left=-7
overread, skip -9 enddists: -1 -1
bits_left=-4
overread, skip -9 enddists: -3 -3
overread, skip -8 enddists: -4 -4
mdb:354, lastbuf:214 skipping granule 0
mdb:354, lastbuf:214 skipping granule 0
bits_left=-2
bits_left=-1
mdb:170, lastbuf:8 skipping granule 0
mdb:170, lastbuf:8 skipping granule 0
bits_left=-6
overread, skip -7 enddists: -4 -4
mdb:280, lastbuf:20 skipping granule 0
mdb:280, lastbuf:20 skipping granule 0
invalid block type
invalid new backstep 496
overread, skip -9 enddists: -6 -6
overread, skip -9 enddists: -3 -3
bits_left=-4
bits_left=-4
bits_left=-2
bits_left=-5
bits_left=-1
bits_left=-6
overread, skip -7 enddists: -1 -1
bits_left=-15
overread, skip -7 enddists: -2 -2
mdb:223, lastbuf:191 skipping granule 0
overread, skip -9 enddists: -8 -8
bits_left=-6
bits_left=-1
overread, skip -9 enddists: -5 -5
bits_left=-5
bits_left=-4
overread, skip -9 enddists: -2 -2
[mp3 @ 0x2b0dbcb0]big_values too big
invalid new backstep 512
bits_left=-9
bits_left=-6
overread, skip -7 enddists: -1 -1
overread, skip -9 enddists: -8 -8
bits_left=-4
bits_left=-3
bits_left=-1
bits_left=-6
invalid block type
invalid new backstep 496
overread, skip -7 enddists: -2 -2
bits_left=-2
overread, skip -9 enddists: -3 -3
bits_left=-3
mdb:388, lastbuf:238 skipping granule 0
mdb:388, lastbuf:238 skipping granule 0
overread, skip -7 enddists: -6 -6
bits_left=-3
overread, skip -9 enddists: -5 -5
overread, skip -9 enddists: -2 -2
overread, skip -9 enddists: -6 -6
[mp3 @ 0x2b0dbcb0]big_values too big
invalid new backstep 490
overread, skip -9 enddists: -1 -1
overread, skip -7 enddists: -6 -6
overread, skip -9 enddists: -2 -2
bits_left=-1
overread, skip -5 enddists: -1 -1
overread, skip -9 enddists: -3 -3
overread, skip -9 enddists: -5 -5
bits_left=-2
overread, skip -9 enddists: -4 -4
overread, skip -9 enddists: -5 -5
overread, skip -9 enddists: -1 -1
overread, skip -9 enddists: -3 -3
overread, skip -9 enddists: -2 -2
overread, skip -7 enddists: -5 -5
overread, skip -9 enddists: -2 -2
bits_left=-1
overread, skip -7 enddists: -2 -2
mdb:306, lastbuf:244 skipping granule 0
overread, skip -9 enddists: -5 -5
bits_left=-4
bits_left=-5
overread, skip -9 enddists: -2 -2
overread, skip -9 enddists: -4 -4
bits_left=-1
bits_left=-4
bits_left=-1
bits_left=-5
mdb:275, lastbuf:150 skipping granule 0
mdb:275, lastbuf:150 skipping granule 0
bits_left=-6
bits_left=-4
mdb:163, lastbuf:0 skipping granule 0
mdb:163, lastbuf:0 skipping granule 0
overread, skip -5 enddists: -1 -1
overread, skip -9 enddists: -3 -3
overread, skip -9 enddists: -5 -5
bits_left=-2
overread, skip -9 enddists: -4 -4

Deanna Phillips <deanna>
Fri 24 Aug 2007 04:33:50 PM UTC, comment #3:

The Creative Commons flash from gnashdev segfaults

#0 0x0017d644 in std::__default_alloc_template<true, 0>::allocate(unsigned long) ()
from /usr/lib/libstdc++.so.42.0
(gdb) bt
#0 0x0017d644 in std::__default_alloc_template<true, 0>::allocate(unsigned long) ()
from /usr/lib/libstdc++.so.42.0
#1 0x07b39881 in std::__simple_alloc<std::_Rb_tree_node<std::pair<int const, int> >, std::__default_alloc_template<true, 0> >::allocate(unsigned long) (__n=1) at stl_alloc.h:232
#2 0x07b3983f in std::_Rb_tree_alloc_base<std::pair<int const, int>, std::allocator<std::pair<int const, int> >, true>::_M_get_node() (this=0x86b92dd0) at stl_tree.h:564
#3 0x07be2dbc in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_create_node(std::pair<int const, int> const&)
(this=0x86b92dd0, __x=@0x8499f438) at stl_tree.h:616
#4 0x07be276f in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_clone_node(std::_Rb_tree_node<std::pair<int const, int> >*) (this=0x86b92dd0, __x=0x8499f428) at stl_tree.h:630
#5 0x07be0001 in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy(std::_Rb_tree_node<std::pair<int const, int> >, std::_Rb_tree_node<std::pair<int const, int> >) (this=0x86b92dd0, __x=0x8499f428, __p=0x8499f290)
at stl_tree.h:1208
#6 0x07bdffc6 in std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_copy(std::_Rb_tree_node<std::pair<int const, int> >, std::_Rb_tree_node<std::pair<int const, int> >) (this=0x86b92dd0, __x=0x8499f560, __p=0x849a0b38)
at stl_tree.h:1202
#7 0x07bde1c9 in _Rb_tree (this=0x86b92dd0, __x=@0x86b92dc4) at stl_tree.h:741
#8 0x07bde0f1 in map (this=0x86b92dd0, __x=@0x86b92dc4) at stl_map.h:162
#9 0x07bde08f in _Construct<std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > >, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int> > > > (__p=0x86b92dd0,
__value=@0x86b92dc4) at stl_construct.h:78
#10 0x07bd748a in std::vector<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, std::allocator<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > > >::push_back(std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > const&) (this=0x836b7f00,
__x=@0x86b92dc4) at stl_vector.h:599
#11 0x07bd48ce in gnash::Timeline::closeFrame() (this=0x836b7f00) at Timeline.h:100
#12 0x07bd1b14 in gnash::movie_def_impl::incrementLoadedFrames() (this=0x836b7e00) at movie_def_impl.cpp:981
#13 0x07bd16fb in gnash::movie_def_impl::read_all_swf() (this=0x836b7e00) at movie_def_impl.cpp:894
#14 0x07bcd7a0 in gnash::MovieLoader::execute(gnash::movie_def_impl*) (md=0x836b7e00)
at movie_def_impl.cpp:118
#15 0x07bd79e9 in operator()<void ()(gnash::movie_def_impl), boost::_bi::list0> (this=0x8b5b8f14,
f=@0x8b5b8f10, a=@0x8280deeb) at bind.hpp:229
#16 0x07bd79a4 in boost::_bi::bind_t<void, void ()(gnash::movie_def_impl), boost::_bi::list1<boost::_bi::value<gnash::movie_def_impl*> > >::operator()() (this=0x8b5b8f10) at bind_template.hpp:20
#17 0x07bd795c in boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, void ()(gnash::movie_def_impl), boost::_bi::list1<boost::_bi::value<gnash::movie_def_impl*> > >, void>::invoke(boost::detail::function::any_pointer) (function_obj_ptr=
{obj_ptr = 0x8b5b8f10, const_obj_ptr = 0x8b5b8f10, func_ptr = 0x8b5b8f10, data = "\020"})
at function_template.hpp:136
#18 0x0542af4d in boost::function0<void, std::allocator<boost::function_base> >::operator()() const ()
from /usr/local/lib/libboost_thread-mt.so.0.0
#19 0x0542abea in boost::thread_group::size() () from /usr/local/lib/libboost_thread-mt.so.0.0
#20 0x0f2fc117 in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:244
#21 0x0000001f in ?? ()
Previous frame inner to this frame (corrupt stack?)
(gdb)

Deanna Phillips <deanna>
Fri 24 Aug 2007 08:24:19 AM UTC, comment #2:

Note that -DGNSAH_USE_GC=0 would likely NOT disable the GC.
You have to explicitly comment out the line in libbase/smart_ptr.h
and make sure to make clean before rebuilding.

Also, you may move the parser away by commenting out the LOAD_MOVIES_IN_A_SEPARATE_THREAD define in server/parser/movie_def_impl.cpp

That would parse the whole movie (SWF) before starting the playback. See if it changes anything.

Finally, are you using the same ffmpeg for both 0.8.0 and 0.8.1 ?

Sandro Santilli <strk>
Project Member
Thu 23 Aug 2007 11:09:38 PM UTC, comment #1:

At Markus's suggestion, I built with the garbage collector disabled (-DGNASH_USE_GC=0) and there's no change. So I think that can be ruled out.

Deanna Phillips <deanna>
Thu 23 Aug 2007 07:15:47 PM UTC, original submission:

Some regression on OpenBSD - youtube movies that play fine in 0.8.0 are very choppy and slowed down in 0.8.1 and using 100% cpu time. Building with -O2 helps, but 0.8.0 worked fine with -O0.

Sample - http://www.youtube.com/watch?v=EHuOrJQua_c

Config (ffmpeg/agg/gtk)

Building in directories: libbase libgeometry libamf server backend utilities gui extensions plugin testsuite po
Some directories may be excluded from the build
OpenBSD daylight.my.domain 4.2 ACPI.MP#245 i386
ccache c++ -v
Reading specs from /usr/lib/gcc-lib/i386-unknown-openbsd4.1/3.3.5/specs
Configured with:
Thread model: single
gcc version 3.3.5 (propolice)
CXXFLAGS: -O2 -pipe -g -O0 -Wall -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type

Image decoding support...
JPEG_CFLAGS is
JPEG_LIBS is -L/usr/local/lib -ljpeg
PNG_CFLAGS is
PNG_LIBS is
Audio decoding support...
FFMPEG_CFLAGS is -I/usr/local/include -I/usr/local/include
FFMPEG_LIBS is -L/usr/local/lib -pthread -lavcodec -L/usr/local/lib -lvorbisenc -lvorbis -lm -logg -L/usr/local/lib -lavformat -L/usr/local/lib -lavutil -L/usr/local/lib -ltheora -logg -lgsm
OGG_CFLAGS is
OGG_LIBS is
GUI Toolkit decoding support...
SDL_CFLAGS is -I/usr/local/include/SDL
SDL_LIBS is -L/usr/local/lib -lSDL
GTK2_CFLAGS is -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/pango-1.0 -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 -I/usr/local/include/atk-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/cairo -I/usr/local/include -I/usr/local/include/libpng
GTK2_LIBS is -L/usr/local/lib -L/usr/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lXinerama -lXi -lXrandr -lXext -lXcursor -lXfixes -latk-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv -lcairo -lfreetype -lfontconfig -lexpat -lglitz -lpng -lz -lm -lXrender -lX11 -lXau -lXdmcp
PANGO_CFLAGS is -I/usr/local/include/pango-1.0 -I/usr/X11R6/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include
PANGO_LIBS is -L/usr/local/lib -L/usr/X11R6/lib -lpangox-1.0 -lX11 -lpango-1.0 -lm -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
ATK_CFLAGS is -I/usr/local/include/atk-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include
ATK_LIBS is -L/usr/local/lib -latk-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
X11_CFLAGS is -I/usr/X11R6/include
X11_LIBS is -L/usr/X11R6/lib -lX11 -lXinerama -lXext -lSM -lICE
Support libraries...
INCLTDL
LIBLTDL -lltdl
GLIB_CFLAGS is -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include
GLIB_LIBS is -L/usr/local/lib -lglib-2.0 -lintl -liconv
Z_CFLAGS is
Z_LIBS is -lz
LIBXML_CFLAGS is -I/usr/local/include/libxml2 -I/usr/local/include
LIBXML_LIBS is -L/usr/local/lib -lxml2 -lz -L/usr/local/lib -liconv -lm
FREETYPE2_CFLAGS is -I/usr/X11R6/include/freetype2 -I/usr/X11R6/include
FREETYPE2_LIBS is -L/usr/X11R6/lib -lfreetype -lz
FONTCONFIG_CFLAGS is -I/usr/X11R6/include
FONTCONFIG_LIBS is -L/usr/X11R6/lib -lfontconfig -lexpat
PTHREAD_CFLAGS is -pthread
PTHREAD_LIBS is -lpthread
CURL_CFLAGS is -I/usr/local/include
CURL_LIBS is -L/usr/local/lib -lcurl
BOOST_CFLAGS is
BOOST_LIBS is -L/usr/local/lib -lboost_date_time -lboost_thread-mt
Graphics support...
CAIRO_CFLAGS is
CAIRO_LIBS is
AGG_CFLAGS is -I/usr/local/include/agg2
AGG_LIBS is -L/usr/local/lib -lagg

A blank value for CFLAGS means the header is installed in the
default system header location. All the LIBS should have a
legit value

Configurable options are:
Media handler: ffmpeg
Renderer engine: agg
Supported GUI: GTK
Konqueror (KPARTS) plugin disabled
Firefox (NSAPI) plugin enabled

Deanna Phillips <deanna>

 

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

Attach File(s):
   
   
Comment:
   

No files currently attached

 

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 bjacques (Posted a comment)
  • -unavailable- added by tgc (Updated the item)
  • -unavailable- added by strk (Posted a comment)
  • -unavailable- added by deanna (Submitted the item)
  •  

    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
    Sat 25 Oct 2008 01:39:54 PM UTCbwyStatusNone=>Confirmed
      Open/ClosedOpen=>Closed
    Wed 09 Jul 2008 09:58:11 AM UTCstrkAttached File#16081=>Removed
    Wed 09 Jul 2008 07:36:40 AM UTCNoneAttached File-=>Added valid_atom_80x15.png, #16081
    Thu 06 Sep 2007 12:30:54 PM UTCtgcAssigned totgc=>None
    Wed 05 Sep 2007 02:07:53 PM UTCtgcAssigned toNone=>tgc
    Thu 23 Aug 2007 07:16:52 PM UTCdeannaCarbon-Copy-=>Added nihilus

    Back to the top


    Powered by Savane 3.1-cleanup1