Loading...

ivtv-devel@ivtvdriver.org

[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: [ivtv-devel] Writing to SAA7127 registers (WSS signalling) Hans Verkuil Thu Jul 12 18:01:02 2007

> Martin,
>
> Looking through the code for your plugin, I'm not sure but how is it
> dealing
> with 16:9?
>
> Is it:
>
>     A) Playing the mpeg to the framebuffer using a software decoder.
>  OR
>     B) Somehow telling the CX....15 mpeg decoder that it's a 16:9 video
> and
> to do the necessary (is the chip capable of this?)
> OR
>     C) Using WSS to tell the TV to display 16:9?

It uses C.

However, you should be aware that the 0.10 driver has a bug preventing
this from working. It is fixed in the 0.10 development branch and you can
get that code here:

http://ivtvdriver.org/viewcvs/ivtv/branches/0.10.tar.gz?view=tar

I will probably make a 0.10.4 release fairly soon, possibly even tonight.

The ivtv driver in the just-released 2.6.22 kernel has the same problem.
I've asked that this fix is queued for a 2.6.22 dot release and I expect
that it will in fact appear soon.

Regards,

         Hans

> OR
>     D) Some combination of A+C or B+C?
>
> Or have I got the wrong source code (mine is dated pvr350-2007-09-06)?
>
> Cheers
>
> Steve
>
>
> On 10/07/07, Martin Dauskardt <[EMAIL PROTECTED]> wrote:
>>
>> You can use the wss tool from Hans:
>> http://ivtvdriver.org/viewcvs/ivtv/trunk/test/
>>
>> If you execute "wss 1" it will set the TV to a Zoom-mode (no anarmorph
>> 16:9).
>> You will have to modify the code to get real 16:9
>>
>> Look at the code:
>>
>> wss = 8 + (atol(argv[1]) ? 3 : 0);
>>        if (argc == 3)
>>
>> This leads to wss value 8 (4:3) or 11 (PalPlus Zoom). You need value 7
>> for
>> anarmorph 16:9
>>
>> I use the following code for the vdr pvr350-plugin:
>>
>> void cPvr350Device::Set_wss_mode()
>> {
>>        struct v4l2_format fmt;
>>        struct v4l2_sliced_vbi_data data;
>>
>>        fmt.fmt.sliced.service_set = V4L2_SLICED_WSS_625;
>>        fmt.type = V4L2_BUF_TYPE_SLICED_VBI_OUTPUT;
>>        if (ioctl(fh, VIDIOC_S_FMT, &fmt) != 0) {
>>                esyslog("pvr350: Set VBI mode failed\n");
>>        }
>>        if (ioctl(fh, VIDIOC_G_FMT, &fmt) != 0) {
>>                esyslog("pvr350: VIDIOC_G_FMT failed\n");
>>        }
>>        data.id = V4L2_SLICED_WSS_625;
>>        data.line = 23;
>>        data.field = 0;
>>        data.data[0] = wss_data;
>>        data.data[1] = 0;
>>        if (wss_data == 7) {
>>                printf("pvr350: set wss mode 16:9 (anarmorph)\n");
>>        }
>>        if (wss_data == 8) {
>>                printf("pvr350: set wss mode 4:3\n");
>>        }
>>        write(fh, &data, sizeof data);
>> }
>>
>> You must open the device before you can use the code above:
>>
>> fh = open("/dev/vbi16",O_WRONLY);
>>
>> Your application must set wss==7 if it detects
>>
>> Does it help you?
>>
>> Greets,
>> Martin
>>
>> _______________________________________________
>> ivtv-devel mailing list
>> [EMAIL PROTECTED]
>> http://ivtvdriver.org/mailman/listinfo/ivtv-devel
>>
> _______________________________________________
> ivtv-devel mailing list
> [EMAIL PROTECTED]
> http://ivtvdriver.org/mailman/listinfo/ivtv-devel



_______________________________________________
ivtv-devel mailing list
[EMAIL PROTECTED]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel