|
@@ -588,151 +588,6 @@ int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 ste
|
|
|
}
|
|
|
EXPORT_SYMBOL(v4l2_ctrl_query_fill);
|
|
|
|
|
|
-/* Fill in a struct v4l2_queryctrl with standard values based on
|
|
|
- the control ID. */
|
|
|
-int v4l2_ctrl_query_fill_std(struct v4l2_queryctrl *qctrl)
|
|
|
-{
|
|
|
- switch (qctrl->id) {
|
|
|
- /* USER controls */
|
|
|
- case V4L2_CID_USER_CLASS:
|
|
|
- case V4L2_CID_MPEG_CLASS:
|
|
|
- case V4L2_CID_CAMERA_CLASS:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 0, 0, 0);
|
|
|
- case V4L2_CID_AUDIO_VOLUME:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 65535, 65535 / 100, 58880);
|
|
|
- case V4L2_CID_AUDIO_MUTE:
|
|
|
- case V4L2_CID_AUDIO_LOUDNESS:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0);
|
|
|
- case V4L2_CID_AUDIO_BALANCE:
|
|
|
- case V4L2_CID_AUDIO_BASS:
|
|
|
- case V4L2_CID_AUDIO_TREBLE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 65535, 65535 / 100, 32768);
|
|
|
- case V4L2_CID_BRIGHTNESS:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 128);
|
|
|
- case V4L2_CID_CONTRAST:
|
|
|
- case V4L2_CID_SATURATION:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 127, 1, 64);
|
|
|
- case V4L2_CID_HUE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, -128, 127, 1, 0);
|
|
|
- case V4L2_CID_COLORFX:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0);
|
|
|
-
|
|
|
- /* MPEG controls */
|
|
|
- case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100,
|
|
|
- V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000, 1,
|
|
|
- V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000);
|
|
|
- case V4L2_CID_MPEG_AUDIO_ENCODING:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_ENCODING_LAYER_1,
|
|
|
- V4L2_MPEG_AUDIO_ENCODING_AC3, 1,
|
|
|
- V4L2_MPEG_AUDIO_ENCODING_LAYER_2);
|
|
|
- case V4L2_CID_MPEG_AUDIO_L1_BITRATE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_L1_BITRATE_32K,
|
|
|
- V4L2_MPEG_AUDIO_L1_BITRATE_448K, 1,
|
|
|
- V4L2_MPEG_AUDIO_L1_BITRATE_256K);
|
|
|
- case V4L2_CID_MPEG_AUDIO_L2_BITRATE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_L2_BITRATE_32K,
|
|
|
- V4L2_MPEG_AUDIO_L2_BITRATE_384K, 1,
|
|
|
- V4L2_MPEG_AUDIO_L2_BITRATE_224K);
|
|
|
- case V4L2_CID_MPEG_AUDIO_L3_BITRATE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_L3_BITRATE_32K,
|
|
|
- V4L2_MPEG_AUDIO_L3_BITRATE_320K, 1,
|
|
|
- V4L2_MPEG_AUDIO_L3_BITRATE_192K);
|
|
|
- case V4L2_CID_MPEG_AUDIO_AAC_BITRATE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 6400, 1, 3200000);
|
|
|
- case V4L2_CID_MPEG_AUDIO_AC3_BITRATE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_AC3_BITRATE_32K,
|
|
|
- V4L2_MPEG_AUDIO_AC3_BITRATE_640K, 1,
|
|
|
- V4L2_MPEG_AUDIO_AC3_BITRATE_384K);
|
|
|
- case V4L2_CID_MPEG_AUDIO_MODE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_MODE_STEREO,
|
|
|
- V4L2_MPEG_AUDIO_MODE_MONO, 1,
|
|
|
- V4L2_MPEG_AUDIO_MODE_STEREO);
|
|
|
- case V4L2_CID_MPEG_AUDIO_MODE_EXTENSION:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4,
|
|
|
- V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16, 1,
|
|
|
- V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4);
|
|
|
- case V4L2_CID_MPEG_AUDIO_EMPHASIS:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_EMPHASIS_NONE,
|
|
|
- V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17, 1,
|
|
|
- V4L2_MPEG_AUDIO_EMPHASIS_NONE);
|
|
|
- case V4L2_CID_MPEG_AUDIO_CRC:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_AUDIO_CRC_NONE,
|
|
|
- V4L2_MPEG_AUDIO_CRC_CRC16, 1,
|
|
|
- V4L2_MPEG_AUDIO_CRC_NONE);
|
|
|
- case V4L2_CID_MPEG_AUDIO_MUTE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0);
|
|
|
- case V4L2_CID_MPEG_VIDEO_ENCODING:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_VIDEO_ENCODING_MPEG_1,
|
|
|
- V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC, 1,
|
|
|
- V4L2_MPEG_VIDEO_ENCODING_MPEG_2);
|
|
|
- case V4L2_CID_MPEG_VIDEO_ASPECT:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_VIDEO_ASPECT_1x1,
|
|
|
- V4L2_MPEG_VIDEO_ASPECT_221x100, 1,
|
|
|
- V4L2_MPEG_VIDEO_ASPECT_4x3);
|
|
|
- case V4L2_CID_MPEG_VIDEO_B_FRAMES:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 33, 1, 2);
|
|
|
- case V4L2_CID_MPEG_VIDEO_GOP_SIZE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 1, 34, 1, 12);
|
|
|
- case V4L2_CID_MPEG_VIDEO_GOP_CLOSURE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 1);
|
|
|
- case V4L2_CID_MPEG_VIDEO_PULLDOWN:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0);
|
|
|
- case V4L2_CID_MPEG_VIDEO_BITRATE_MODE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, 1,
|
|
|
- V4L2_MPEG_VIDEO_BITRATE_MODE_VBR);
|
|
|
- case V4L2_CID_MPEG_VIDEO_BITRATE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 6000000);
|
|
|
- case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 8000000);
|
|
|
- case V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0);
|
|
|
- case V4L2_CID_MPEG_VIDEO_MUTE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0);
|
|
|
- case V4L2_CID_MPEG_VIDEO_MUTE_YUV: /* Init YUV (really YCbCr) to black */
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 0xffffff, 1, 0x008080);
|
|
|
- case V4L2_CID_MPEG_STREAM_TYPE:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_STREAM_TYPE_MPEG2_PS,
|
|
|
- V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD, 1,
|
|
|
- V4L2_MPEG_STREAM_TYPE_MPEG2_PS);
|
|
|
- case V4L2_CID_MPEG_STREAM_PID_PMT:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 16);
|
|
|
- case V4L2_CID_MPEG_STREAM_PID_AUDIO:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 260);
|
|
|
- case V4L2_CID_MPEG_STREAM_PID_VIDEO:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 256);
|
|
|
- case V4L2_CID_MPEG_STREAM_PID_PCR:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 259);
|
|
|
- case V4L2_CID_MPEG_STREAM_PES_ID_AUDIO:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0);
|
|
|
- case V4L2_CID_MPEG_STREAM_PES_ID_VIDEO:
|
|
|
- return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0);
|
|
|
- case V4L2_CID_MPEG_STREAM_VBI_FMT:
|
|
|
- return v4l2_ctrl_query_fill(qctrl,
|
|
|
- V4L2_MPEG_STREAM_VBI_FMT_NONE,
|
|
|
- V4L2_MPEG_STREAM_VBI_FMT_IVTV, 1,
|
|
|
- V4L2_MPEG_STREAM_VBI_FMT_NONE);
|
|
|
- default:
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(v4l2_ctrl_query_fill_std);
|
|
|
-
|
|
|
/* Fill in a struct v4l2_querymenu based on the struct v4l2_queryctrl and
|
|
|
the menu. The qctrl pointer may be NULL, in which case it is ignored.
|
|
|
If menu_items is NULL, then the menu items are retrieved using
|