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