[gstreamer-bugs] [Bug 143030] - [PATCH] improve gstplay

bugzilla-daemon at bugzilla.gnome.org bugzilla-daemon at bugzilla.gnome.org
Tue Jul 6 08:54:44 PDT 2004


http://bugzilla.gnome.org/show_bug.cgi?id=143030
GStreamer | gst-plugins | Ver: HEAD CVS





------- Additional Comments From thomas at apestaart.org  2004-07-06 11:54 -------
couple of observations.

* patch doesn't apply cleanly; updated version attached.  One thing was a
compiler warning.
* still uses spider
* with any scheduler, I get some wrong info and a thread error at end of
playback of cooldance.ogg:
got video info 16 x 16 @ 1.000000 fps
         serial: 761002030
         serial: 571475272
        encoder: Xiph.Org libTheora I 20040317 3 2 0
encoder version: 3
got video info 128 x 96 @ 10.000000 fps
        encoder: Xiph.Org libVorbis I 20030909
encoder version: 0
nominal bitrate: 112001
got audio info 2 channels @ 44100 Hz
got length 0:00:00.000000000
EOS
setting pipeline to ready
 
GThread-ERROR **: file gthread-posix.c: line 160 (): error 'Device or resource
busy' during 'pthread_mutex_destroy ((pthread_mutex_t *) mutex)'
aborting...
Aborted


the length is wrong, and the first video information reported is wrong.

With opt, it plays the video jerkily, with basicgthread, it seems ok.

Other files have similar issues.

The API is not compatible, I'm not really sure why you decided to rewrite it. 
But it seems like this is a problem to get it integrated in a 0.8 series.

using your sample player on gravity.mpg, I get this backtrace:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 20794288 (LWP 15236)]
0x00e26c73 in mpeg_video_stream_type_find (tf=0x13d4490, unused=0x0)
    at ../../../gst/typefind/gsttypefindfunctions.c:662
662         if (data[0] == 0x0 && data[1] == 0x0 && data[2] == 0x1 &&
(gdb) print data
$1 = (guint8 *) 0x85b6ffe ""
(gdb) bt
#0  0x00e26c73 in mpeg_video_stream_type_find (tf=0x13d4490, unused=0x0)
    at ../../../gst/typefind/gsttypefindfunctions.c:662
#1  0x00d50c30 in gst_type_find_factory_call_function (factory=0x83a37f8,
    find=0x13d4490) at gsttypefind.c:201
#2  0x004e800b in gst_spider_identity_sink_loop_type_finding (ident=0x84add20)
    at gstspideridentity.c:534
#3  0x009ca467 in loop_group_schedule_function (argc=0, argv=0x84b7d18)
    at gstoptimalscheduler.c:1278
#4  0x009c9f26 in schedule_group (group=0x84b7d18)
    at gstoptimalscheduler.c:1114
#5  0x009c9fdc in gst_opt_scheduler_schedule_run_queue (osched=0x84b07c8)
    at gstoptimalscheduler.c:1157
#6  0x009ca1c2 in schedule_chain (chain=0x83cb300)
    at gstoptimalscheduler.c:1205
#7  0x009ccb1e in gst_opt_scheduler_iterate (sched=0x84b07c8)
    at gstoptimalscheduler.c:2384
#8  0x00d47bfa in gst_scheduler_iterate (sched=0x84b07c8) at gstscheduler.c:704
#9  0x00d21d39 in gst_bin_iterate_func (bin=0x834e9b0) at gstbin.c:1123
#10 0x00d59feb in gst_marshal_BOOLEAN__VOID (closure=0x834ceb0,
    return_value=0x13d4740, n_param_values=1, param_values=0x85b6ffe,
    invocation_hint=0x13d4768, marshal_data=0xd21ccc) at gstmarshal.c:433
#11 0x001ec4f7 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#12 0x001ec160 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#13 0x001ffbc5 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#14 0x001fef2e in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#15 0x001ff454 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#16 0x00d21ed3 in gst_bin_iterate (bin=0x834e9b0) at gstbin.c:1176
#17 0x00d4f9f9 in gst_thread_main_loop (arg=0x834e9b0) at gstthread.c:586
#18 0x00357c4d in g_static_private_free () from /usr/lib/libglib-2.0.so.0
#19 0x0053d98c in start_thread () from /lib/tls/libpthread.so.0
#20 0x008e016a in clone () from /lib/tls/libc.so.6
(gdb)

I seem to be getting this for every type of file I try.

As it stands, I can't really test whether this makes for a better playback
engine.  Let me know what I can try next.



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
You are the QA contact for the bug, or are watching the QA contact.




More information about the Gstreamer-bugs mailing list