Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Thu 11 Feb 2016, 06:54
All times are UTC - 4
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Multimedia
mpv media player for Precise Puppy, tahrpup, Slacko
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [13 Posts]  
Author Message
jlst

Joined: 23 Nov 2012
Posts: 144

PostPosted: Tue 04 Aug 2015, 23:19    Post subject:  mpv media player for Precise Puppy, tahrpup, Slacko  

Tested in:
- Precise Puppy 5.7.1
- tahrpup
- Slacko Puppy 5.7 (needs the attached file)

Download: mpv-20150814-git-i686-precise.pet

mpv is a modern media player.

Website: http://mpv.io
Manual: http://mpv.io/manual/master/

This brings an enormous update specially to Precise Puppy, with full support for x264 10bit, vp9 and x265 among other new formats.

-----------------------------------------------

To play cd audio: #mpv cdda://1
To play dvds : #mpv dvd://1
To play bds: #mpv bd://1

In conjuction with youtube-dl it can also play youtube videos (youtube-dl must be installed):
mpv https://www.youtube.com/watch?v=73nMvmrfSuQ
mpvdeps-1.0-4slacko.pet
Description  libva and libvdpau taken from precise puppy (tiny libs)
pet

 Download 
Filename  mpvdeps-1.0-4slacko.pet 
Filesize  55.11 KB 
Downloaded  46 Time(s) 

Last edited by jlst on Tue 18 Aug 2015, 16:13; edited 15 times in total
Back to top
View user's profile Send private message 
musher0


Joined: 04 Jan 2009
Posts: 6840
Location: Gatineau (Qc), Canada

PostPosted: Wed 05 Aug 2015, 02:46    Post subject:  

Thanks for this, jlst.
_________________
musher0
/ Torture, according to Dostoievsky: "To only have enough intelligence to know that you're lacking in it."
/ La torture, d'après Dostoïevski : "Être juste assez intelligent pour savoir qu'on ne l'est pas assez."
Back to top
View user's profile Send private message Visit poster's website 
jplt


Joined: 12 Nov 2010
Posts: 275
Location: Terre

PostPosted: Wed 05 Aug 2015, 03:34    Post subject:  

Hi,

i installed the mpv pet in precise puppy when i launch it i have this error :

Code:
mpv: error while loading shared libraries: libexpat.so: cannot open shared object file: No such file or directory

_________________
Precise 5.7.1
Back to top
View user's profile Send private message 
jlst

Joined: 23 Nov 2012
Posts: 144

PostPosted: Wed 05 Aug 2015, 09:14    Post subject:  

jplt wrote:
Hi,

i installed the mpv pet in precise puppy when i launch it i have this error :

Code:
mpv: error while loading shared libraries: libexpat.so: cannot open shared object file: No such file or directory

I tested this binary in a clean Precise 5.7.1 and Precise 5.7.1 Retro... no errors.

But I see why you're having that error, try this
Code:
ln -sv libexpat.so.1 /lib/libexpat.so


If that doesn't work, then
ln -sv libexpat.so.1 /usr/lib/libexpat.so

Or download the file I attached. Next time I build this I'll add a static libexpat, and perhaps a few other static libs...
expat-2.1.0-i686-precise.pet
Description 
pet

 Download 
Filename  expat-2.1.0-i686-precise.pet 
Filesize  54.34 KB 
Downloaded  60 Time(s) 
Back to top
View user's profile Send private message 
musher0


Joined: 04 Jan 2009
Posts: 6840
Location: Gatineau (Qc), Canada

PostPosted: Wed 05 Aug 2015, 16:09    Post subject:  

Hello, jlst.

Could you please give us an example of a command line to play a movie on
dvd from /dev/dvd or /dev/sr1 with mpv? It would be much appreciated.

Thanks in advance.

musher0

_________________
musher0
/ Torture, according to Dostoievsky: "To only have enough intelligence to know that you're lacking in it."
/ La torture, d'après Dostoïevski : "Être juste assez intelligent pour savoir qu'on ne l'est pas assez."
Back to top
View user's profile Send private message Visit poster's website 
jlst

Joined: 23 Nov 2012
Posts: 144

PostPosted: Wed 05 Aug 2015, 16:32    Post subject:  

It does play DVDs, try with:

mpv /dev/dvd
mpv /dev/sr0

Last edited by jlst on Wed 05 Aug 2015, 16:39; edited 2 times in total
Back to top
View user's profile Send private message 
jlst

Joined: 23 Nov 2012
Posts: 144

PostPosted: Wed 05 Aug 2015, 16:35    Post subject:  

Right now there's no CD or Bluray support, I'm compiling static libs of the latest releases of libcdio, libdvdcss, libdvdread, libdvdnav, libbluray, uchardet, libenca, etc... This increseases complexity and will possibly make my next build fail.
Back to top
View user's profile Send private message 
jlst

Joined: 23 Nov 2012
Posts: 144

PostPosted: Wed 05 Aug 2015, 22:47    Post subject:  

*Update*
Back to top
View user's profile Send private message 
step

Joined: 04 May 2012
Posts: 500

PostPosted: Thu 06 Aug 2015, 02:45    Post subject:
Subject description: Fatdog64-701
 

I would like to try compiling mpv static for Fatog64-701. Would you please publish your build configuration and the exact list of source links to be downloaded (not simply links to project homepages) for all libraries involved?
No pressure, whenever, if you can. Thanks.

_________________
Fatdog64-701|+Packages|Findnrun|+forum|OpenMediaVault
Back to top
View user's profile Send private message 
jlst

Joined: 23 Nov 2012
Posts: 144

PostPosted: Thu 06 Aug 2015, 09:56    Post subject:
Subject description: Fatdog64-701
 

step wrote:
I would like to try compiling mpv static for Fatog64-701. Would you please publish your build configuration and the exact list of source links to be downloaded (not simply links to project homepages) for all libraries involved?
No pressure, whenever, if you can. Thanks.

Yes, here is the script I use, I keep editing it every time I compile something.. it's about 450 lines (17kb), it used be 600.

I use it to compile static versions of ffmpeg and mpv.

You have to be very careful and edit it according to your needs.

First try putting and 'exit' command after each step to make sure the static libs are compiled.

I commented out the openssl part, because it did not obey the settings, but you can enable that part, compile and then copy the resulting lib/include dirs to the build directory. Then disable it again.

It's a huge and painful work..

Last edited by jlst on Thu 06 Aug 2015, 23:26; edited 1 time in total
Back to top
View user's profile Send private message 
step

Joined: 04 May 2012
Posts: 500

PostPosted: Thu 06 Aug 2015, 20:49    Post subject:
Subject description: Fatdog64-701
 

Thanks!
jlst wrote:

Yes, here is the script I use, I keep editing it every time I compile something.. it's about 450 lines (17kb), it used be 600.

I use it to compile static versions of ffmpeg and mpv.

You have to be very careful and edit it according to your needs.

First try putting and 'exit' command after each step to make sure the static libs are compiled.

I used bash -e instead of 'exit'
Quote:

I commented out the openssl part, because it did not obey the settings, but you can enable that part, compile and then copy the resulting lib/include dirs to the build directory. Then disable it again.
I'm thinking I will keep libssl shared, as it keeps being patched for new exploits...
Quote:

It's a huge and painful work..
Actually, it was less of a pain for me, just because I leveraged all your work! I was able to compile it on Fatdog64 and it works (more testing needed).
However, did you notice that when the script is calling waf to build the mpv binary there is apparently no way to tell waf to link against the shared libs? I mean, setting LD_LIBRARIES_PATH is irrelevant, waf needs additional configuration.
On my system I have shared versions of libexpat and libjpeg. They remain shared in the mpv binary that waf produces, even though there are static versions of libexpat and libjpeg in the build/lib directory. I checked that is the case with ldd sources/mpv/build/mpv.
I ran the same ldd command on the mpv binary extracted from your .pet file and libexpat is shared rather that static - libjpeg is static.

I patched the script in a few places, I think they will benefit you too. See attached tar.gz.

I also tried to fix the waf configuration with its own patch labelled PATCH1 in the script. PATCH1 works, meaning it modifies the waf script, but the new waf script still doesn't link all static libraries as it should. I suspect I didn't interpret correctly waf documentation on how to link static libraries - it's in section 10.3.3 of the "waf book" (see URL in the attached script). I have no previous experience with waf and the documentation is somewhat lacking. Note that PATCH1 is applied after git cloning only.

Another way to link all static libraries is to rename the dynamic libraries temporarily, in my case libjpeg and libexpat, in your case just libexpat. I didn't do it in the attached script, but you could.

edit: attached obsolete script removed per jlst's request

_________________
Fatdog64-701|+Packages|Findnrun|+forum|OpenMediaVault

Last edited by step on Fri 07 Aug 2015, 02:49; edited 1 time in total
Back to top
View user's profile Send private message 
jlst

Joined: 23 Nov 2012
Posts: 144

PostPosted: Thu 06 Aug 2015, 23:09    Post subject:
Subject description: Fatdog64-701
 

step wrote:

I patched the script in a few places, I think they will benefit you too. See attached tar.gz.

Thanks for the advice, I'll look into it.

By the way, I just noticed I made an unforgivable mistake. Damn, this affects the whole project... that should be the reason some packages fail to build correctly (like libxml2), it also trigger warnings in some packages that may or may not compile. It also must be the cause of misdetection of some static libraries in the build directory.unforgivable

This:
Code:
sed -i "s|^libdir=.*|prefix=${BUILDDIR}|" ${BUILDDIR}/lib/*.la


Should be:
Code:
sed -i "s|^libdir=.*|libdir=${BUILDDIR}/lib|" ${BUILDDIR}/lib/*.la


To fix an existing "project" you must add this line too:
Code:
sed -i "s|^prefix=.*|libdir=${BUILDDIR}/lib|" ${BUILDDIR}/lib/*.la


Well, I've been modifying the script for my next build, so I upload it again with this critical fix.
ffmpeg_project.sh.tar.gz
Description 
gz

 Download 
Filename  ffmpeg_project.sh.tar.gz 
Filesize  3.78 KB 
Downloaded  33 Time(s) 
Back to top
View user's profile Send private message 
step

Joined: 04 May 2012
Posts: 500

PostPosted: Fri 07 Aug 2015, 12:32    Post subject:
Subject description: modified script, mostly of interest for waf script patch code
 

I rewrote my waf PATCH1 code and now I'm positive it does what it's supposed to do, adding linker options that force linking the static versions of the libraries. However, there's an exception. If a dynamic library depends on the dynamic version of a static library, the linker will pull in the _dynamic_ dependency. There is apparently no way around this. That is the reason for the static versions of libexpat and libjpeg to be ignored on Fatdog64 when mpv gets linked. Ultimately, this isn't a problem at all.

I'm attaching my changes here, mostly of interest for the code that patches the waf build script, see shell function PATCH1().
ffmpeg_project.tar.gz
Description 
gz

 Download 
Filename  ffmpeg_project.tar.gz 
Filesize  4.64 KB 
Downloaded  43 Time(s) 

_________________
Fatdog64-701|+Packages|Findnrun|+forum|OpenMediaVault
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [13 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Advanced Topics » Additional Software (PETs, n' stuff) » Multimedia
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0599s ][ Queries: 12 (0.0054s) ][ GZIP on ]