[MPlayer-users] RE: [Dxr3-devel] DXR3 Performance (used to be No Signal)

Michael Halcrow m_halcrow at hotmail.com
Mon Apr 22 22:00:03 CEST 2002


My hypothesis is that since the DXR3 requires MPEG-1 or MPEG-2 input, the
quality suffers immensely from being (initially) encoded into DivX,
decoded, and then re-encoded into MPEG-1 in preparation to send it to the
card during playback. Using two different lossy compression schemes on the
same video stream results in essentially combining the problems that each
codec creates in the video. It's the same argument as to why it's a bad
idea to decode your MP3 files and re-encode them into Ogg Vorbis format.

I suspect in my case the skipping may be due to the video being stretched
vertically at some point. Is this happening:

 - When the DivX is getting decoded into uncompressed frames,
 - When the uncompressed frames are getting compressed into MPEG-1, or
 - After the video is sent to the DXR3 card?

I don't think it's the first option, since the DivX plays beautifully with
mplayer -vo xv (no ratio problems). Do the DivX files generated by
transcode have some attribute that labels the video file as 16:9 or 4:3?

I have a P-III 750, and the video is pretty jumpy when played out the
DXR3. I have tried using the dfu utility, but it reported the card to be
in 4:3 mode already. I will try the -y flag in mplayer to see if that
makes a difference in the performance and/or stretching.

As far as the skipping... I've been using the latest builds for Thomas's
transcode for several weeks now, and I have yet to get an .avi that has
good A/V sync (they're working hard on this) and does not skip immediately
before/after a cut. I assume there is a bug in either the 2-pass encoding
algorithm or in the divx encoding plugin. In sections of the video where
there are a lot of cuts back-to-back, the skipping is horrendous.

One more thing... In mplayer, my A/V goes out of sync when playing a .vob
from the hard disk through the DXR3, almost from the beginning, but if I
seek to any position in the file, then the A/V is synced again and stays
in sync the whole time. It's just after starting the playback that the A/V
sync goes out.

I am always looking for fun EE projects. I have access to some Virtex
boards in my department. How hard would it be to implement a hardware DivX
encoder/decoder on an FPGA? I mean, would it require more than a thousand
slices (or a thousand hours of development time :-)? I digress.

This is all relevent to three different lists, and so I'm sending it to
the lists accordingly.

Mike

On Mon, 22 Apr 2002, Gray, Tim wrote:

> My dual P-3 866 system play's Divx files out the Hollywood plus with mplayer
> almost perfectly...  I say almost as the problems with Divx files really
> show up on a 32 inch TV compared to a window on my monitor..  I get skips
> where there are skips in the file to begin with, but NO added skips or
> drifting in audio sync. I do not think that mplayer can detect and use a SMP
> system (I may be wrong though) but having the second processor does make
> things feel smoother.
>
>
>
> -----Original Message-----
> From: Marcel Birthelmer [mailto:marcel at carrietech.com]
> Sent: Saturday, April 20, 2002 8:33 PM
> To: Michael Halcrow
> Cc: dxr3-devel at lists.sourceforge.net
> Subject: Re: [Dxr3-devel] No Signal
>
>
> there is NEVER a better approach than to get a dual system.
> otherwise, play around with -framedrop... make sure you have the latest
> (CVS) mplayer, ... stuff like that.
> if none of that does anything, try visiting #dxr3 on
> irc.openprojects.net and we'll try to help you directly
> marcel
>
> Michael Halcrow wrote:
>
> > This problem was madening. I finally examined my cable, and found that one
> > of the pins was broken off. This is the second Monster SVideo cable to go
> > out on me! You'd think that more expensive cables would be better
> > manufactured...
> >
> > However, I am still disappointed with the performance. It does much better
> > playing using the Xv output rather than the em8300. I assume that this is
> > because I am playing DivX, and so the video must be re-encoded on the fly
> > before sending it out to the card.
> >
> > DVD's play beautifully though (using the mpegpes codec).
> >
> > Has anyone on this list managed to get good performance for their DivX's
> > using a DXR3? If so, were there any software tricks, or is it just
> > hardware (I've already patched my 2.4.18 kernel with Love's preempt code)?
> > If I were to get a dual-processor system, would that make things be
> > totally smooth, or is there a better approach?
> >
> > Mike
> >
> > ---------------------------------------------- | ------------------------
> > Michael Halcrow                                | mhalcrow at ee.byu.edu
> > Research Assistant, Network Security Lab       | Dept. of Comp. Science
> >                                                | Brigham Young University
> > Don't buy what you can't pay for. But when it  |
> > comes to software, don't pay for what you      |
> > can't buy.                                     |
> > ---------------------------------------------- | ------------------------
> >
> > On Sat, 20 Apr 2002, Michael Halcrow wrote:
> >
> >
> >>I make it a point to read all the doc's I can find before posting to a
> >>list, but I haven't had much luck here.
> >>
> >>I want to get TV-out working on my DXR3. Here is some random information
> >>you might find useful in helping me out:
> >>
> >>----------------------------
> >>
> >># cat /proc/pci
> >>...
> >>Bus  0, device  15, function  0:
> >>    Multimedia controller: Sigma Designs, Inc. REALmagic Hollywood Plus
> >>DVD Decoder (rev
> >> 2).
> >>      IRQ 9.
> >>      Master Capable.  Latency=32.
> >>      Non-prefetchable 32 bit memory at 0xdb000000 [0xdb0fffff].
> >>...
> >>
> >>----------------------------
> >>
> >># echo Makefile
> >>MODULE_VERSION="0.12.0"
> >># where the kernel sources are located
> >>KERNEL_LOCATION?=/lib/modules/$(shell uname -r)/build
> >>
> >># If your I2C stuff is builtin to kernel leave this blank
> >># otherwise change to the location of the I2C headers
> >>#I2C_LOCATION=/usr/local/include
> >>I2C_LOCATION?=
> >>
> >>#################################################
> >># some magic for using linux kernel settings
> >># when compiling module(s)
> >>
> >>EXTRA_CFLAGS = -g -I ../include -I $(KERNEL_LOCATION)/include/ \
> >>		-O2 -fomit-frame-pointer -Wall \
> >>		-DEM8300_VIDEOMODE_DEFAULT=EM8300_VIDEOMODE_NTSC \
> >>		-DEM8300_AUDIOMODE_DEFAULT=EM8300_AUDIOMODE_ANALOG
> >>...
> >>
> >>------------------------------
> >>
> >># em8300init
> >>Microcode uploaded to /dev/em8300-0
> >>
> >>------------------------------
> >>
> >># lsmod
> >>Module                  Size  Used by    Not tainted
> >>em8300                 46560   0
> >>bt865                   3104   0  (unused)
> >>adv717x                 3232   0  (unused)
> >>i2c-algo-bit            7148   2  [em8300]
> >>i2c-core               12960   0  [bt865 adv717x i2c-algo-bit]
> >>mga                    99792   1
> >>...
> >>
> >>------------------------------
> >>
> >>I compiled MPlayer (the 4/19 CVS snapshot) with dxr3 support. When I try
> >>playing a DivX file, I get this output:
> >>
> >>------------------------------
> >># mplayer -vo dxr3 /spare/dvdrip/zoolander/avi/001/zoolander-001.avi
> >>MPlayer CVS-020419-00:00-2.95.3 (C) 2000-2002 Arpad Gereoffy (see DOCS!)
> >>
> >>CPU vendor name: GenuineIntel  max cpuid level: 2
> >>CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Type: 6,
> >>Stepping: 1)
> >>Testing OS support for SSE... yes.
> >>Testing OS support for SSE unmasked exceptions... yes.
> >>Tests of OS support for SSE passed.
> >>CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 0
> >>Compiled with RUNTIME CPU Detection - warning, it's not optimal! To get
> >>best performance, recompile mplayer from sources with
> >>--disable-runtime-cpudetection
> >>Reading /root/.mplayer/codecs.conf: can't open
> >>'/root/.mplayer/codecs.conf': No such file or directory
> >>Reading /usr/local/share/mplayer/codecs.conf: 30 audio & 81 video codecs
> >>font: can't open file: /root/.mplayer/font/font.desc
> >>font: can't open file: /usr/local/share/mplayer/font/font.desc
> >>Using Linux's hardware RTC timing (1024Hz)
> >>Can't open input config file /root/.mplayer/input.conf : No such file or
> >>directory
> >>Falling back on default (hardcoded) config
> >>Playing /spare/dvdrip/zoolander/avi/001/zoolander-001.avi
> >>Can't open IFO file: No such file or directory
> >>Not an URL!
> >>Detected AVI file format!
> >>list_end=0x138
> >>MainAVIHeader.dwFlags: (272) HAS_INDEX IS_INTERLEAVED
> >>list_end=0xD4
> >>list_end=0x138
> >>list_end=0x18C
> >>hdr=Software  size=64
> >>list_end=0x573FC900
> >>VIDEO:  [DIVX]  640x272  24bpp  23.98 fps  2058.5 kbps (251.3 kbyte/s)
> >>[V] filefmt:3  fourcc:0x58564944  size:640x272  fps:23.98  ftime:=0.0417
> >>Clip info:
> >> Software: transcode-0.6.0pre5-20020404
> >>Detected audio codec: [mp3] drv:1 (MPEG layer-2, layer-3)
> >>Selecting Audio Decoder: [mp3lib] MPEG layer-2, layer-3
> >>CPU vendor name: GenuineIntel  max cpuid level: 2
> >>CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Type: 6,
> >>Stepping: 1)
> >>Testing OS support for SSE... yes.
> >>Testing OS support for SSE unmasked exceptions... yes.
> >>Tests of OS support for SSE passed.
> >>mp3lib: made decode tables with MMX optimization
> >>init layer2&3 finished, tables done
> >>mp3lib: using MMX optimized decore!
> >>MPEG 1.0, Layer III, 48000 Hz 128 kbit Joint-Stereo, BPF: 384
> >>Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0
> >>AUDIO: srate=48000  chans=2  bps=2  sfmt=0x10  ratio: 16000->192000
> >>CPU vendor name: GenuineIntel  max cpuid level: 2
> >>CPU: Intel Celeron 2/Pentium III Coppermine,Geyserville (Type: 6,
> >>Stepping: 1)
> >>Testing OS support for SSE... yes.
> >>Testing OS support for SSE unmasked exceptions... yes.
> >>Tests of OS support for SSE passed.
> >>VO: [dxr3] FAME supported
> >>VO: [dxr3] AVCODEC supported
> >>VO: [dxr3] Opened /dev/em8300_mv-0
> >>libavcodec: CPU flags: mmx mmxext sse
> >>==========================================================================
> >>Opening Video Decoder: [ffmpeg] FFmpeg's libavcodec codec family
> >>Detected video codec: [ffodivx] drv:5 prio:0 (FFmpeg MPEG-4)
> >>==========================================================================
> >>AO: [oss] 48000Hz Stereo Signed 16-bit (Little-Endian)
> >>ao2: 48000 Hz  2 chans  Signed 16-bit (Little-Endian)
> >>audio_setup: sample format: Signed 16-bit (Little-Endian) (requested:
> >>Signed 16-bit (Little-Endian))
> >>audio_setup: using 2 channels (requested: 2)
> >>audio_setup: using 48000 Hz samplerate (requested: 48000)
> >>audio_setup: frags:  32/32  (4096 bytes/frag)  free: 131072
> >>Start playing...
> >>VDec: vo config request - 640 x 272, Planar YV12
> >>[PP] Sorry, postprocessing is not available
> >>Movie-Aspect is undefined - no prescaling applied.
> >>VO: [dxr3] 640x272 => 640x272 Planar YV12
> >>VO: [dxr3] Setting up for NTSC.
> >>VO: [dxr3] Setting aspect ratio to 16:9
> >>VO: [dxr3] Using AVCODEC
> >>
> >>SwScaler: BICUBIC scaler, from Planar YV12 to Planar YV12 using MMX2
> >>Using MMX2 for colorspace transform
> >>*** [vo] Exporting mp_image_t, 640x272x12bpp YUV planar, 261120 bytes
> >>A: 136.0 V: 137.1 A-V: -1.010 ct:-13.623  3287/3287  23% 71%  2.0% 0 0 0%
> >>--------------------------
> >>
> >>Well, it all looks fine and dandy. I see the message "Setting up for
> >>NTSC." I assume this means that the dxr3 driver will send my video through
> >>the SVideo connector.
> >>
> >>But I am getting no signal from the SVideo connector.
> >>
> >>And I'm concerned about the 71% value... my usage when playing to Xv is
> >>only 20%.
> >>
> >>So I tried using some of the utilities that came with em8300. dhc worked
> >>great. Well, the buttons worked; the colors highlighted were I clicked :-)
> >>
> >>Is there anything else I should try?
> >>
> >>Thanks in advance,
> >>Mike
> >>
> >>---------------------------------------------- | ------------------------
> >>Michael Halcrow                                | mhalcrow at ee.byu.edu
> >>Research Assistant, Network Security Lab       | Dept. of Comp. Science
> >>                                               | Brigham Young University
> >>Never send a man to do a machine's job.        |
> >>---------------------------------------------- | ------------------------
> >>
> >>
> >>_______________________________________________
> >>Dxr3-devel mailing list
> >>Dxr3-devel at lists.sourceforge.net
> >>https://lists.sourceforge.net/lists/listinfo/dxr3-devel
> >>
> >>
> >
> >
> > _______________________________________________
> > Dxr3-devel mailing list
> > Dxr3-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/dxr3-devel
> >
> >
> >
> >
>
>
>
> _______________________________________________
> Dxr3-devel mailing list
> Dxr3-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dxr3-devel
>






More information about the MPlayer-users mailing list