VIDIOC_ENUM_FRAMESIZES in linux_ioctl.c

Markiyan Kushnir markiyan.kushnir at gmail.com
Sun Jan 13 18:12:04 UTC 2013


On 13.01.2013 18:48, Juergen Lock wrote:
> On Sun, Jan 13, 2013 at 06:11:13PM +0200, Markiyan Kushnir wrote:
>> Hi,
>>
>> Any reason why LINUX_VIDIOC_ENUM_FRAMESIZES,
>> LINUX_VIDIOC_ENUM_FRAMEINTERVALS, LINUX_VIDIOC_ENCODER_CMD, and
>> LINUX_VIDIOC_TRY_ENCODER_CMD in compat/linux/linux_ioctl.c have been put
>> under #ifdef VIDIOC_ENUM_FRAMESIZES (looks like it's been there since
>> rev. 221426, when the v4l2 support was introduced) ?
>>
>> I've just hit an issue with the current Skypes in the ports tree (both
>> 2.1.0.81 and 2.2.0.35) trying to call at least the
>> LINUX_VIDIOC_ENUM_FRAMESIZES ioctl, so I re-built linux.ko with
>> -DVIDIOC_ENUM_FRAMESIZES and found no visible issues on my desktop so
>> far beyond that my skype started to send video.
>>
>> If there is some reason, it would be good to let people know why these
>> ioctls are turned off by default.
>>
> IIRC netchild's concern was that these were not in Linux 2.6.16 that
> our Linuxolator defaults to emulating, so I put them under #ifdef.
> Did you find that skype video doesn't work without them?  Back when
> I tested it it didn't seem to make a difference...  (Tho I never
> could get skype 2.2.0.35 to work with video, I think because it
> tries to use inotify() which we don't emulate.)
>

ok, I see now. On my desktop, when trying to test skype video, I had 
been getting:

Jan 13 15:54:40 mkushnir kernel: linux: pid 48266 (skype): ioctl fd=44, 
cmd=0x564a ('V',74) is not implemented

I was confused by that pwcview worked for me, but skype didn't. I found 
that 0x564a is in that bunch of those under #ifdef ...

I then recompiled the linux module with VIDIOC_ENUM_FRAMESIZES defined, 
and skype started to send video. Yes, skype still tries to call 
inotify_init() at startup, and one of its child processes dies desperately:

Jan 13 20:01:58 mkushnir kernel: linux: pid 84673 (skype): ioctl fd=26, 
cmd=0x8b01 ('�',1) is not implemented
Jan 13 20:01:58 mkushnir last message repeated 9 times
Jan 13 20:01:58 mkushnir kernel: linux: pid 84673 (skype): ioctl fd=27, 
cmd=0x8b01 ('�',1) is not implemented
Jan 13 20:01:58 mkushnir last message repeated 9 times
Jan 13 20:01:58 mkushnir kernel: linux: pid 84682 (skype): syscall 
inotify_init not implemented
Jan 13 20:01:59 mkushnir kernel: Failed to write core file for process 
skype (error 14)
Jan 13 20:01:59 mkushnir kernel: pid 84681 (skype), uid 1001: exited on 
signal 6


but then video test passes OK, and I can actually send/receive video in 
a session.


I don't know if this breaks other things, so the ioctls probably should 
be kept closed.

--
Markiyan.

>   HTH,
> 	Juergen
>




More information about the freebsd-stable mailing list