[RFC PATCH 00/14] QUERYSTD fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch series cleans up various drivers with respect to their
VIDIOC_QUERYSTD behavior. The main reason for doing this is to ensure
that the correct std value is returned when there is no signal detected.
It should return V4L2_STD_UNKNOWN. Due to a poorly worded specification
several drivers returned STD_ALL.

As mentioned in an old RFC the current behavior is inconsistent:

- saa7115, ks0127, saa7191 return 0 with std set to V4L2_STD_ALL
- adv7180, vpx3220 return 0 with std set to V4L2_STD_UNKNOWN
- saa7110 returns 0 with std set to the current std
- bt819 and bttv do not handle this case at all, and just pick 50 Hz or 60 Hz
- tvp514x returns -EINVAL.

Besides fixing this I also update the documentation and fix the misuse
of s_std(V4L2_STD_ALL) in several drivers. V4L2_STD_ALL is sometimes used
to enable autodetect mode, which is non-standard and in general should not
be done: if a receiver switches from a 60 Hz to a 50 Hz format automatically,
then this can in theory lead to buffer overruns in a DMA engine since a 50 Hz
frame is larger than the 60 Hz frame.

This behavior is removed in those drivers where it is clearly bogus.

After this patch series the following drivers still have problems:

- adv7180: supports the non-standard autodetect mode
- sta2x11: ditto (uses adv7180)

The adv7180 driver should implement querystd in the same manner as the adv7183
driver, and then the sta2x11 can be fixed as well.

- timblogiw: this calls querystd whenever a video node is opened. That's
  obviously a bad idea, but it's a fair amount of work to fix this and nobody
  I know can test this driver.

Regards,

	Hans

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux