On Fri, Dec 07, 2001 at 10:49:37PM -0800, Billy Biggs wrote: > Hi, my question is relevant to both 525/59.94 and 625/50 but I'll use > 525 notation below. > > The bttv chip writes to memory fields at 59.94hz afaict, however xawtv > cannot be convinced to display at this rate. Please don't confuse *frame* rate and *field* rate. The frame rate is 30 fps only. > Using XVideo to control > the overlay window, all I see is one of the fields. This seems > confirmed in the code: > > height = pPPriv->enc[pPPriv->cenc].height/2; /* no interlace */ Exactly. I have a pending patch for v4l.c which makes this switchable at runtime (both fields interlaced vs. one field scaled up). > And nowhere is there any logic to switch field parity. I'm still > trying to figure out how this XVideo driver works and what its purpose > is. My assumption right now (please correct me!) is that you're > instructing the bttv driver to write frames into video memory, and > having the video card use its own overlay code to display it, without > any intervention from X or other userspace app. I'm also assuming > you're single buffered and never flip. Yes. > If this is correct, then I guess that's why we only get our half > framerate: you have no easy interrupt (or don't use one) to tell the > video card to switch its source pointer, Yes (the X-Server runs in userspace and thus it isn't easy to play with IRQ's). > and you don't overwrite the top field directly with the second one. Yes. Simply overwriting the top with the bottom field would give you some anonnying flicker because the two fields don't line up exactly. Older bttv versions (<= 0.7.20 or something like that ...) used to work this way. > I don't understand how you avoid > sheering (I guess you don't?). By using one field only ... > And I don't think the fix is obvious either. If we say screw sheering > (or if there's some other reason why that is not an issue), you'd still > need some interrupt from the video card to handle the field parity > correctly, since you need to start the bottom field a scanline below > where you start the top one. No, the bt848 has no problems to deal with different memory locations for even/odd fields. > If I'm not using XVideo for scaling, just xawtv accessing video4linux > directly, then I still don't get true 59.94hz: instead I see interlaced > frames! What else do you expect? This is exactly how TV works. Without Xvideo no upscaling using the graphics card is possible, so I can't play tricks to avoid the interlace artefacts. > This perplexes me, as I was almost certain that when I bought > the card, using xawtv showed me the full framerate video stretching each > field independently. Has the xawtv code for this changed at all? No. Gerd -- #define ENOCLUE 125 /* userland programmer induced race condition */