After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 680425 - Port to gstreamer 1.0
Port to gstreamer 1.0
Status: RESOLVED FIXED
Product: sushi
Classification: Core
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Sushi maintainer(s)
Sushi maintainer(s)
Depends on:
Blocks: 679412
 
 
Reported: 2012-07-23 04:05 UTC by Matthias Clasen
Modified: 2012-08-10 13:39 UTC
See Also:
GNOME target: 3.6
GNOME version: 3.5/3.6


Attachments
Port to GStreamer 1.0 - completely untested (7.22 KB, patch)
2012-07-30 18:05 UTC, Tim-Philipp Müller
none Details | Review
Port to GStreamer 1.0 - completely untested (this time against master not 3.4 branch) (7.22 KB, patch)
2012-07-30 18:14 UTC, Tim-Philipp Müller
reviewed Details | Review
Updated patch according to comments. Still untested. (7.39 KB, patch)
2012-07-31 14:44 UTC, Tim-Philipp Müller
committed Details | Review

Description Matthias Clasen 2012-07-23 04:05:48 UTC
See https://live.gnome.org/GnomeGoals/PortToGstreamer1
Comment 1 Tim-Philipp Müller 2012-07-30 18:05:06 UTC
Created attachment 219923 [details] [review]
Port to GStreamer 1.0 - completely untested
Comment 2 Tim-Philipp Müller 2012-07-30 18:14:57 UTC
Created attachment 219924 [details] [review]
Port to GStreamer 1.0 - completely untested (this time against master not 3.4 branch)

Previous patch was for gnome-3-4 branch.
Comment 3 Tim-Philipp Müller 2012-07-30 18:19:56 UTC
Also worth noting that this is against GStreamer git master, the patch uses API that is not in the last pre-releases yet (0.11.92), namely gst_tag_list_get_sample_index(). There should be new pre-releases soon.
Comment 4 Cosimo Cecchi 2012-07-31 08:57:47 UTC
Review of attachment 219924 [details] [review]:

Thanks, looks pretty good to me (but I haven't tested either). I just have two very small comments below.

::: src/Makefile-sushi.am
@@ +88,3 @@
+	--includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-1.0` \
+	--includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-pbutils-1.0` \
+	--add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-tag-1.0`

Please indent this with spaces instead of tabs - why are this additions needed here in any case?

::: src/Makefile.am
@@ +50,3 @@
     $(SUSHI_LIBS)
 sushi_start_CPPFLAGS = \
+	-DGST_USE_UNSTABLE_API \

Same here
Comment 5 Tim-Philipp Müller 2012-07-31 14:44:37 UTC
Created attachment 219985 [details] [review]
Updated patch according to comments. Still untested.

Thanks for the review.

Fixed up tabs to spaces in Makefile.am


> why are [these Makefile.am g-i] additions needed here in any case?

To make the g-ir-scanner etc. find the Gst-1.0.gir files in an uninstalled GStreamer setup (which is what I and most GStreamer hackers use for development). But I imagine they would also be needed if GStreamer was installed into a prefix different from the rest of most of the system.
Comment 6 Cosimo Cecchi 2012-08-08 12:39:05 UTC
Unfortunately it seems to crash inside gstreamer, with the following trace:

(gdb) bt
  • #0 g_mutex_get_impl
    at gthread-posix.c line 119
  • #1 g_mutex_lock
    at gthread-posix.c line 208
  • #2 gst_base_parse_change_state
    at gstbaseparse.c line 4057
  • #3 gst_element_change_state
    at gstelement.c line 2568
  • #4 gst_element_set_state_func
    at gstelement.c line 2524
  • #5 connect_pad
    at gstdecodebin2.c line 2080
  • #6 analyze_new_pad
    at gstdecodebin2.c line 1657
  • #7 type_found
    at gstdecodebin2.c line 2398
  • #8 ffi_call_unix64
    from /lib64/libffi.so.5
  • #9 ffi_call
    from /lib64/libffi.so.5
  • #10 g_cclosure_marshal_generic
    at gclosure.c line 1454
  • #11 g_closure_invoke
    at gclosure.c line 777
  • #12 signal_emit_unlocked_R
    at gsignal.c line 3551
  • #13 g_signal_emit_valist
    at gsignal.c line 3300
  • #14 g_signal_emit
    at gsignal.c line 3356
  • #15 gst_type_find_element_loop
    at gsttypefindelement.c line 1051
  • #16 gst_task_func
    at gsttask.c line 316
  • #17 g_thread_pool_thread_proxy
    at gthreadpool.c line 309
  • #18 g_thread_proxy
    at gthread.c line 801
  • #19 start_thread
    at pthread_create.c line 308
  • #20 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 114

Comment 7 Tim-Philipp Müller 2012-08-08 18:32:08 UTC
Hrm, what are the other threads doing then?

Do you get the same crash with

   gst-launch-1.0 playbin uri=file:///path/to/foo

?

Is this with git master of GStreamer ?

Are there any warnings/criticals before it crashes?

Is there a way for me try and reproduce this by running some test binary from the sushi source directory (without installing it)?
Comment 8 Cosimo Cecchi 2012-08-10 13:39:38 UTC
Tested this again with all the gstreamer modules updated to git master, and it seems to work fine indeed now!
I pushed it to git master, thanks a lot for the patch!