From: Thierry Merle <thierry.merle@free.fr>
To: Chris Grove <dj_gerbil@tiscali.co.uk>
Cc: video4linux-list@redhat.com
Subject: Re: Hauppauge WinTV USB Model 566 PAL-I
Date: Tue, 02 Dec 2008 23:00:20 +0100 [thread overview]
Message-ID: <4935AFF4.2040406@free.fr> (raw)
In-Reply-To: <00bf01c95402$ae3c6070$0ab52150$@co.uk>
[-- Attachment #1: Type: text/plain, Size: 4614 bytes --]
Chris Grove a écrit :
> -----Original Message-----
> From: Thierry Merle [mailto:thierry.merle@free.fr]
> Sent: 01 December 2008 21:06
> To: Chris Grove
> Subject: Re: Hauppauge WinTV USB Model 566 PAL-I
>
> Chris Grove wrote:
>> -----Original Message-----
>> From: Thierry Merle [mailto:thierry.merle@free.fr]
>> Sent: 30 November 2008 21:13
>> To: Chris Grove
>> Cc: video4linux-list@redhat.com
>> Subject: Re: Hauppauge WinTV USB Model 566 PAL-I
>>
>> Chris Grove wrote:
>>> A further, slightly interesting development is that the s-video input
>>> works fine with no interference at all, also the TV picture in fine
>>> in
>> windows.
>>> Just thought that might help with a solution.
>>>
>> Right, this helps. We can deduce this does not come from the
>> decompression algorithm since it is the same whether the TV input or
>> the s-video input is selected.
>> I suspect a tda9887/saa7113 interface problem but just my intuition.
>> As it works under windows, can you do an usbsnoop
>> (http://www.linuxtv.org/v4lwiki/index.php/Usbsnoop)
>> Just open the TV application, let it tune the channel and stop the
>> application immediately in order to have a minimal capture file.
>>
>> For the audio over USB, in the ancient times I developed a audio
>> extension for usbvision. I don't even know what I did from it. I can
>> look for it if you want. I will need to sweep the dust (compilation
>> errors and so on) but should work.
>>
>> P.S.: this thread is really hard to follow now... please reply under
>> my answer so that we will be able to read that again :)
>>
>> Hi, yea sorry about that, Outlook always starts at the top of the message.
>> Anyway, I've used USB Snoop and ended up with a 45Mb file. Now I'm
>> guessing you don't need all of it so there is a portion of it below my
>> answer. As for the audio-over-usb, yes please, I wouldn't mind a look
>> at the code if you can find it. Anyway here's that sample, Thanks for the
> help.
> I found the audio-over-usb code (see attached). The code may need some
> cleanups and can cause kernel oops.
> The USB snoops need to be analyzed. Can you put it on a site so that I can
> download it?
> Nevertheless you can read what I wrote when I was programming the
> audio-over-usb driver here:
> http://thierry.merle.free.fr/articles.php?lng=en&pg=82
> The page was translated to English using google translate so there may be
> some problems of understanding :) For some more information about the
> usbvision chip, I wrote a page here:
> http://thierry.merle.free.fr/articles.php?lng=en&pg=68
>
> As a first step, I will look at the register accesses. They begin with a
> line like this:
> 00000000: 00000000: 42 33 00 00
> With the datasheet I can understand what the windows driver is setting.
>
> [SNIP]
>
>> -- URB_FUNCTION_CONTROL_TRANSFER:
>> PipeHandle = 8ac23cfc [endpoint 0x00000001]
>> TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT,
>> ~USBD_SHORT_TRANSFER_OK)
>> TransferBufferLength = 00000001
>> TransferBuffer = a1745938
>> TransferBufferMDL = 00000000
>> 00000000: 30
>> UrbLink = 00000000
>> SetupPacket =
>> 00000000: 42 33 00 00 07 00 01 00
> For example here you have a register programming #07 (SER_MODE from the
> NT1004 datasheet).
> Value is 0x30 (TransferBufferMDL line). Means MODE=3.
> This is just for the example, this one is not interesting.
> There are other registers more interesting but I should have the complete
> log to find out.
>
> You may have sent me the sufficient data to investigate but in doubt give me
> the complete logs.
> Of course you can look at the problem if you are interested.
>
> Thanks
> Thierry
>
> Hi Thierry, Thanks for the links to you code, I'll download it and have a
> look. Here's hoping I can work out what's going on in it. I've uploaded the
> whole of the log to my skydrive, the link is below.
> http://cid-19380f9184511dde.skydrive.live.com/browse.aspx/Public
> To be honest I'm only a learner when it comes to linux and c++ programming,
> I'm more of a basic programmer so I need all the help I can get my hands on.
> Thanks in advance for all your help. Chris.
>
>
OK I have made a quick and dirty perl script that parses the usb snoop file and outputs register programming values.
Usage: usbvision_snoop_extract.pl <UsbSnoop.log
A line is interesting:
Command=USBVISION_LXSIZE_I[00 08 00] value=c0 02 20 01 06 00 01 00
Tells that you must set the X offset to 0x0006 and Y offset 0x0001 (data are swapped).
Please try modprobe usbvision adjust_X_Offset=6 adjust_Y_Offset=1
Thierry
[-- Attachment #2: usbvision_snoop_extract.pl --]
[-- Type: text/plain, Size: 2659 bytes --]
#!/usr/bin/perl -w
#
$register[0]= "USBVISION_PWR_REG";
$register[0x01]= "USBVISION_CONFIG_REG";
$register[0x02] = "USBVISION_ADRS_REG";
$register[0x03] = "USBVISION_ALTER_REG";
$register[0x04] = "USBVISION_FORCE_ALTER_REG";
$register[0x05] = "USBVISION_STATUS_REG";
$register[0x06] = "USBVISION_IOPIN_REG";
$register[0x07] = "USBVISION_SER_MODE";
$register[0x08] = "USBVISION_SER_ADRS";
$register[0x09] = "USBVISION_SER_CONT";
$register[0x0A] = "USBVISION_SER_DAT1";
$register[0x0B] = "USBVISION_SER_DAT2";
$register[0x0C] = "USBVISION_SER_DAT3";
$register[0x0D] = "USBVISION_SER_DAT4";
$register[0x0E] = "USBVISION_EE_DATA";
$register[0x0F] = "USBVISION_EE_LSBAD";
$register[0x10] = "USBVISION_EE_CONT";
$register[0x12] = "USBVISION_DRM_CONT";
$register[0x13] = "USBVISION_DRM_PRM1";
$register[0x14] = "USBVISION_DRM_PRM2";
$register[0x15] = "USBVISION_DRM_PRM3";
$register[0x16] = "USBVISION_DRM_PRM4";
$register[0x17] = "USBVISION_DRM_PRM5";
$register[0x18] = "USBVISION_DRM_PRM6";
$register[0x19] = "USBVISION_DRM_PRM7";
$register[0x1A] = "USBVISION_DRM_PRM8";
$register[0x1B] = "USBVISION_VIN_REG1";
$register[0x1C] = "USBVISION_VIN_REG2";
$register[0x1D] = "USBVISION_LXSIZE_I";
$register[0x1E] = "USBVISION_MXSIZE_I";
$register[0x1F] = "USBVISION_LYSIZE_I";
$register[0x20] = "USBVISION_MYSIZE_I";
$register[0x21] = "USBVISION_LX_OFFST";
$register[0x22] = "USBVISION_MX_OFFST";
$register[0x23] = "USBVISION_LY_OFFST";
$register[0x24] = "USBVISION_MY_OFFST";
$register[0x25] = "USBVISION_FRM_RATE";
$register[0x26] = "USBVISION_LXSIZE_O";
$register[0x27] = "USBVISION_MXSIZE_O";
$register[0x28] = "USBVISION_LYSIZE_O";
$register[0x29] = "USBVISION_MYSIZE_O";
$register[0x2A] = "USBVISION_FILT_CONT";
$register[0x2B] = "USBVISION_VO_MODE";
$register[0x2C] = "USBVISION_INTRA_CYC";
$register[0x2D] = "USBVISION_STRIP_SZ";
$register[0x2E] = "USBVISION_FORCE_INTRA";
$register[0x2F] = "USBVISION_FORCE_UP";
$register[0x30] = "USBVISION_BUF_THR";
$register[0x31] = "USBVISION_DVI_YUV";
$register[0x32] = "USBVISION_AUDIO_CONT";
$register[0x33] = "USBVISION_AUD_PK_LEN";
$register[0x34] = "USBVISION_BLK_PK_LEN";
$register[0x38] = "USBVISION_PCM_THR1";
$register[0x39] = "USBVISION_PCM_THR2";
$register[0x3A] = "USBVISION_DIST_THR_L";
$register[0x3B] = "USBVISION_DIST_THR_H";
$register[0x3C] = "USBVISION_MAX_DIST_L";
$register[0x3D] = "USBVISION_MAX_DIST_H";
while (<STDIN>) {
if(/\s+TransferBufferMDL.*$/)
{
$newTag=1;
}
if(/\s*00000000: 42 33 00 00\s+(\w+)\s+(.+)$/)
{
printf("Command=%s[%s] value=%s\n",$register[hex($1)],$2,$value); $newTag=0;
}
else {
if(/\s*00000000:\s*(.+)$/)
{
$value=$1;
}
}
}
[-- Attachment #3: Type: text/plain, Size: 164 bytes --]
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
next prev parent reply other threads:[~2008-12-02 22:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-28 11:55 Hauppauge WinTV USB Model 566 PAL-I Chris Grove
2008-11-29 16:54 ` Chris Grove
2008-11-29 21:02 ` Thierry Merle
2008-11-30 14:04 ` Chris Grove
2008-11-30 15:10 ` Thierry Merle
2008-11-30 15:43 ` Chris Grove
2008-11-30 20:30 ` Chris Grove
2008-11-30 21:12 ` Thierry Merle
[not found] ` <000301c95341$504c5810$f0e50830$@co.uk>
[not found] ` <493451C5.9010406@free.fr>
2008-12-01 22:18 ` Chris Grove
2008-12-02 20:26 ` Thierry Merle
2008-12-02 22:00 ` Thierry Merle [this message]
2008-12-03 0:26 ` Chris Grove
2008-12-03 6:26 ` Thierry Merle
2008-12-03 9:03 ` Chris Grove
-- strict thread matches above, loose matches on Subject: below --
2008-11-29 18:24 CityK
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4935AFF4.2040406@free.fr \
--to=thierry.merle@free.fr \
--cc=dj_gerbil@tiscali.co.uk \
--cc=video4linux-list@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.