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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox