Kworld ATSC-110 SAA7134 driver S Video Capture
- Date: Sat, 13 Jan 2007 22:22:00 -0700
- From: "Mark Goldberg" <marklgoldberg@xxxxxxxxx>
- Subject: Kworld ATSC-110 SAA7134 driver S Video Capture
I've got two Kworld ATSC-110s in a Mythtv box running Fedora6 and I'm
looking at improving the video from the S Video input. I'm capturing
from a Directv Receiver and it looks significantly less sharp through
Mythtv captured by the ATSC-110. I looked at the data sheet and User
Manual for the SAA713X and made the following changes to what got
written to the registers by editing saa7134-video.c and rebuilding the
kernel module:
This is for NTSC into the S Video input.
SAA7134_LUMA_CTRL
I changed LUF[3:0] from 0000 to 0110 to give a 2 dB peak at 4.1 MHz.
The driver already changes BYPS from 0 to 1 and YCOMB from 0 to 1 to
disable the comb filters at least for luminance.
SAA7134_CHROMA_CTRL1
I changed CDTO from 1 to 0 to have the chroma subcarrier run
continuously. I'm not
sure why is was not that way but maybe it is needed to reset each line
for VCR output.
I changed CCOMB from 1 to 0 to disable the chrominance comb filter. I'm not sure
this is necessary but it seems to be OK.
I changed h_stop from 704 to 720. This allows Mythtv to capture at 720
without looking like it has a horizontal hold problem ( only oldsters
will remember when TVs did that ). Then it does not scale the video,
but results in a black bar on the right since NTSC from this card is
captured at about 704 pixels max. I did not want Mythtv or the nvidia
driver to try to scale from 704 to the 720 pixels on the TV output.
I then made some changes to add some of these register settings to the
private settings you can use v4lctl to set from the command line to
avoid having to recompile the kernel module each time. That patch is
not yet ready for prime time.
All of this made a pretty big improvement in the capture of S video,
but there are still some issues.
I tried to shift the capture window over to at least make the black
bar even on the right and left by changing HGB[7:0] and HGE[7:0] but
changing them does not seem to do anything. Maybe it is in a mode to
set them automatically for NTSC and ignores what you write to the
registers. If anyone knows more about this, please let me know.
It seems to maybe miss a frame every once in a while as the picture
jumps. I don't know if this is in playback or the capture itself.
There are Mythtv issues when using bob deinterlacing where it does not
seem to be able to double the video frame interval if the video gets
ahead of the audio. It may be timing issues in the capture though as
the audio is 32 kHz for analog inputs and 48 for the ATSC which does
not jump.
v4lctl does not seem to be able to take a negative or a hex parameter
on the command line, so the things that are restricted to -107 to +107
decimal (actually a twos compliment number can't be limited that way.
I have to allow it to be an unsigned int and set the limits to 0 to
255 decimal. That is one reason the patch is not ready for prime time
as it allows you to set the registers to values they say not to use.
I can see the stuff in the vertical interval so Im not sure it is
actually capturing the right 480 vertical lines.
If anyone has any suggestions, or any questions, let me know. Im not a
kernel hacker. I'm basically a hardware engineer who dabbles in Linux
for a hobby, so I'm not sure this is even the correct forum, but It
seems like it from looking at the archives.
Any additonal info as to why things are as they are in the driver
would be appreciated. The User Manual is not clear in many areas.
I use only the S video input and ATSC over the air so the recent
patches to change the tuner inputs won't help me. All of the local
channels of interest have ATSC channels too, so I don't use analog
over the air at all. I'll try to test the remote patch as that would
be very useful.
Thanks,
Mark
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@xxxxxxxxxx?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list