[MPlayer-cygwin] Slow MPEG2-TS (HDTV) playback

Joey Parrish joey at nicewarrior.org
Mon Nov 24 05:09:45 CET 2003


On Sun, Nov 23, 2003 at 07:49:00PM -0500, Christopher William Palow wrote:
> I recently purchased a HDTV capture card (HD-2000 High Definition TV Card)
> from pcHDTV.com.  It only runs in Linux and it just takes the MPEG2 stream
> from an over the air transmission and puts it out to stdout with the program
> getatsc (getatsc /dev/dtv 20 > out.ts will write the stream to the file
> out.ts).  My Linux machine is no where near fast enough to play such a high
> bandwidth MPEG 2 stream (it's an 800Mhz Athlon) but I figure my windows
> machine is (it's an Athlon XP 2200+ with a NVIDIA Geforce 2 Pro).  So I get
> the latest mplayer and ffmpeg off the mplayerhq CVS yesterday (11/23/2003)
> and then compile it under cygwin on my WinXP machine.

> I noticed that mplayer wasn't able to use the internal FAAD2 library so I
> downloaded that and compiled it, reconfiged mplayer and tried to compile it.
> It didn't succeed because I didn't have freetype2 installed, so I downloaded
> that and compiled it and then mplayer compiled (I had to --prefix=/usr on
> both freetype2 and FAAD2 to get them to work with mplayer).

That's strange, I get internal faad2 working fine under XP, without
hacking at it.  Send in configure.log so we can see why internal faad
failed.

> So now that mplayer compiled I tried playing some captured MPEG2 streams
> (.ts files).  It worked but it was slow (and interlaced since it was a 1080i
> stream I had captured).  Once I added -framedrop the audio would stay in
> sync but then it would only play at I dunno like 5 fps (is there some way I
> can measure that?).  The weird thing is the CPU would never pass 60% no
> matter what I tried (measured from task manager).  I tried the gl2 video out
> it worked just as well as the directx video out, however, it was just as
> slow.  I tried scaling the video down all the way to -xy 320 back up to it's
> native resolution with no effect.  I tried using different mpeg2 codecs -vc
> ffmpeg2 for example, again with no luck.  So can anyone help me?  I tried
> getting vidix compiled, I went into the configure script and changed cygwin
> && _vidix=no to _vidix=yes on line 1785 and it tried to compiled winvidix
> (and cvidix whatever that is (console vidix maybe?)).  However, that failed
> with something along the lines do libdha.so and libdha.so are the same.  So
> I went in and tried to compile the individual drivers and ended up with some
> of the errors reported to this list last month.  So vidix is no go, would it
> help if I had been able to get it compiled?

Vidix doesn't work for me out of the box, either.  I have attached a
patch I applied to get it to compile.  It still does not run for me,
primarily because all NT/XP systems disable direct hardware access.
I found a wrapper application that allows it's child process direct
hardware access.  Using this, -vo winvidix no longer segfaulted on outb
instructions, and was able to detect my video card.  It still failed to
run after that, though, and I cannot recall exactly what the error was.
I gave up, because directx works pretty well most of the time.  I'll
probably poke at winvidix again some other time.

NB: This patch I attached is NOT to commit.  It is a hack.

> So that's what I'm trying to do (and can do, just slowly).  Any advice on
> getting it going at full frame rate would be appreciated.  Also -vop
> lavcdeint doesn't work with -vo gl2 is there another deinterlacer that will
> work?

I don't know, I have no experience with TV card stuff.  Good luck.

--Joey

-- 
"I know Kung Fu." --Darth Vader
-------------- next part --------------
vidix support!
doesn't work!
but this makes it compile!
hoorah!

diff -ur main.cvs/libdha/Makefile main.raw/libdha/Makefile
--- main.cvs/libdha/Makefile	2003-11-01 11:03:33.106001600 -0600
+++ main.raw/libdha/Makefile	2003-11-16 20:09:15.399716800 -0600
@@ -8,7 +8,8 @@
 
 
 ifeq ($(TARGET_OS),CYGWIN)
-SHORTNAME = libdha.dll
+# hack!
+TARGET_MINGW32=yes
 else
 SHORTNAME = libdha.so.$(MAJOR_VERSION)
 SONAME_FLAGS = -Wl,-soname,$(SHORTNAME)
@@ -80,8 +81,10 @@
 install:
 	mkdir -p $(prefix)/lib
 	install -m 755 -s -p $(LIBNAME) $(prefix)/lib/$(LIBNAME)
+ifneq ($(TARGET_MINGW32),yes)
 	rm -f $(prefix)/lib/libdha.so
 	ln -sf $(LIBNAME) $(prefix)/lib/$(SHORTNAME)
+endif
 ifeq ($(TARGET_OS),OpenBSD)
 	ldconfig -R
 else


More information about the MPlayer-cygwin mailing list