V4L/DVB (4861): Remove the need of a STD array for drivers using video_ioctl2
video_ioctl2 will auto-generate standard entries at ENUM_FMT. Also, now, a driver may return a subset of the video array at the return, to be stored as the current_norm. For example, a driver may ask for V4L2_STD_PAL. At return, driver may change it to V4L2_STD_PAL_B. This way, a futher call to G_STD will return the exact detected video std. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
@@ -87,6 +87,78 @@ MODULE_LICENSE("GPL");
|
||||
*/
|
||||
|
||||
|
||||
char *v4l2_norm_to_name(v4l2_std_id id)
|
||||
{
|
||||
char *name;
|
||||
|
||||
switch (id) {
|
||||
case V4L2_STD_PAL:
|
||||
name="PAL"; break;
|
||||
case V4L2_STD_PAL_BG:
|
||||
name="PAL-BG"; break;
|
||||
case V4L2_STD_PAL_DK:
|
||||
name="PAL-DK"; break;
|
||||
case V4L2_STD_PAL_B:
|
||||
name="PAL-B"; break;
|
||||
case V4L2_STD_PAL_B1:
|
||||
name="PAL-B1"; break;
|
||||
case V4L2_STD_PAL_G:
|
||||
name="PAL-G"; break;
|
||||
case V4L2_STD_PAL_H:
|
||||
name="PAL-H"; break;
|
||||
case V4L2_STD_PAL_I:
|
||||
name="PAL-I"; break;
|
||||
case V4L2_STD_PAL_D:
|
||||
name="PAL-D"; break;
|
||||
case V4L2_STD_PAL_D1:
|
||||
name="PAL-D1"; break;
|
||||
case V4L2_STD_PAL_K:
|
||||
name="PAL-K"; break;
|
||||
case V4L2_STD_PAL_M:
|
||||
name="PAL-M"; break;
|
||||
case V4L2_STD_PAL_N:
|
||||
name="PAL-N"; break;
|
||||
case V4L2_STD_PAL_Nc:
|
||||
name="PAL-Nc"; break;
|
||||
case V4L2_STD_PAL_60:
|
||||
name="PAL-60"; break;
|
||||
case V4L2_STD_NTSC:
|
||||
name="NTSC"; break;
|
||||
case V4L2_STD_NTSC_M:
|
||||
name="NTSC-M"; break;
|
||||
case V4L2_STD_NTSC_M_JP:
|
||||
name="NTSC-M-JP"; break;
|
||||
case V4L2_STD_NTSC_443:
|
||||
name="NTSC-443"; break;
|
||||
case V4L2_STD_NTSC_M_KR:
|
||||
name="NTSC-M-KR"; break;
|
||||
case V4L2_STD_SECAM:
|
||||
name="SECAM"; break;
|
||||
case V4L2_STD_SECAM_DK:
|
||||
name="SECAM-DK"; break;
|
||||
case V4L2_STD_SECAM_B:
|
||||
name="SECAM-B"; break;
|
||||
case V4L2_STD_SECAM_D:
|
||||
name="SECAM-D"; break;
|
||||
case V4L2_STD_SECAM_G:
|
||||
name="SECAM-G"; break;
|
||||
case V4L2_STD_SECAM_H:
|
||||
name="SECAM-H"; break;
|
||||
case V4L2_STD_SECAM_K:
|
||||
name="SECAM-K"; break;
|
||||
case V4L2_STD_SECAM_K1:
|
||||
name="SECAM-K1"; break;
|
||||
case V4L2_STD_SECAM_L:
|
||||
name="SECAM-L"; break;
|
||||
case V4L2_STD_SECAM_LC:
|
||||
name="SECAM-LC"; break;
|
||||
default:
|
||||
name="Unknown"; break;
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
/* Fill in the fields of a v4l2_standard structure according to the
|
||||
'id' and 'transmission' parameters. Returns negative on error. */
|
||||
int v4l2_video_std_construct(struct v4l2_standard *vs,
|
||||
@@ -1453,6 +1525,7 @@ u32 v4l2_ctrl_next(const u32 * const * ctrl_classes, u32 id)
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
EXPORT_SYMBOL(v4l2_norm_to_name);
|
||||
EXPORT_SYMBOL(v4l2_video_std_construct);
|
||||
|
||||
EXPORT_SYMBOL(v4l2_prio_init);
|
||||
|
Reference in New Issue
Block a user