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 771697 - Develop media player with GStreamer. I have a few troubles.
Develop media player with GStreamer. I have a few troubles.
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: dont know
1.x
Other Mac OS
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-09-20 09:49 UTC by bamzunee
Modified: 2016-09-20 14:44 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description bamzunee 2016-09-20 09:49:38 UTC
GStreamer Enquiry

 - Current GStreamer version : 1.6.4, 
 - build platform
   → mac OS X 10.11 el Capitan(universal build by cerebra)
   → window 10 GStreamer homepage 1.6.4 download version

Hi, I am a developer in Korea and I currently develop media player with GStreamer but I have a few troubles. 

1. For Official App store from Apple release, I made a framework with wrapped GStreamer. For the release, currently, my framework calls GStreamer through absolute path (/Library/Frameworks/GStreamer.framework) However, I'd like to use this relative path down below.
 - MyApp.app
    : MyApp.app
      /Contents
         /Frameworks
            /My.framework
            /GStreamer.framework

2. For Official App store from Apple release, I inputted the code sign in Terminal and these are the result below. I succeed the code sign and upload was also successful but with GStreamer framework, there is always code sign error.

 - Terminal input codesign command
    : code sign -f —deep -s '3rd Party Mac Developer Application: My Developer ID' —entitlements "MyApp.entitlements" "MyApp.app"
 - Output Message
    : unsealed contents present in the root directory of an embedded framework
      In subcomponent: MyPath/MayApp.app/Contents/Frameworks/GStreamer.framework

3. my framework becomes deadlock when I change subtitle when I swap subtitle (subtitle URL change) makes my framework deadlock with glimagesink or osxvideosink on Windows and Mac, However, it works well with d3dvideosink on Windows. I referred totem-streamer and there are the codes below that I used 

/* Wait for the previous state change to finish */
gst_element_get_state( pPipeline, NULL, NULL, GST_CLOCK_TIME_NONE );
gst_element_query_position( (GstElement*)pPipeline, format, &cur_pos );
/* READY */
gst_element_get_state( pPipeline, &cur_state, NULL, 0 );
if ( cur_state > GST_STATE_READY ){
   gst_element_set_state( pPipeline, GST_STATE_READY );
   /* Block for new state */
   gst_element_get_state( pPipeline, NULL, NULL, GST_CLOCK_TIME_NONE );
}
g_object_set( G_OBJECT(pPipeline), "suburi", szSubTitle, NULL );
/* And back to the original state */
if ( cur_state > GST_STATE_READY ){
   gst_element_set_state( pPipeline, cur_state );
   /* Block for new state */
   gst_element_get_state( pPipeline, NULL, NULL, GST_CLOCK_TIME_NONE );
}
if ( cur_pos > 0 ){
   gst_element_seek( pPipeline, dRate,
                   GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE,
                  GST_SEEK_TYPE_SET, cur_pos,
                  GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE );
}

4. When my framework plays a video file, the play screen rendering is always on the top of any other renderings such as layout, button, label, etc. What I want to do is the other renderings can be show/hide so that I can make play control, playlist as totem-Streamer.
 
5. I am currently using Delphi Berlin Firemonkey and the Delphi only supports OS X 32bit for build and currently, Streamer doesn't support since v1.5.1 came. so I built myself GStreamer v1.6.4 as Universal. I am wondering that GStreamer release higher version with Universal again.

Thanks in advance and Please let me know if you have any question.

Best Regards
Comment 1 Sebastian Dröge (slomo) 2016-09-20 14:44:24 UTC
Please file a few separate bugs about each of the individual issues, and for support requests please ask on the mailing list instead:
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

(In reply to bamzunee from comment #0)

> 1. For Official App store from Apple release, I made a framework with
> wrapped GStreamer. For the release, currently, my framework calls GStreamer
> through absolute path (/Library/Frameworks/GStreamer.framework) However, I'd
> like to use this relative path down below.
>  - MyApp.app
>     : MyApp.app
>       /Contents
>          /Frameworks
>             /My.framework
>             /GStreamer.framework

You will have to relocate the .dylibs with otool and install_name_tool. Linking on macOS is always done with absolute paths unless you manually change that after the fact. This does not seem like a bug.

> 2. For Official App store from Apple release, I inputted the code sign in
> Terminal and these are the result below. I succeed the code sign and upload
> was also successful but with GStreamer framework, there is always code sign
> error.
> 
>  - Terminal input codesign command
>     : code sign -f —deep -s '3rd Party Mac Developer Application: My
> Developer ID' —entitlements "MyApp.entitlements" "MyApp.app"
>  - Output Message
>     : unsealed contents present in the root directory of an embedded
> framework
>       In subcomponent:
> MyPath/MayApp.app/Contents/Frameworks/GStreamer.framework

That sounds like a real problem and you should report a separate issue for that, ideally with a small (minimal!) testcase that can reproduce the problem directly.
 
> 3. my framework becomes deadlock when I change subtitle when I swap subtitle
> (subtitle URL change) makes my framework deadlock with glimagesink or
> osxvideosink on Windows and Mac, However, it works well with d3dvideosink on
> Windows. I referred totem-streamer and there are the codes below that I used 
> [...]

You said you were using 1.6.4. Please try again with 1.8.3 and if the problem still exists, file a separate bug about this with a testcase to reproduce it.

> 4. When my framework plays a video file, the play screen rendering is always
> on the top of any other renderings such as layout, button, label, etc. What
> I want to do is the other renderings can be show/hide so that I can make
> play control, playlist as totem-Streamer.

You need to embed the video sink into your UI with the GstVideoOverlay interface, or alternatively do closer integration like the caopengllayersink does for macOS. This is not a bug.

> 5. I am currently using Delphi Berlin Firemonkey and the Delphi only
> supports OS X 32bit for build and currently, Streamer doesn't support since
> v1.5.1 came. so I built myself GStreamer v1.6.4 as Universal. I am wondering
> that GStreamer release higher version with Universal again.

Not sure if that makes any sense, because Apple does not support 32 bit either anymore since 10.6, which is ancient by any means.

For applications it is still supported though, so if someone wants to put the effort in making the universal build work and helps keeping it in shape, then that would be possible. Please make another bug for this if you're interested in working on that and want to provide patches, and help keeping it working.


I'm closing this bug here now as it's about too many independent issues, let's continue discussions in separate bugs for any of these (or the mailing list).