NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Thomas Frohwein
Hi ports@,

Attached are two ports that fulfill the same function in FNA games, but are used
in different products: libtheoraplay and libtheorafile. Both are essentially
small libraries that are called by those games for Ogg Theora videoplayback.

I've found the following FNA games than use these libraries and tested that they
run with them:

libtheoraplay - A Virus Named TOM, Bleed, Capsized, FEZ, HackNet, Overdriven
                Reloaded, Paladin, Skulls of the Shogun, and Towerfall:
                Ascension

libtheorafile - Bleed 2, Dust: An Elysian Tail, Hidden in Plain Sight, Owlboy

Both ports come with a test folder with a script or target to compile a binary
that can play Ogg Theora files (.ogv) for testing purposes. Since this is
interactive and no example .ogv files are provided, I set NO_TEST = Yes.
Instructions on how to test are as comment in the Makefile above the NO_TEST
line.

With these 2 ports (+ SDL2 + vorbis), almost all FNA games that have a DRM-free
version can be played on OpenBSD, with the only barrier being the mono port that
must be manually compiled at the moment. There is a script on
https://github.com/thfrwn/fnaify that can configure the games for you to find
the proper libraries and move packaged mono dll's out of the way.

libtheoraplay.tgz (2K) Download Attachment
libtheorafile.tgz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Thomas Frohwein
ping

On Sun, Jan 21, 2018 at 07:29:06PM -0800, Thomas Frohwein wrote:

> Hi ports@,
>
> Attached are two ports that fulfill the same function in FNA games, but are used
> in different products: libtheoraplay and libtheorafile. Both are essentially
> small libraries that are called by those games for Ogg Theora videoplayback.
>
> I've found the following FNA games than use these libraries and tested that they
> run with them:
>
> libtheoraplay - A Virus Named TOM, Bleed, Capsized, FEZ, HackNet, Overdriven
> Reloaded, Paladin, Skulls of the Shogun, and Towerfall:
> Ascension
>
> libtheorafile - Bleed 2, Dust: An Elysian Tail, Hidden in Plain Sight, Owlboy
>
> Both ports come with a test folder with a script or target to compile a binary
> that can play Ogg Theora files (.ogv) for testing purposes. Since this is
> interactive and no example .ogv files are provided, I set NO_TEST = Yes.
> Instructions on how to test are as comment in the Makefile above the NO_TEST
> line.
>
> With these 2 ports (+ SDL2 + vorbis), almost all FNA games that have a DRM-free
> version can be played on OpenBSD, with the only barrier being the mono port that
> must be manually compiled at the moment. There is a script on
> https://github.com/thfrwn/fnaify that can configure the games for you to find
> the proper libraries and move packaged mono dll's out of the way.



libtheorafile.tgz (2K) Download Attachment
libtheoraplay.tgz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Anthony J. Bentley-4
Thomas Frohwein writes:
> ping

For libtheoraplay:

 - Breaks if CFLAGS is set in mk.conf. No need to add to CFLAGS, just
   add -shared and -I to do-build directly
 - Ditto for LDFLAGS
 - Nit: it's okay and often looks better for variable assignments to
   have different indentation levels to avoid wrapping and excessive
   whitespace in the center

Fix CFLAGS and it's ok with me.

Also:

 - libtheorafile doesn't respect CFLAGS

Fix that and it's ok with me.

Reply | Threaded
Open this post in threaded view
|

Re: NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Thomas Frohwein
In reply to this post by Thomas Frohwein
Thanks for feedback from bentley@

- moved flags out of CFLAGS/LDFLAGS for libtheoraplay to not mess with mk.conf
- removed TMI from libtheoraplay/pkg/DESCR
- made libtheorafile honor CFLAGS and LDFLAGS (will send PR to upstream)
- make indent white space of variable assignments more economical
- both packages build and run (libtheoraplay in A Virus Named TOM, libtheoraplay
  with the test target in ${WRKSRC}/Makefile and local .ogv file. portcheck
  passes

Attached new versions - any takers?

libtheoraplay.tgz (2K) Download Attachment
libtheorafile.tgz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Stuart Henderson
On 2018/02/13 10:09, Thomas Frohwein wrote:

> Thanks for feedback from bentley@
>
> - moved flags out of CFLAGS/LDFLAGS for libtheoraplay to not mess with mk.conf
> - removed TMI from libtheoraplay/pkg/DESCR
> - made libtheorafile honor CFLAGS and LDFLAGS (will send PR to upstream)
> - make indent white space of variable assignments more economical
> - both packages build and run (libtheoraplay in A Virus Named TOM, libtheoraplay
>   with the test target in ${WRKSRC}/Makefile and local .ogv file. portcheck
>   passes
>
> Attached new versions - any takers?


Bad distfile name for libtheoraplay, please use the
DISTFILES=sensible-name-1.00{commithash}${EXTRACT_SUFX} mechanism to
rename it.

theorafile, it's down to personal preference, but instead of patching for
"TARGET = so.${LIBtheorafile_VERSION}" you might find it nicer to override
directly like "MAKE_FLAGS = TARGET=so.${LIBtheorafile_VERSION}".

Reply | Threaded
Open this post in threaded view
|

Re: NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Thomas Frohwein
On Tue, Feb 13, 2018 at 09:21:48PM +0000, Stuart Henderson wrote:
> Bad distfile name for libtheoraplay, please use the
> DISTFILES=sensible-name-1.00{commithash}${EXTRACT_SUFX} mechanism to
> rename it.

Upstream unfortunately doesn't do real versions, only number of the
changeset. Question is if it's better to use whatever version numbering
upstream uses and stay close to upstream, or to create our OpenBSD version like
it's done e.g. with library versions? I used changeset number in mojoshader
before, but would like to know if there's a preference in such a case.

Attached port is with libtheoraplay-${HG_CHANGESET}{${HG_COMMIT}}${EXTRACT_SUFX}

> theorafile, it's down to personal preference, but instead of patching for
> "TARGET = so.${LIBtheorafile_VERSION}" you might find it nicer to override
> directly like "MAKE_FLAGS = TARGET=so.${LIBtheorafile_VERSION}".

I agree with your approach. Think it's better to have this clearly visible in
the Makefile. Changed it and attached new version.

Any takers in this form?

libtheoraplay.tgz (2K) Download Attachment
libtheorafile.tgz (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: libtheoraplay & libtheorafile - ports for videoplayback in FNA games

Stuart Henderson
On 2018/02/19 18:05, Thomas Frohwein wrote:

> On Tue, Feb 13, 2018 at 09:21:48PM +0000, Stuart Henderson wrote:
> > Bad distfile name for libtheoraplay, please use the
> > DISTFILES=sensible-name-1.00{commithash}${EXTRACT_SUFX} mechanism to
> > rename it.
>
> Upstream unfortunately doesn't do real versions, only number of the
> changeset. Question is if it's better to use whatever version numbering
> upstream uses and stay close to upstream, or to create our OpenBSD version like
> it's done e.g. with library versions? I used changeset number in mojoshader
> before, but would like to know if there's a preference in such a case.
>
> Attached port is with libtheoraplay-${HG_CHANGESET}{${HG_COMMIT}}${EXTRACT_SUFX}

That makes sense, main thing is to give the distfile some name
associated with the port.

Alternative would be libtheoraplay-${HG_COMMIT}{${HG_COMMIT}}${EXTRACT_SUFX}
but I think what you have is fine.

> > theorafile, it's down to personal preference, but instead of patching for
> > "TARGET = so.${LIBtheorafile_VERSION}" you might find it nicer to override
> > directly like "MAKE_FLAGS = TARGET=so.${LIBtheorafile_VERSION}".
>
> I agree with your approach. Think it's better to have this clearly visible in
> the Makefile. Changed it and attached new version.
>
> Any takers in this form?

import is OK sthen@.