pUPnGO - 6Mb ISO - Basic Building Block Puplet

A home for all kinds of Puppy related projects
Message
Author
User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#661 Post by technosaurus »

here is a patch for mplayer - they seem to have broken the gtk1 gui a while back
Attachments
mplayer-gtk1-gui.patch.gz
(1.04 KiB) Downloaded 642 times
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#662 Post by goingnuts »

Thanks for the patch. I am still not able to build a static mplayer - that is: I can build it but it only shows a 2 cm broad band with psychedelic colors in the top of my screen when playing...
There is gxine-0.2.1 as alternative - but I never managed to do a static xinelib that works.
Found a third way - a pre xine lib - but cant find my notes or remember the name. I think it was in one of the first puppys or maybe in a pre-puppy thing...
Would be nice to have a decent videoplayer....
Update: the name was xanim: http://xanim.polter.net/
Although it compiles I haven't been able to play anything with it...

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#663 Post by goingnuts »

Found a small net traffic sniffer: dietsniff-0.4
Amazing to view what traffic goes behind the scene...
Attachments
snap0006.png
(15.87 KiB) Downloaded 1614 times
dietsniff-0.4-i486.pet
(14.21 KiB) Downloaded 600 times

Ibidem
Posts: 549
Joined: Wed 26 May 2010, 03:31
Location: State of Jefferson

#664 Post by Ibidem »

Ibidem wrote:I've dug up the nroff patch. Not bothering to attach the original, since it's hopelessly ancient...

And yes, it does have bad formatting.
Oops...it doesn't have nroff.c

It took a couple small changes to get it going with bb current (_BB_* ->BB_*, and usage is now in a comment within the applet).

If you need an older BB, the nroff.c here should still work.
Other than build fixes it's the same code.
Attachments
nroff.diff2.bz2
Properly prepared with diff -urN; updated for BB HEAD.
(14.91 KiB) Downloaded 574 times

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#665 Post by technosaurus »

goingnuts wrote:Thanks for the patch. I am still not able to build a static mplayer - that is: I can build it but it only shows a 2 cm broad band with psychedelic colors in the top of my screen when playing...
There is gxine-0.2.1 as alternative - but I never managed to do a static xinelib that works.
Found a third way - a pre xine lib - but cant find my notes or remember the name. I think it was in one of the first puppys or maybe in a pre-puppy thing...
Would be nice to have a decent videoplayer....
Update: the name was xanim: http://xanim.polter.net/
Although it compiles I haven't been able to play anything with it...
sorry about that, the build takes a long time on my box and my cutdown static libraries were missing some encoding type symbols (it saves quite a bit to disable things like image output & compression and only read/decompress... but that was really leftovers from an experimentation to find out if it would be feasible to use a small shared lib for read/decode and static for write/encoding). I also found that there is not a large difference between tinyx11 and current if you simply remove the larger locales (just put a full version in a separate NLS pack.)
I'll take a look at gxine to see how hard it would be to patch a recent build, but iirc xanim supported few formats.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#666 Post by goingnuts »

Ibidem:Thanks!
technosaurus:A new mplayer (MPlayer 1.1) out - I will try to work a little with that one - although the configure options are more than 200 lines of possibilities - might get lost just trying to configure that beast!

Would be nice if there was a simple standalone avi-player and another simple mpg-player ala minimp3-player but I havent been able to track one...
Not sure if xine-lib can be build static at all?

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#667 Post by technosaurus »

The patch was against v1.1 ... I found it on ftp before the official release announcement :) and iirc the only options I passed were for enabling the GUI (i pass all of my CFLAGS in my gcc wrapper) the configure script worked fine, except my non-standard jpeg lib was missing encoding capability and I ran out of time to rebuild.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#668 Post by goingnuts »

Finally got xine-lib build and also gxine...but seems that xine-lib wont load plugins statically - so for now it seems as a no-go...

Mplayer-1.1 builds fine with normal glibc and dynamic linking. Video fails when linked static though. Did not manage to build it with uclibc/tinyX11.

But managed to "reproduce" a diet libc build of MPlayer 1.0pre7 with gcc 4.2.2. Ended up in 5847K (1927K upx) for mplayer and 4712K (1387K upx) for mencoder.

It plays mp3, avi, mpeg and dvd-isoimage/dvd in drive (dvd without sound :?: ) with the standard Xvesa in P412 but unfortunatly the static build (uclibc/tinyX11) Xvesa has some problems so I have to dig into that (plays ok fullscreen Xvesa but not in windowed mode).

I expect to be able to decrease size or add/remove filters/drivers/features if I manage to transfer the build to uclibc/tinyX11 as the diet-X11-libs are quite large.

Update 010612: Removed the attached bin view later post
Attachments
snap0009.png
video at console via mplayer & fbdev-driver
(106.23 KiB) Downloaded 1311 times
Last edited by goingnuts on Sun 01 Jul 2012, 14:55, edited 1 time in total.

Ibidem
Posts: 549
Joined: Wed 26 May 2010, 03:31
Location: State of Jefferson

#669 Post by Ibidem »

technosaurus wrote: The issues aren't necessarily with musl, but I am having to add a few includes here and there or add -D_GNU_SOURCE or similar, but I am just going to add those to my wrapper script and maybe every once in a while add a symlink for a missing include like io.h (but most are kernel headers that just got missed or were overwritten by glibc)

After I have done a run through all of the useful C libraries on this toolchain without threads and locales, I will do a try with a native toolchain and try them out. (I just wanted to minimize my patching on the first run - its less overwhelming that way)

*question???
What is the best way to get a disk image onto a really low resource computer using minimal ram/cpu, but also not really long or complicated. I was thinking of piping an xz compressed tarball of a filesystem image through dd. However I am hesitant to do it that way due to the possibility of broken pipes (the plumbing is not always in good in these old beasts)
finally remembered a couple things.
1- native binutils + gcc usually works better, as long as you kill gcc's "fixed" (automatically broken) includes. Be sure to prevent fixinc.sh from doing anything when you build gcc, or you will be wondering "what on earth broke that?"
also, configure binutils & gcc with --host=i?86-*-linux --target=i?86-*-linux - autodetect is broken and figures __ELF__ means glibc1 unless __GLIBC__ is 2.
glibc2 toolchains will work, but glibc1 only builds static binaries and they're slightly broken.
if you want C++, the libstdc++ config for linux-gnu or whatever they name it there must be replaced with generic (iirc, cd libstdc*/config; mv linux-gnu linux-glibc-only; ln -s linux-gnu generic -- I may be misremembering names, though)
2- why use an fs image, if you can boot linux? it's lighter to tar the root tree, untar, then chroot & configure. In fact, that's exactly how many installers work.
in many places, a disk image will have the wrong boot information.
you can split it up by tarring /bin /etc /usr/bin /usr/share and so on separately.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#670 Post by goingnuts »

Removed mplayer build from previous post.
New build MPlayer-1.0pre7_static_010712.tar.gz:
* Size reduced to 4798K (2081K upx)
* Included video via fbdev
* OSD-menu works (ex. mplayer -menu -subfont-text-scale 3 movie_file2play)
* Subtitles (ex. mplayer -sub subtitle_file movie_file2play)
* Sound works with dvd-play (ex. mplayer -alang en -slang da dvd://1)
* Shipped with some of the needed auxilary config-files

Code: Select all

Available video output drivers:
        xv      X11/Xv
        x11     X11 ( XImage/Shm )
        xover   General X11 driver for overlay capable video output drivers
        sdl     SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
        fbdev   Framebuffer Device
        fbdev2  Framebuffer Device
        vesa    VESA VBE 2.0 video output
        null    Null video output
        mpegpes Mpeg-PES file
        yuv4mpeg        yuv4mpeg output for mjpegtools
        tga     Targa output
        pnm     PPM/PGM/PGMYUV file
        md5sum  md5sum of each frame

Available audio output drivers:
        mpegpes Mpeg-PES audio output
        oss     OSS/ioctl audio output
        sdl     SDLlib audio output
        null    Null audio output
        pcm     RAW PCM/WAVE file writer audio output
Mplayer configured with:

Code: Select all

CC="diet gcc -nostdinc -nostdlib" CFLAGS="-Os -march=i386 -mtune=i386 -nostdinc -nostdlib -DTRANS_CLIENT -trigraphs" LDFLAGS=" -Wl,--gc-sections,--sort-common,-s " ./configure  --disable-gcc-checking --prefix=/opt/diet --confdir=/etc/mplayer --with-x11incdir=/opt/diet/include --with-x11libdir=/opt/diet/lib --with-extraincdir=/opt/diet/include --with-extralibdir=/opt/diet/lib --with-sdl-config=/opt/diet/bin/sdl-config   --with-freetype-config=/opt/diet/bin/freetype-config --disable-dshow --disable-real --disable-mmx2 --disable-mmx --disable-3dnow --disable-3dnowex --enable-static --disable-vidix --disable-live --enable-menu --disable-win32 --disable-dynamic-plugins
Attachments
MPlayer_diet_all.patch.gz
patch used - fake gz-file
(28.44 KiB) Downloaded 564 times
snap0010.png
(146.74 KiB) Downloaded 1260 times

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#671 Post by technosaurus »

today's puzzle:
I figured out this:

Code: Select all

#!/bin/ash
busybox wget -O - -U firefox "http://m.youtube.com/results?gl=US&client=mv-google&hl=en&q=$@&submit=Search" | awk '
/^<a href=\"rtsp/{printf "%s\t%s\t", $2, $5}
/^<a access/{$1="";$2="";$3="";print "Title=\"" $0 "\"" }'
#incomplete until I find a compatible rtsp streamer
...gives me the rtsp streaming url, screenshot and description of youtube videos matching $@ (args are passed to search and results parsed)
I could make a lightweight youtube browser, but can't find a working mplayer/vlc/ffplay/gxine... anyone know what version of any (if any) works on Google rtsp 1.0 streams?
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#672 Post by jamesbond »

technosaurus wrote:I could make a lightweight youtube browser, but can't find a working mplayer/vlc/ffplay/gxine... anyone know what version of any (if any) works on Google rtsp 1.0 streams?
ffmpeg 0.6.3 in Fatdog 521 works - it can fetch and display the tiny video from URLs produced by your script. It is configured like this:

Code: Select all

--prefix=/usr --libdir=/usr/lib64 --enable-postproc --enable-gpl --enable-nonfree --enable-version3 --enable-shared --enable-libfaac --enable-libx264 --enable-x11grab --enable-libxvid --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-libvorbis --enable-libtheora --enable-libmp3lame --enable-runtime-cpudetect --enable-pthreads --enable-swscale --extra-ldflags='--as-needed -L/usr/X11R7/lib' --enable-libopenjpeg --enable-libvpx --disable-debug
I noticed that the videos are contained in 3gp and uses h263 for video and amr for audio.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#673 Post by goingnuts »

jamesbond wrote: ffmpeg 0.6.3 in Fatdog 521 works - it can fetch and display the tiny video from URLs produced by your script.
I can confirm this works in P412 too - haven't tested audio but video works. ffmpeg 0.6.3 builds fine with uclibc. Just parsing

Code: Select all

 LD="/usr/i386-linux-uclibc/bin/i386-uclibc-ld" CC="/usr/i386-linux-uclibc/bin/i386-uclibc-gcc" CFLAGS="-pipe -Os -mtune=i386 -D_BSD_SOURCE -D_GNU_SOURCE" LDFLAGS="-static -Wl,--gc-sections,--sort-common,-s" ./configure
ends up in a 5880K static bin but that might me reduced by fine tuning to what is needed for this purpose.

Code: Select all

 ffmpeg  -i "rtsp://v3.cache5.c.youtube.com/CjgLENy73wIaLwlbFbiQveu_nRMYDSANFEIJbXYtZ29vZ2xlSARSB3Jlc3VsdHNg4diBq4H-qPxPDA==/0/0/0/video.3gp" test.avi
created video that played fine with mplayer...although you have to wait for the stream to end and after that play the created video in mplayer...

Any chance to get access to a bigger version of the videos...they are hard to view... :)

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#674 Post by technosaurus »

Thank-you guys, I'll keep looking though. I am pretty set on direct streaming. Iirc my vlc build handled YouTube at the time. I may try a new build based on my old vlc build settings (although I think they may be using xcb vs. X11 now)
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#675 Post by jamesbond »

I forgot to say that when I said "it works with ffmpeg" I actually mean that "it works with ffplay and ffmpeg".
From what little I know about vlc, vlc has rtsp input plugin too but you need to have openRTSP libraries installed - otherwise the plugin won't be compiled in.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#676 Post by goingnuts »

Now I got the GUI-part of mplayer working too but build grows to 6800K - whereof the 1000K comes via iconv - which can be disabled but that tends to exclude some sub-titles...Is there anyway to minimize the influence of iconv? Otherwise most stuff is working (dynamic load of dll´s, osd, dvd-play etc.)

I have been working on cleaning/modifying my tinyX11-source - attached the present status.

I have also looked at the Xvesa/Xfbdev source in order to get some of the extensions running (DPMS, MIT-SHM, RENDER, SHAPE, SYNC, TOG-CUP, XTEST and PANORAMIX). Present source attached as well as build of Xvesa/Xfbdev with the mentioned extensions build-in.
20130513: Removed attachments as forum does not support the size anymore
Last edited by goingnuts on Mon 13 May 2013, 17:41, edited 1 time in total.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#677 Post by goingnuts »

Finally got a decent build of MPlayer-1.0pre8 with uclibc and the above tinyX. Changed version of iconv to libiconv-1.6.1 and reduced size inpact with 400K. Also merged mplayer and mencoder (via mcb) so the final size (ex. fonts and skin) is approx. 6500K which decrease to just above 3000K with upx. Still big but one get a gui mediaplayer and an advanced video-converter for that price.
The audio and video outputs are:

Code: Select all

Available audio output drivers:
        mpegpes DVB audio output
        oss     OSS/ioctl audio output
        sdl     SDLlib audio output
        null    Null audio output
        pcm     RAW PCM/WAVE file writer audio output
        
Available video output drivers:
        xv      X11/Xv
        x11     X11 ( XImage/Shm )
        xover   General X11 driver for overlay capable video output drivers
        sdl     SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
        fbdev   Framebuffer Device
        fbdev2  Framebuffer Device
        xvidix  X11 (VIDIX)
        cvidix  console VIDIX
        null    Null video output
        mpegpes Mpeg-PES to DVB card
        yuv4mpeg        yuv4mpeg output for mjpegtools
        png     PNG file
        jpeg    JPEG file
        tga     Targa output
        pnm     PPM/PGM/PGMYUV file
        md5sum  md5sum of each frame
        
and you get osd, scalable subtitles, a bunch of video filters to play with, DVD-player etc.
If you download the win32 dlls from here you also can play quicktime, vmw and a lot of other formates. I have added osd fonts and subtitle fonts in the pet package that can be fetched here
You will probably want to use xorg for best performance but also the Xvesa shipped above gives a nice view. The shipped skin is really minimalistic but you can hunt others that might fit better in you taste.
I did not include the videx drivers - they link dynamic against uclibc - are rarely needed (AFAIK) - and disabling videx only saved 15K...

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#678 Post by technosaurus »

@goingnuts: I was planning to look through and condense the tinyx11 sources, but I noticed you put a GPL2 license in the trunk which I presume overrides the X11 licenses beneath? If this was intentional, I'll start over with the original sources (you are welcome to use any changes in the GPL'd version).

I want to make it optimized for static builds so I had planned to replace typedef's and enums with defines and replacing some small functions (small enough that they are smaller to inline) with macros. This will also make for a much smaller shared library too without adding to binary size (at the cost of losing some type checking - there will only be char, short, long/int, long long, float, double and structs of those types) though I do have one big concern with this approach:

Code: Select all

typedef int* int_p1;
int_p1 a, b, c;  // a, b, and c are all int pointers.
#define int_p2 int* int_p2 a, b, c;  // only the first is a pointer
regardless I am attaching one of the tools I use to find dups in case anyone else needs it
Attachments
duplo.tar.gz
a tool to find dupilcate code (recommend at least setting the -ip option though)
(28.48 KiB) Downloaded 774 times
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#679 Post by goingnuts »

technosaurus: The GPL2 was what was used with my GtkDialog1 backport exercise - so just copied it from there. I am not trying to restrict or violate anything - just more or less in the dark with witch license to put there in order not to restrict any usage without violating any original license. Any hint there are welcome.

I have made some additions/changes since I posted the source (to be able to compile more programs/get Xvesa and other programs run in xwoaf as well). If you would like to work with my sources I can post an updated version. But you might get more what you want and maybe less work starting with the full original source anyway...

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#680 Post by technosaurus »

As long as you didn't use any gpl code in it, it can keep the x11 license.

I was really just wanting to kill all the compiler warnings in recent compilers (gcc and clang at least) by giving the proper return type (mostly void or int), but any time I look @ code its hard to resist performance/size tweaks. Most everything else is already done in tinyx, but duplo did identify several duplicate code blocks.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

Post Reply