Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: SAA7146_MAX_BUF limit



Peter Maersk-Moller writes:
 > Hi Douglas
 > 
 > Douglas Kosovic wrote:
 > > Hi Peter,
 > > >I'm having a bit of a problem with a Rev. 2.2 permium card trying
 > > >to capture anything at a decent frame rate and a decent resolution.
 > > >To me decent means 720x576@25fps, but I even tried 352x288@12
 > > >which also fails. The best I can achive is 2-6fps.
 > > Multicasting MPEG-4 realtime using mp4live with a Technotrend Rev 2.1 on
 > > a dual PIII 1000, the best I can achieve is:
 > >   video - MPEG-4 Simple @ L3, 1651 kbps, 352x288 @ 24.90 fps
 > >   audio - MPEG-4 AAC, 128 kbps, 44100 Hz
 > 
 > The best I get is this
 > 1       video   MPEG-4 Simple @ L3, 19.840 secs, 934 kbps, 352x288 @ 19.61 fps
 > 2       audio   MPEG-4, 16.783 secs, 125 kbps, 44100 Hz
 > 
 > If I switch to MP3 I can get this
 > 1       video   MPEG-4 Simple @ L3, 19.840 secs, 1203 kbps, 352x288 @ 25.00 fps
 > 2       audio   MPEG-2 (MP3), 19.827 secs, 127 kbps, 44100 Hz
 > 
 > In both cases BW for wideo was set to 1000kbps.
 > 
 > AAC is a CPU hog. I'm running headless but X is running. Again
 > my CPU is a single Athlon XP1800+. I haven't tried overclocking yet.
 > 
 > So in the 352x288 case, the limiting factor is the CPU, not the DVB card.
 > 
 > > But typically it's more closer to 19 or 20 fps, I'm fairly happy with the
 > > quality being streamed to a Quicktime 6 client. Although when multicasting
 > > with mp4live there is the occasional screen glitch with Quicktime 6 that
 > > you don't see if you were playing back the same thing from a standalone
 > > file produced by mp4live.
 > > (note: I'm using 'mp4live --headless' and I don't have X11 running at the
 > > time)
 > > If I up the resolution to 720x576, the best I can achieve from mp4live is
 > > 6 fps. In your other email you say you can now capture 720x576@14fps, is
 > > that with mp4live (MPEG4IP) ?
 > 
 > Yes. It is with mp4live. I also tried with xawtv. With mp4live
 > I get
 > 
 > 1       video   MPEG-4 Simple @ L3, 19.760 secs, 860 kbps, 720x576 @ 16.35 fps
 > 2       audio   MPEG-2 (MP3), 19.852 secs, 126 kbps, 44100 Hz
 > 
 > And at all times (until hinting afterwards) I have at least 10% idle
 > capacity on the CPU. So here the limiting factor is not the CPU but
 > rather the DVB card.
 > 
 > If I use xawtv, I get into trouble trying to do more than 3-5 fps
 > for 704x576.
 > 

The major problem is the loop in saa7146_v4l.c at around line 303:
                        /* all saa7146īs below chip-revision 3 are not capable of
                           doing byte-swaps with video-dma1. for rgb-grabbing this
                           does not matter, but yuv422-grabbing has the wrong
                           byte-order, so we have to swap in software */
                        if ( ( saa->revision<3) && 
                             (saa->grab_format[i] == YUV422_COMPOSED)) {
                                /* swap UYVY to YUYV */
                                count = saa->grab_height[i]*saa->grab_width[i]*2;
                                grabbfr = ((unsigned char*)(saa->grabbing))+i*GRABBING_MEM_SIZE;
                                for (k=0; k<count; k=k+2) {
                                        y = grabbfr[k+1];
                                        uv = grabbfr[k];
                                        grabbfr[k] = y;
                                        grabbfr[k+1] = uv;
                                }
                        }
    

This is not optimized and if your encoder request the wrong color
format you run into this loop. I have never seen a revision 3 chip, by
the way.

Marcus

-- 
/--------------------------------------------------------------------\
| Dr. Marcus O.C. Metzler        |                                   |
|--------------------------------|-----------------------------------|
| mocm@metzlerbros.de            | http://www.metzlerbros.de/        |
\--------------------------------------------------------------------/



--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index