Clang port of GStreamer 1.12.4 to Android

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Clang port of GStreamer 1.12.4 to Android

Stirling Westrup
As part of our development work on Android, we were forced to
cross-compile GStreamer 1.12.4 with clang for Android ARM v7a

We now have a set of bash scripts which accomplish this task, in case
anyone else is interested.

There are several caveats:

1) We've only tested the build scripts on Linux, specifically the
OpenSuse and Centos distros, as that's the environments we work in. We
don't support either Mac or Windows builds.

2) We don't build everything. In particular, we only ported the
minimal set of libraries needed to support all of the elements that we
use, but the framework is now in place for adding more libraries.

3) We've only tested cross compiling to ARM7, although it should be
relatively easy to change the target.

4) We have custom patches in place to support the conversion. Some fix
issues in the libraries, but others are unoffical bug fixes or new
features for some of the elements we rely on. You will probably want
to strip them out.

5) We only compile down to the individual libraries. Pulling them
altogether and linking them with gstreamer_android.c is something we
left up to Android Studio, for maximum flexibility, but we can supply
our Android.mk file for building the final library.

I don't know if these scripts will be of use to anyone else, but it
took a few months of development and testing to get them working, so
we're willing to release them, with minimal documentation or
handholding.

So, this is far from a final solution, but if someone needs a
quick-and-dirty clang conversion for gstreamer, here it is.

--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Edward Hervey-4
Hi,

  You forgot to provide a link ?

    Edward

On Thu, 2018-06-07 at 12:56 -0400, Stirling Westrup wrote:

> As part of our development work on Android, we were forced to
> cross-compile GStreamer 1.12.4 with clang for Android ARM v7a
>
> We now have a set of bash scripts which accomplish this task, in case
> anyone else is interested.
>
> There are several caveats:
>
> 1) We've only tested the build scripts on Linux, specifically the
> OpenSuse and Centos distros, as that's the environments we work in.
> We
> don't support either Mac or Windows builds.
>
> 2) We don't build everything. In particular, we only ported the
> minimal set of libraries needed to support all of the elements that
> we
> use, but the framework is now in place for adding more libraries.
>
> 3) We've only tested cross compiling to ARM7, although it should be
> relatively easy to change the target.
>
> 4) We have custom patches in place to support the conversion. Some
> fix
> issues in the libraries, but others are unoffical bug fixes or new
> features for some of the elements we rely on. You will probably want
> to strip them out.
>
> 5) We only compile down to the individual libraries. Pulling them
> altogether and linking them with gstreamer_android.c is something we
> left up to Android Studio, for maximum flexibility, but we can supply
> our Android.mk file for building the final library.
>
> I don't know if these scripts will be of use to anyone else, but it
> took a few months of development and testing to get them working, so
> we're willing to release them, with minimal documentation or
> handholding.
>
> So, this is far from a final solution, but if someone needs a
> quick-and-dirty clang conversion for gstreamer, here it is.
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Stirling Westrup
There isn't a public link yet. I was trying to judge if there was
enough interest that I should clean up what I have, create a new
github instance, and upload it.


On Fri, Jun 8, 2018 at 1:10 AM, Edward Hervey <[hidden email]> wrote:

> Hi,
>
>   You forgot to provide a link ?
>
>     Edward
>
> On Thu, 2018-06-07 at 12:56 -0400, Stirling Westrup wrote:
>> As part of our development work on Android, we were forced to
>> cross-compile GStreamer 1.12.4 with clang for Android ARM v7a
>>
>> We now have a set of bash scripts which accomplish this task, in case
>> anyone else is interested.
>>
>> There are several caveats:
>>
>> 1) We've only tested the build scripts on Linux, specifically the
>> OpenSuse and Centos distros, as that's the environments we work in.
>> We
>> don't support either Mac or Windows builds.
>>
>> 2) We don't build everything. In particular, we only ported the
>> minimal set of libraries needed to support all of the elements that
>> we
>> use, but the framework is now in place for adding more libraries.
>>
>> 3) We've only tested cross compiling to ARM7, although it should be
>> relatively easy to change the target.
>>
>> 4) We have custom patches in place to support the conversion. Some
>> fix
>> issues in the libraries, but others are unoffical bug fixes or new
>> features for some of the elements we rely on. You will probably want
>> to strip them out.
>>
>> 5) We only compile down to the individual libraries. Pulling them
>> altogether and linking them with gstreamer_android.c is something we
>> left up to Android Studio, for maximum flexibility, but we can supply
>> our Android.mk file for building the final library.
>>
>> I don't know if these scripts will be of use to anyone else, but it
>> took a few months of development and testing to get them working, so
>> we're willing to release them, with minimal documentation or
>> handholding.
>>
>> So, this is far from a final solution, but if someone needs a
>> quick-and-dirty clang conversion for gstreamer, here it is.
>>



--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Sebastian Dröge-3
Hi Stirling,

On Fri, 2018-06-08 at 11:14 -0400, Stirling Westrup wrote:
> There isn't a public link yet. I was trying to judge if there was
> enough interest that I should clean up what I have, create a new
> github instance, and upload it.

There is, there's even a bug about that already:
  https://bugzilla.gnome.org/show_bug.cgi?id=759737

Can you link your results there too when you publish them? Would be
good to move forward with that and stop using gcc on Android.

--
Sebastian Dröge, Centricular Ltd · https://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (981 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Stirling Westrup
Sorry for the long delay, but I was on vacation. I'm back now, and as
there is interest, I'll work on putting stuff up on github. I'll let
you all know when its done.


On Fri, Jun 8, 2018 at 11:19 AM, Sebastian Dröge
<[hidden email]> wrote:

> Hi Stirling,
>
> On Fri, 2018-06-08 at 11:14 -0400, Stirling Westrup wrote:
>> There isn't a public link yet. I was trying to judge if there was
>> enough interest that I should clean up what I have, create a new
>> github instance, and upload it.
>
> There is, there's even a bug about that already:
>   https://bugzilla.gnome.org/show_bug.cgi?id=759737
>
> Can you link your results there too when you publish them? Would be
> good to move forward with that and stop using gcc on Android.
>
> --
> Sebastian Dröge, Centricular Ltd · https://www.centricular.com



--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Stirling Westrup
Okay, I've finally gotten the time needed to finish the cleanup and
upload our work to github. You can find our port here:

https://github.com/swestrup/gstreamer_clang


On Tue, Jun 26, 2018 at 11:41 AM, Stirling Westrup <[hidden email]> wrote:

> Sorry for the long delay, but I was on vacation. I'm back now, and as
> there is interest, I'll work on putting stuff up on github. I'll let
> you all know when its done.
>
>
> On Fri, Jun 8, 2018 at 11:19 AM, Sebastian Dröge
> <[hidden email]> wrote:
>> Hi Stirling,
>>
>> On Fri, 2018-06-08 at 11:14 -0400, Stirling Westrup wrote:
>>> There isn't a public link yet. I was trying to judge if there was
>>> enough interest that I should clean up what I have, create a new
>>> github instance, and upload it.
>>
>> There is, there's even a bug about that already:
>>   https://bugzilla.gnome.org/show_bug.cgi?id=759737
>>
>> Can you link your results there too when you publish them? Would be
>> good to move forward with that and stop using gcc on Android.
>>
>> --
>> Sebastian Dröge, Centricular Ltd · https://www.centricular.com
>
>
>
> --
> Stirling Westrup
> Programmer, Entrepreneur.
> https://www.linkedin.com/e/fpf/77228
> http://www.linkedin.com/in/swestrup
> http://technaut.livejournal.com
> http://sourceforge.net/users/stirlingwestrup



--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

David Ing
Stirling, nice job!

I checked out the LICENSE file in your repo and it looks like GPL which I think is not the gstreamer license.  You probably meant to go with LGPL.

If you go with GPL, then it creates a barrier that prevents many people from using your work (and perhaps collaborating on it). 

LGPL removes that barrier.

On Wed, Jul 4, 2018 at 1:18 PM, Stirling Westrup <[hidden email]> wrote:
Okay, I've finally gotten the time needed to finish the cleanup and
upload our work to github. You can find our port here:

https://github.com/swestrup/gstreamer_clang


On Tue, Jun 26, 2018 at 11:41 AM, Stirling Westrup <[hidden email]> wrote:
> Sorry for the long delay, but I was on vacation. I'm back now, and as
> there is interest, I'll work on putting stuff up on github. I'll let
> you all know when its done.
>
>
> On Fri, Jun 8, 2018 at 11:19 AM, Sebastian Dröge
> <[hidden email]> wrote:
>> Hi Stirling,
>>
>> On Fri, 2018-06-08 at 11:14 -0400, Stirling Westrup wrote:
>>> There isn't a public link yet. I was trying to judge if there was
>>> enough interest that I should clean up what I have, create a new
>>> github instance, and upload it.
>>
>> There is, there's even a bug about that already:
>>   https://bugzilla.gnome.org/show_bug.cgi?id=759737
>>
>> Can you link your results there too when you publish them? Would be
>> good to move forward with that and stop using gcc on Android.
>>
>> --
>> Sebastian Dröge, Centricular Ltd · https://www.centricular.com
>
>
>
> --
> Stirling Westrup
> Programmer, Entrepreneur.
> https://www.linkedin.com/e/fpf/77228
> http://www.linkedin.com/in/swestrup
> http://technaut.livejournal.com
> http://sourceforge.net/users/stirlingwestrup



--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Joel Winarske-2
I have a CMake file that does this.  I think a better solution than bash script files.

It's used for building the Alexa Client sample app for Android.

If there is enough interest I'll check it in to my GitHub account.


Joel Winarske

On Thu, Jul 5, 2018, 4:03 AM David Ing <[hidden email]> wrote:
Stirling, nice job!

I checked out the LICENSE file in your repo and it looks like GPL which I think is not the gstreamer license.  You probably meant to go with LGPL.

If you go with GPL, then it creates a barrier that prevents many people from using your work (and perhaps collaborating on it). 

LGPL removes that barrier.

On Wed, Jul 4, 2018 at 1:18 PM, Stirling Westrup <[hidden email]> wrote:
Okay, I've finally gotten the time needed to finish the cleanup and
upload our work to github. You can find our port here:

https://github.com/swestrup/gstreamer_clang


On Tue, Jun 26, 2018 at 11:41 AM, Stirling Westrup <[hidden email]> wrote:
> Sorry for the long delay, but I was on vacation. I'm back now, and as
> there is interest, I'll work on putting stuff up on github. I'll let
> you all know when its done.
>
>
> On Fri, Jun 8, 2018 at 11:19 AM, Sebastian Dröge
> <[hidden email]> wrote:
>> Hi Stirling,
>>
>> On Fri, 2018-06-08 at 11:14 -0400, Stirling Westrup wrote:
>>> There isn't a public link yet. I was trying to judge if there was
>>> enough interest that I should clean up what I have, create a new
>>> github instance, and upload it.
>>
>> There is, there's even a bug about that already:
>>   https://bugzilla.gnome.org/show_bug.cgi?id=759737
>>
>> Can you link your results there too when you publish them? Would be
>> good to move forward with that and stop using gcc on Android.
>>
>> --
>> Sebastian Dröge, Centricular Ltd · https://www.centricular.com
>
>
>
> --
> Stirling Westrup
> Programmer, Entrepreneur.
> https://www.linkedin.com/e/fpf/77228
> http://www.linkedin.com/in/swestrup
> http://technaut.livejournal.com
> http://sourceforge.net/users/stirlingwestrup



--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Stirling Westrup
In reply to this post by David Ing
The license file is a copy of the COPYING file from GStreamer itself.
The intent was to use the same license, but you're right, as a
derivative work, it may want a more relaxed license.


On Wed, Jul 4, 2018 at 10:00 PM, David Ing <[hidden email]> wrote:

> Stirling, nice job!
>
> I checked out the LICENSE file in your repo and it looks like GPL which I
> think is not the gstreamer license.  You probably meant to go with LGPL.
>
> If you go with GPL, then it creates a barrier that prevents many people from
> using your work (and perhaps collaborating on it).
>
> LGPL removes that barrier.
>
> On Wed, Jul 4, 2018 at 1:18 PM, Stirling Westrup <[hidden email]> wrote:
>>
>> Okay, I've finally gotten the time needed to finish the cleanup and
>> upload our work to github. You can find our port here:
>>
>> https://github.com/swestrup/gstreamer_clang
>>
>>
>> On Tue, Jun 26, 2018 at 11:41 AM, Stirling Westrup <[hidden email]>
>> wrote:
>> > Sorry for the long delay, but I was on vacation. I'm back now, and as
>> > there is interest, I'll work on putting stuff up on github. I'll let
>> > you all know when its done.
>> >
>> >
>> > On Fri, Jun 8, 2018 at 11:19 AM, Sebastian Dröge
>> > <[hidden email]> wrote:
>> >> Hi Stirling,
>> >>
>> >> On Fri, 2018-06-08 at 11:14 -0400, Stirling Westrup wrote:
>> >>> There isn't a public link yet. I was trying to judge if there was
>> >>> enough interest that I should clean up what I have, create a new
>> >>> github instance, and upload it.
>> >>
>> >> There is, there's even a bug about that already:
>> >>   https://bugzilla.gnome.org/show_bug.cgi?id=759737
>> >>
>> >> Can you link your results there too when you publish them? Would be
>> >> good to move forward with that and stop using gcc on Android.
>> >>
>> >> --
>> >> Sebastian Dröge, Centricular Ltd · https://www.centricular.com
>> >
>> >
>> >
>> > --
>> > Stirling Westrup
>> > Programmer, Entrepreneur.
>> > https://www.linkedin.com/e/fpf/77228
>> > http://www.linkedin.com/in/swestrup
>> > http://technaut.livejournal.com
>> > http://sourceforge.net/users/stirlingwestrup
>>
>>
>>
>> --
>> Stirling Westrup
>> Programmer, Entrepreneur.
>> https://www.linkedin.com/e/fpf/77228
>> http://www.linkedin.com/in/swestrup
>> http://technaut.livejournal.com
>> http://sourceforge.net/users/stirlingwestrup
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>



--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Stirling Westrup
In reply to this post by Joel Winarske-2
On Thu, Jul 5, 2018 at 3:32 AM, Joel Winarske <[hidden email]> wrote:
> I have a CMake file that does this.  I think a better solution than bash
> script files.
>
> It's used for building the Alexa Client sample app for Android.
>
> If there is enough interest I'll check it in to my GitHub account.
>

Is there any chance of integrating it into the build system I put
together? The only real reason I didn't use CMake is that
I couldn't figure out how to make it cross-compile reliably.





--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

Joel Winarske-2
I already have an Alexa stack using CMake in which GStreamer is a dependency.  It's a matter of using the Android toolchain file, and passing the proper variables.  The build depency can be a universal GStreamer build, or specific machine architecture.

I'll take a look at what you have over the weekend.


Joel Winarske

On Thu, Jul 5, 2018, 4:05 PM Stirling Westrup <[hidden email]> wrote:
On Thu, Jul 5, 2018 at 3:32 AM, Joel Winarske <[hidden email]> wrote:
> I have a CMake file that does this.  I think a better solution than bash
> script files.
>
> It's used for building the Alexa Client sample app for Android.
>
> If there is enough interest I'll check it in to my GitHub account.
>

Is there any chance of integrating it into the build system I put
together? The only real reason I didn't use CMake is that
I couldn't figure out how to make it cross-compile reliably.





--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Clang port of GStreamer 1.12.4 to Android

David Ing
Joel & Stirling,

I wanted to let you know that I am interested in any work as it relates to Clang + Gstreamer.  I am also interested in Joel's cmake solution.  I sincerely appreciate any public repos that you can create to document your efforts.

I will be looking at Gstreamer + Clang in about 9 months from now (I'm not there yet).  I am likely to use a cmake solution if Joel's is available, otherwise I will probably try to pythonize Stirling's shell scripts.

Thanks for all your efforts thus far.

On Thu, Jul 5, 2018 at 11:38 AM, Joel Winarske <[hidden email]> wrote:
I already have an Alexa stack using CMake in which GStreamer is a dependency.  It's a matter of using the Android toolchain file, and passing the proper variables.  The build depency can be a universal GStreamer build, or specific machine architecture.

I'll take a look at what you have over the weekend.


Joel Winarske

On Thu, Jul 5, 2018, 4:05 PM Stirling Westrup <[hidden email]> wrote:
On Thu, Jul 5, 2018 at 3:32 AM, Joel Winarske <[hidden email]> wrote:
> I have a CMake file that does this.  I think a better solution than bash
> script files.
>
> It's used for building the Alexa Client sample app for Android.
>
> If there is enough interest I'll check it in to my GitHub account.
>

Is there any chance of integrating it into the build system I put
together? The only real reason I didn't use CMake is that
I couldn't figure out how to make it cross-compile reliably.





--
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel