Commit 10afbef15e7bba5e1008f583852077743d28c395
Committed by
Mauro Carvalho Chehab
1 parent
1df795370c
Exists in
master
and in
4 other branches
V4L/DVB (10698): v4l2-common: remove v4l2_ctrl_query_fill_std
The v4l2_ctrl_query_fill_std() function wasn't one the best idea I ever had. It doesn't add anything valuable that cannot be expressed equally well with v4l2_ctrl_query_fill and only adds overhead. Replace it with v4l2_ctrl_query_fill() everywhere it is used and remove it from v4l2_common.c. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Showing 13 changed files with 141 additions and 202 deletions Side-by-side Diff
- drivers/media/video/cx18/cx18-av-core.c
- drivers/media/video/cx2341x.c
- drivers/media/video/cx25840/cx25840-core.c
- drivers/media/video/msp3400-driver.c
- drivers/media/video/saa7115.c
- drivers/media/video/saa7134/saa6752hs.c
- drivers/media/video/saa7134/saa7134-empress.c
- drivers/media/video/tda7432.c
- drivers/media/video/tda9875.c
- drivers/media/video/tvaudio.c
- drivers/media/video/tvp514x.c
- drivers/media/video/v4l2-common.c
- include/media/v4l2-common.h
drivers/media/video/cx18/cx18-av-core.c
... | ... | @@ -788,10 +788,12 @@ |
788 | 788 | |
789 | 789 | switch (qc->id) { |
790 | 790 | case V4L2_CID_BRIGHTNESS: |
791 | + return v4l2_ctrl_query_fill(qc, 0, 255, 1, 128); | |
791 | 792 | case V4L2_CID_CONTRAST: |
792 | 793 | case V4L2_CID_SATURATION: |
794 | + return v4l2_ctrl_query_fill(qc, 0, 127, 1, 64); | |
793 | 795 | case V4L2_CID_HUE: |
794 | - return v4l2_ctrl_query_fill_std(qc); | |
796 | + return v4l2_ctrl_query_fill(qc, -128, 127, 1, 0); | |
795 | 797 | default: |
796 | 798 | break; |
797 | 799 | } |
798 | 800 | |
... | ... | @@ -801,10 +803,11 @@ |
801 | 803 | return v4l2_ctrl_query_fill(qc, 0, 65535, |
802 | 804 | 65535 / 100, state->default_volume); |
803 | 805 | case V4L2_CID_AUDIO_MUTE: |
806 | + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); | |
804 | 807 | case V4L2_CID_AUDIO_BALANCE: |
805 | 808 | case V4L2_CID_AUDIO_BASS: |
806 | 809 | case V4L2_CID_AUDIO_TREBLE: |
807 | - return v4l2_ctrl_query_fill_std(qc); | |
810 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 32768); | |
808 | 811 | default: |
809 | 812 | return -EINVAL; |
810 | 813 | } |
drivers/media/video/cx2341x.c
... | ... | @@ -500,6 +500,29 @@ |
500 | 500 | int err; |
501 | 501 | |
502 | 502 | switch (qctrl->id) { |
503 | + case V4L2_CID_MPEG_STREAM_TYPE: | |
504 | + return v4l2_ctrl_query_fill(qctrl, | |
505 | + V4L2_MPEG_STREAM_TYPE_MPEG2_PS, | |
506 | + V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD, 1, | |
507 | + V4L2_MPEG_STREAM_TYPE_MPEG2_PS); | |
508 | + | |
509 | + case V4L2_CID_MPEG_STREAM_VBI_FMT: | |
510 | + if (params->capabilities & CX2341X_CAP_HAS_SLICED_VBI) | |
511 | + return v4l2_ctrl_query_fill(qctrl, | |
512 | + V4L2_MPEG_STREAM_VBI_FMT_NONE, | |
513 | + V4L2_MPEG_STREAM_VBI_FMT_IVTV, 1, | |
514 | + V4L2_MPEG_STREAM_VBI_FMT_NONE); | |
515 | + return cx2341x_ctrl_query_fill(qctrl, | |
516 | + V4L2_MPEG_STREAM_VBI_FMT_NONE, | |
517 | + V4L2_MPEG_STREAM_VBI_FMT_NONE, 1, | |
518 | + default_params.stream_vbi_fmt); | |
519 | + | |
520 | + case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: | |
521 | + return v4l2_ctrl_query_fill(qctrl, | |
522 | + V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100, | |
523 | + V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000, 1, | |
524 | + V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000); | |
525 | + | |
503 | 526 | case V4L2_CID_MPEG_AUDIO_ENCODING: |
504 | 527 | if (params->capabilities & CX2341X_CAP_HAS_AC3) { |
505 | 528 | /* |
506 | 529 | |
... | ... | @@ -531,10 +554,37 @@ |
531 | 554 | qctrl->flags |= V4L2_CTRL_FLAG_INACTIVE; |
532 | 555 | return 0; |
533 | 556 | |
534 | - case V4L2_CID_MPEG_AUDIO_L1_BITRATE: | |
535 | - case V4L2_CID_MPEG_AUDIO_L3_BITRATE: | |
536 | - return -EINVAL; | |
557 | + case V4L2_CID_MPEG_AUDIO_MODE: | |
558 | + return v4l2_ctrl_query_fill(qctrl, | |
559 | + V4L2_MPEG_AUDIO_MODE_STEREO, | |
560 | + V4L2_MPEG_AUDIO_MODE_MONO, 1, | |
561 | + V4L2_MPEG_AUDIO_MODE_STEREO); | |
537 | 562 | |
563 | + case V4L2_CID_MPEG_AUDIO_MODE_EXTENSION: | |
564 | + err = v4l2_ctrl_query_fill(qctrl, | |
565 | + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4, | |
566 | + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16, 1, | |
567 | + V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4); | |
568 | + if (err == 0 && | |
569 | + params->audio_mode != V4L2_MPEG_AUDIO_MODE_JOINT_STEREO) | |
570 | + qctrl->flags |= V4L2_CTRL_FLAG_INACTIVE; | |
571 | + return err; | |
572 | + | |
573 | + case V4L2_CID_MPEG_AUDIO_EMPHASIS: | |
574 | + return v4l2_ctrl_query_fill(qctrl, | |
575 | + V4L2_MPEG_AUDIO_EMPHASIS_NONE, | |
576 | + V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17, 1, | |
577 | + V4L2_MPEG_AUDIO_EMPHASIS_NONE); | |
578 | + | |
579 | + case V4L2_CID_MPEG_AUDIO_CRC: | |
580 | + return v4l2_ctrl_query_fill(qctrl, | |
581 | + V4L2_MPEG_AUDIO_CRC_NONE, | |
582 | + V4L2_MPEG_AUDIO_CRC_CRC16, 1, | |
583 | + V4L2_MPEG_AUDIO_CRC_NONE); | |
584 | + | |
585 | + case V4L2_CID_MPEG_AUDIO_MUTE: | |
586 | + return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0); | |
587 | + | |
538 | 588 | case V4L2_CID_MPEG_AUDIO_AC3_BITRATE: |
539 | 589 | err = v4l2_ctrl_query_fill(qctrl, |
540 | 590 | V4L2_MPEG_AUDIO_AC3_BITRATE_48K, |
... | ... | @@ -550,13 +600,6 @@ |
550 | 600 | qctrl->flags |= V4L2_CTRL_FLAG_DISABLED; |
551 | 601 | return 0; |
552 | 602 | |
553 | - case V4L2_CID_MPEG_AUDIO_MODE_EXTENSION: | |
554 | - err = v4l2_ctrl_query_fill_std(qctrl); | |
555 | - if (err == 0 && | |
556 | - params->audio_mode != V4L2_MPEG_AUDIO_MODE_JOINT_STEREO) | |
557 | - qctrl->flags |= V4L2_CTRL_FLAG_INACTIVE; | |
558 | - return err; | |
559 | - | |
560 | 603 | case V4L2_CID_MPEG_VIDEO_ENCODING: |
561 | 604 | /* this setting is read-only for the cx2341x since the |
562 | 605 | V4L2_CID_MPEG_STREAM_TYPE really determines the |
563 | 606 | |
564 | 607 | |
565 | 608 | |
566 | 609 | |
567 | 610 | |
568 | 611 | |
... | ... | @@ -569,33 +612,52 @@ |
569 | 612 | qctrl->flags |= V4L2_CTRL_FLAG_READ_ONLY; |
570 | 613 | return err; |
571 | 614 | |
615 | + case V4L2_CID_MPEG_VIDEO_ASPECT: | |
616 | + return v4l2_ctrl_query_fill(qctrl, | |
617 | + V4L2_MPEG_VIDEO_ASPECT_1x1, | |
618 | + V4L2_MPEG_VIDEO_ASPECT_221x100, 1, | |
619 | + V4L2_MPEG_VIDEO_ASPECT_4x3); | |
620 | + | |
621 | + case V4L2_CID_MPEG_VIDEO_B_FRAMES: | |
622 | + return v4l2_ctrl_query_fill(qctrl, 0, 33, 1, 2); | |
623 | + | |
624 | + case V4L2_CID_MPEG_VIDEO_GOP_SIZE: | |
625 | + return v4l2_ctrl_query_fill(qctrl, 1, 34, 1, | |
626 | + params->is_50hz ? 12 : 15); | |
627 | + | |
628 | + case V4L2_CID_MPEG_VIDEO_GOP_CLOSURE: | |
629 | + return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 1); | |
630 | + | |
572 | 631 | case V4L2_CID_MPEG_VIDEO_BITRATE_MODE: |
573 | - err = v4l2_ctrl_query_fill_std(qctrl); | |
632 | + err = v4l2_ctrl_query_fill(qctrl, | |
633 | + V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, | |
634 | + V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, 1, | |
635 | + V4L2_MPEG_VIDEO_BITRATE_MODE_VBR); | |
574 | 636 | if (err == 0 && |
575 | 637 | params->video_encoding == V4L2_MPEG_VIDEO_ENCODING_MPEG_1) |
576 | 638 | qctrl->flags |= V4L2_CTRL_FLAG_INACTIVE; |
577 | 639 | return err; |
578 | 640 | |
641 | + case V4L2_CID_MPEG_VIDEO_BITRATE: | |
642 | + return v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 6000000); | |
643 | + | |
579 | 644 | case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK: |
580 | - err = v4l2_ctrl_query_fill_std(qctrl); | |
645 | + err = v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 8000000); | |
581 | 646 | if (err == 0 && |
582 | 647 | params->video_bitrate_mode == |
583 | 648 | V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) |
584 | 649 | qctrl->flags |= V4L2_CTRL_FLAG_INACTIVE; |
585 | 650 | return err; |
586 | 651 | |
587 | - case V4L2_CID_MPEG_STREAM_VBI_FMT: | |
588 | - if (params->capabilities & CX2341X_CAP_HAS_SLICED_VBI) | |
589 | - return v4l2_ctrl_query_fill_std(qctrl); | |
590 | - return cx2341x_ctrl_query_fill(qctrl, | |
591 | - V4L2_MPEG_STREAM_VBI_FMT_NONE, | |
592 | - V4L2_MPEG_STREAM_VBI_FMT_NONE, 1, | |
593 | - default_params.stream_vbi_fmt); | |
652 | + case V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION: | |
653 | + return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0); | |
594 | 654 | |
595 | - case V4L2_CID_MPEG_VIDEO_GOP_SIZE: | |
596 | - return v4l2_ctrl_query_fill(qctrl, 1, 34, 1, | |
597 | - params->is_50hz ? 12 : 15); | |
655 | + case V4L2_CID_MPEG_VIDEO_MUTE: | |
656 | + return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0); | |
598 | 657 | |
658 | + case V4L2_CID_MPEG_VIDEO_MUTE_YUV: /* Init YUV (really YCbCr) to black */ | |
659 | + return v4l2_ctrl_query_fill(qctrl, 0, 0xffffff, 1, 0x008080); | |
660 | + | |
599 | 661 | /* CX23415/6 specific */ |
600 | 662 | case V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE: |
601 | 663 | return cx2341x_ctrl_query_fill(qctrl, |
... | ... | @@ -696,7 +758,7 @@ |
696 | 758 | default_params.stream_insert_nav_packets); |
697 | 759 | |
698 | 760 | default: |
699 | - return v4l2_ctrl_query_fill_std(qctrl); | |
761 | + return -EINVAL; | |
700 | 762 | |
701 | 763 | } |
702 | 764 | } |
drivers/media/video/cx25840/cx25840-core.c
... | ... | @@ -1205,10 +1205,12 @@ |
1205 | 1205 | |
1206 | 1206 | switch (qc->id) { |
1207 | 1207 | case V4L2_CID_BRIGHTNESS: |
1208 | + return v4l2_ctrl_query_fill(qc, 0, 255, 1, 128); | |
1208 | 1209 | case V4L2_CID_CONTRAST: |
1209 | 1210 | case V4L2_CID_SATURATION: |
1211 | + return v4l2_ctrl_query_fill(qc, 0, 127, 1, 64); | |
1210 | 1212 | case V4L2_CID_HUE: |
1211 | - return v4l2_ctrl_query_fill_std(qc); | |
1213 | + return v4l2_ctrl_query_fill(qc, -128, 127, 1, 0); | |
1212 | 1214 | default: |
1213 | 1215 | break; |
1214 | 1216 | } |
1215 | 1217 | |
... | ... | @@ -1220,10 +1222,11 @@ |
1220 | 1222 | return v4l2_ctrl_query_fill(qc, 0, 65535, |
1221 | 1223 | 65535 / 100, state->default_volume); |
1222 | 1224 | case V4L2_CID_AUDIO_MUTE: |
1225 | + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); | |
1223 | 1226 | case V4L2_CID_AUDIO_BALANCE: |
1224 | 1227 | case V4L2_CID_AUDIO_BASS: |
1225 | 1228 | case V4L2_CID_AUDIO_TREBLE: |
1226 | - return v4l2_ctrl_query_fill_std(qc); | |
1229 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 32768); | |
1227 | 1230 | default: |
1228 | 1231 | return -EINVAL; |
1229 | 1232 | } |
drivers/media/video/msp3400-driver.c
... | ... | @@ -713,22 +713,24 @@ |
713 | 713 | struct msp_state *state = to_state(sd); |
714 | 714 | |
715 | 715 | switch (qc->id) { |
716 | - case V4L2_CID_AUDIO_VOLUME: | |
717 | - case V4L2_CID_AUDIO_MUTE: | |
718 | - return v4l2_ctrl_query_fill_std(qc); | |
719 | - default: | |
720 | - break; | |
716 | + case V4L2_CID_AUDIO_VOLUME: | |
717 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 58880); | |
718 | + case V4L2_CID_AUDIO_MUTE: | |
719 | + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); | |
720 | + default: | |
721 | + break; | |
721 | 722 | } |
722 | 723 | if (!state->has_sound_processing) |
723 | 724 | return -EINVAL; |
724 | 725 | switch (qc->id) { |
725 | - case V4L2_CID_AUDIO_LOUDNESS: | |
726 | - case V4L2_CID_AUDIO_BALANCE: | |
727 | - case V4L2_CID_AUDIO_BASS: | |
728 | - case V4L2_CID_AUDIO_TREBLE: | |
729 | - return v4l2_ctrl_query_fill_std(qc); | |
730 | - default: | |
731 | - return -EINVAL; | |
726 | + case V4L2_CID_AUDIO_LOUDNESS: | |
727 | + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); | |
728 | + case V4L2_CID_AUDIO_BALANCE: | |
729 | + case V4L2_CID_AUDIO_BASS: | |
730 | + case V4L2_CID_AUDIO_TREBLE: | |
731 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 32768); | |
732 | + default: | |
733 | + return -EINVAL; | |
732 | 734 | } |
733 | 735 | return 0; |
734 | 736 | } |
drivers/media/video/saa7115.c
... | ... | @@ -1206,10 +1206,12 @@ |
1206 | 1206 | { |
1207 | 1207 | switch (qc->id) { |
1208 | 1208 | case V4L2_CID_BRIGHTNESS: |
1209 | + return v4l2_ctrl_query_fill(qc, 0, 255, 1, 128); | |
1209 | 1210 | case V4L2_CID_CONTRAST: |
1210 | 1211 | case V4L2_CID_SATURATION: |
1212 | + return v4l2_ctrl_query_fill(qc, 0, 127, 1, 64); | |
1211 | 1213 | case V4L2_CID_HUE: |
1212 | - return v4l2_ctrl_query_fill_std(qc); | |
1214 | + return v4l2_ctrl_query_fill(qc, -128, 127, 1, 0); | |
1213 | 1215 | default: |
1214 | 1216 | return -EINVAL; |
1215 | 1217 | } |
drivers/media/video/saa7134/saa6752hs.c
... | ... | @@ -592,7 +592,7 @@ |
592 | 592 | V4L2_MPEG_VIDEO_ASPECT_4x3); |
593 | 593 | |
594 | 594 | case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK: |
595 | - err = v4l2_ctrl_query_fill_std(qctrl); | |
595 | + err = v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 8000000); | |
596 | 596 | if (err == 0 && |
597 | 597 | params->vi_bitrate_mode == |
598 | 598 | V4L2_MPEG_VIDEO_BITRATE_MODE_CBR) |
599 | 599 | |
600 | 600 | |
601 | 601 | |
602 | 602 | |
603 | 603 | |
... | ... | @@ -606,12 +606,20 @@ |
606 | 606 | V4L2_MPEG_STREAM_TYPE_MPEG2_TS); |
607 | 607 | |
608 | 608 | case V4L2_CID_MPEG_VIDEO_BITRATE_MODE: |
609 | + return v4l2_ctrl_query_fill(qctrl, | |
610 | + V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, | |
611 | + V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, 1, | |
612 | + V4L2_MPEG_VIDEO_BITRATE_MODE_VBR); | |
609 | 613 | case V4L2_CID_MPEG_VIDEO_BITRATE: |
614 | + return v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 6000000); | |
610 | 615 | case V4L2_CID_MPEG_STREAM_PID_PMT: |
616 | + return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 16); | |
611 | 617 | case V4L2_CID_MPEG_STREAM_PID_AUDIO: |
618 | + return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 260); | |
612 | 619 | case V4L2_CID_MPEG_STREAM_PID_VIDEO: |
620 | + return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 256); | |
613 | 621 | case V4L2_CID_MPEG_STREAM_PID_PCR: |
614 | - return v4l2_ctrl_query_fill_std(qctrl); | |
622 | + return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 259); | |
615 | 623 | |
616 | 624 | default: |
617 | 625 | break; |
drivers/media/video/saa7134/saa7134-empress.c
... | ... | @@ -390,7 +390,7 @@ |
390 | 390 | if (c->id == 0) |
391 | 391 | return -EINVAL; |
392 | 392 | if (c->id == V4L2_CID_USER_CLASS || c->id == V4L2_CID_MPEG_CLASS) |
393 | - return v4l2_ctrl_query_fill_std(c); | |
393 | + return v4l2_ctrl_query_fill(c, 0, 0, 0, 0); | |
394 | 394 | if (V4L2_CTRL_ID2CLASS(c->id) != V4L2_CTRL_CLASS_MPEG) |
395 | 395 | return saa7134_queryctrl(file, priv, c); |
396 | 396 | return saa_call_empress(dev, core, queryctrl, c); |
drivers/media/video/tda7432.c
... | ... | @@ -421,12 +421,14 @@ |
421 | 421 | static int tda7432_queryctrl(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc) |
422 | 422 | { |
423 | 423 | switch (qc->id) { |
424 | - case V4L2_CID_AUDIO_MUTE: | |
425 | 424 | case V4L2_CID_AUDIO_VOLUME: |
425 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 58880); | |
426 | + case V4L2_CID_AUDIO_MUTE: | |
427 | + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); | |
426 | 428 | case V4L2_CID_AUDIO_BALANCE: |
427 | 429 | case V4L2_CID_AUDIO_BASS: |
428 | 430 | case V4L2_CID_AUDIO_TREBLE: |
429 | - return v4l2_ctrl_query_fill_std(qc); | |
431 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 32768); | |
430 | 432 | } |
431 | 433 | return -EINVAL; |
432 | 434 | } |
drivers/media/video/tda9875.c
... | ... | @@ -313,9 +313,10 @@ |
313 | 313 | { |
314 | 314 | switch (qc->id) { |
315 | 315 | case V4L2_CID_AUDIO_VOLUME: |
316 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 58880); | |
316 | 317 | case V4L2_CID_AUDIO_BASS: |
317 | 318 | case V4L2_CID_AUDIO_TREBLE: |
318 | - return v4l2_ctrl_query_fill_std(qc); | |
319 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 32768); | |
319 | 320 | } |
320 | 321 | return -EINVAL; |
321 | 322 | } |
drivers/media/video/tvaudio.c
... | ... | @@ -1636,21 +1636,24 @@ |
1636 | 1636 | |
1637 | 1637 | switch (qc->id) { |
1638 | 1638 | case V4L2_CID_AUDIO_MUTE: |
1639 | - break; | |
1639 | + return v4l2_ctrl_query_fill(qc, 0, 1, 1, 0); | |
1640 | 1640 | case V4L2_CID_AUDIO_VOLUME: |
1641 | + if (desc->flags & CHIP_HAS_VOLUME) | |
1642 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 58880); | |
1643 | + break; | |
1641 | 1644 | case V4L2_CID_AUDIO_BALANCE: |
1642 | - if (!(desc->flags & CHIP_HAS_VOLUME)) | |
1643 | - return -EINVAL; | |
1645 | + if (desc->flags & CHIP_HAS_VOLUME) | |
1646 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 32768); | |
1644 | 1647 | break; |
1645 | 1648 | case V4L2_CID_AUDIO_BASS: |
1646 | 1649 | case V4L2_CID_AUDIO_TREBLE: |
1647 | - if (!(desc->flags & CHIP_HAS_BASSTREBLE)) | |
1648 | - return -EINVAL; | |
1650 | + if (desc->flags & CHIP_HAS_BASSTREBLE) | |
1651 | + return v4l2_ctrl_query_fill(qc, 0, 65535, 65535 / 100, 32768); | |
1649 | 1652 | break; |
1650 | 1653 | default: |
1651 | - return -EINVAL; | |
1654 | + break; | |
1652 | 1655 | } |
1653 | - return v4l2_ctrl_query_fill_std(qc); | |
1656 | + return -EINVAL; | |
1654 | 1657 | } |
1655 | 1658 | |
1656 | 1659 | static int tvaudio_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *rt) |
drivers/media/video/tvp514x.c
... | ... | @@ -725,10 +725,9 @@ |
725 | 725 | |
726 | 726 | switch (qctrl->id) { |
727 | 727 | case V4L2_CID_BRIGHTNESS: |
728 | - /* Brightness supported is same as standard one (0-255), | |
729 | - * so make use of standard API provided. | |
728 | + /* Brightness supported is (0-255), | |
730 | 729 | */ |
731 | - err = v4l2_ctrl_query_fill_std(qctrl); | |
730 | + err = v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 128); | |
732 | 731 | break; |
733 | 732 | case V4L2_CID_CONTRAST: |
734 | 733 | case V4L2_CID_SATURATION: |
drivers/media/video/v4l2-common.c
... | ... | @@ -588,151 +588,6 @@ |
588 | 588 | } |
589 | 589 | EXPORT_SYMBOL(v4l2_ctrl_query_fill); |
590 | 590 | |
591 | -/* Fill in a struct v4l2_queryctrl with standard values based on | |
592 | - the control ID. */ | |
593 | -int v4l2_ctrl_query_fill_std(struct v4l2_queryctrl *qctrl) | |
594 | -{ | |
595 | - switch (qctrl->id) { | |
596 | - /* USER controls */ | |
597 | - case V4L2_CID_USER_CLASS: | |
598 | - case V4L2_CID_MPEG_CLASS: | |
599 | - case V4L2_CID_CAMERA_CLASS: | |
600 | - return v4l2_ctrl_query_fill(qctrl, 0, 0, 0, 0); | |
601 | - case V4L2_CID_AUDIO_VOLUME: | |
602 | - return v4l2_ctrl_query_fill(qctrl, 0, 65535, 65535 / 100, 58880); | |
603 | - case V4L2_CID_AUDIO_MUTE: | |
604 | - case V4L2_CID_AUDIO_LOUDNESS: | |
605 | - return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0); | |
606 | - case V4L2_CID_AUDIO_BALANCE: | |
607 | - case V4L2_CID_AUDIO_BASS: | |
608 | - case V4L2_CID_AUDIO_TREBLE: | |
609 | - return v4l2_ctrl_query_fill(qctrl, 0, 65535, 65535 / 100, 32768); | |
610 | - case V4L2_CID_BRIGHTNESS: | |
611 | - return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 128); | |
612 | - case V4L2_CID_CONTRAST: | |
613 | - case V4L2_CID_SATURATION: | |
614 | - return v4l2_ctrl_query_fill(qctrl, 0, 127, 1, 64); | |
615 | - case V4L2_CID_HUE: | |
616 | - return v4l2_ctrl_query_fill(qctrl, -128, 127, 1, 0); | |
617 | - case V4L2_CID_COLORFX: | |
618 | - return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0); | |
619 | - | |
620 | - /* MPEG controls */ | |
621 | - case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: | |
622 | - return v4l2_ctrl_query_fill(qctrl, | |
623 | - V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100, | |
624 | - V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000, 1, | |
625 | - V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000); | |
626 | - case V4L2_CID_MPEG_AUDIO_ENCODING: | |
627 | - return v4l2_ctrl_query_fill(qctrl, | |
628 | - V4L2_MPEG_AUDIO_ENCODING_LAYER_1, | |
629 | - V4L2_MPEG_AUDIO_ENCODING_AC3, 1, | |
630 | - V4L2_MPEG_AUDIO_ENCODING_LAYER_2); | |
631 | - case V4L2_CID_MPEG_AUDIO_L1_BITRATE: | |
632 | - return v4l2_ctrl_query_fill(qctrl, | |
633 | - V4L2_MPEG_AUDIO_L1_BITRATE_32K, | |
634 | - V4L2_MPEG_AUDIO_L1_BITRATE_448K, 1, | |
635 | - V4L2_MPEG_AUDIO_L1_BITRATE_256K); | |
636 | - case V4L2_CID_MPEG_AUDIO_L2_BITRATE: | |
637 | - return v4l2_ctrl_query_fill(qctrl, | |
638 | - V4L2_MPEG_AUDIO_L2_BITRATE_32K, | |
639 | - V4L2_MPEG_AUDIO_L2_BITRATE_384K, 1, | |
640 | - V4L2_MPEG_AUDIO_L2_BITRATE_224K); | |
641 | - case V4L2_CID_MPEG_AUDIO_L3_BITRATE: | |
642 | - return v4l2_ctrl_query_fill(qctrl, | |
643 | - V4L2_MPEG_AUDIO_L3_BITRATE_32K, | |
644 | - V4L2_MPEG_AUDIO_L3_BITRATE_320K, 1, | |
645 | - V4L2_MPEG_AUDIO_L3_BITRATE_192K); | |
646 | - case V4L2_CID_MPEG_AUDIO_AAC_BITRATE: | |
647 | - return v4l2_ctrl_query_fill(qctrl, 0, 6400, 1, 3200000); | |
648 | - case V4L2_CID_MPEG_AUDIO_AC3_BITRATE: | |
649 | - return v4l2_ctrl_query_fill(qctrl, | |
650 | - V4L2_MPEG_AUDIO_AC3_BITRATE_32K, | |
651 | - V4L2_MPEG_AUDIO_AC3_BITRATE_640K, 1, | |
652 | - V4L2_MPEG_AUDIO_AC3_BITRATE_384K); | |
653 | - case V4L2_CID_MPEG_AUDIO_MODE: | |
654 | - return v4l2_ctrl_query_fill(qctrl, | |
655 | - V4L2_MPEG_AUDIO_MODE_STEREO, | |
656 | - V4L2_MPEG_AUDIO_MODE_MONO, 1, | |
657 | - V4L2_MPEG_AUDIO_MODE_STEREO); | |
658 | - case V4L2_CID_MPEG_AUDIO_MODE_EXTENSION: | |
659 | - return v4l2_ctrl_query_fill(qctrl, | |
660 | - V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4, | |
661 | - V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16, 1, | |
662 | - V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4); | |
663 | - case V4L2_CID_MPEG_AUDIO_EMPHASIS: | |
664 | - return v4l2_ctrl_query_fill(qctrl, | |
665 | - V4L2_MPEG_AUDIO_EMPHASIS_NONE, | |
666 | - V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17, 1, | |
667 | - V4L2_MPEG_AUDIO_EMPHASIS_NONE); | |
668 | - case V4L2_CID_MPEG_AUDIO_CRC: | |
669 | - return v4l2_ctrl_query_fill(qctrl, | |
670 | - V4L2_MPEG_AUDIO_CRC_NONE, | |
671 | - V4L2_MPEG_AUDIO_CRC_CRC16, 1, | |
672 | - V4L2_MPEG_AUDIO_CRC_NONE); | |
673 | - case V4L2_CID_MPEG_AUDIO_MUTE: | |
674 | - return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0); | |
675 | - case V4L2_CID_MPEG_VIDEO_ENCODING: | |
676 | - return v4l2_ctrl_query_fill(qctrl, | |
677 | - V4L2_MPEG_VIDEO_ENCODING_MPEG_1, | |
678 | - V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC, 1, | |
679 | - V4L2_MPEG_VIDEO_ENCODING_MPEG_2); | |
680 | - case V4L2_CID_MPEG_VIDEO_ASPECT: | |
681 | - return v4l2_ctrl_query_fill(qctrl, | |
682 | - V4L2_MPEG_VIDEO_ASPECT_1x1, | |
683 | - V4L2_MPEG_VIDEO_ASPECT_221x100, 1, | |
684 | - V4L2_MPEG_VIDEO_ASPECT_4x3); | |
685 | - case V4L2_CID_MPEG_VIDEO_B_FRAMES: | |
686 | - return v4l2_ctrl_query_fill(qctrl, 0, 33, 1, 2); | |
687 | - case V4L2_CID_MPEG_VIDEO_GOP_SIZE: | |
688 | - return v4l2_ctrl_query_fill(qctrl, 1, 34, 1, 12); | |
689 | - case V4L2_CID_MPEG_VIDEO_GOP_CLOSURE: | |
690 | - return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 1); | |
691 | - case V4L2_CID_MPEG_VIDEO_PULLDOWN: | |
692 | - return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0); | |
693 | - case V4L2_CID_MPEG_VIDEO_BITRATE_MODE: | |
694 | - return v4l2_ctrl_query_fill(qctrl, | |
695 | - V4L2_MPEG_VIDEO_BITRATE_MODE_VBR, | |
696 | - V4L2_MPEG_VIDEO_BITRATE_MODE_CBR, 1, | |
697 | - V4L2_MPEG_VIDEO_BITRATE_MODE_VBR); | |
698 | - case V4L2_CID_MPEG_VIDEO_BITRATE: | |
699 | - return v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 6000000); | |
700 | - case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK: | |
701 | - return v4l2_ctrl_query_fill(qctrl, 0, 27000000, 1, 8000000); | |
702 | - case V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION: | |
703 | - return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0); | |
704 | - case V4L2_CID_MPEG_VIDEO_MUTE: | |
705 | - return v4l2_ctrl_query_fill(qctrl, 0, 1, 1, 0); | |
706 | - case V4L2_CID_MPEG_VIDEO_MUTE_YUV: /* Init YUV (really YCbCr) to black */ | |
707 | - return v4l2_ctrl_query_fill(qctrl, 0, 0xffffff, 1, 0x008080); | |
708 | - case V4L2_CID_MPEG_STREAM_TYPE: | |
709 | - return v4l2_ctrl_query_fill(qctrl, | |
710 | - V4L2_MPEG_STREAM_TYPE_MPEG2_PS, | |
711 | - V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD, 1, | |
712 | - V4L2_MPEG_STREAM_TYPE_MPEG2_PS); | |
713 | - case V4L2_CID_MPEG_STREAM_PID_PMT: | |
714 | - return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 16); | |
715 | - case V4L2_CID_MPEG_STREAM_PID_AUDIO: | |
716 | - return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 260); | |
717 | - case V4L2_CID_MPEG_STREAM_PID_VIDEO: | |
718 | - return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 256); | |
719 | - case V4L2_CID_MPEG_STREAM_PID_PCR: | |
720 | - return v4l2_ctrl_query_fill(qctrl, 0, (1 << 14) - 1, 1, 259); | |
721 | - case V4L2_CID_MPEG_STREAM_PES_ID_AUDIO: | |
722 | - return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0); | |
723 | - case V4L2_CID_MPEG_STREAM_PES_ID_VIDEO: | |
724 | - return v4l2_ctrl_query_fill(qctrl, 0, 255, 1, 0); | |
725 | - case V4L2_CID_MPEG_STREAM_VBI_FMT: | |
726 | - return v4l2_ctrl_query_fill(qctrl, | |
727 | - V4L2_MPEG_STREAM_VBI_FMT_NONE, | |
728 | - V4L2_MPEG_STREAM_VBI_FMT_IVTV, 1, | |
729 | - V4L2_MPEG_STREAM_VBI_FMT_NONE); | |
730 | - default: | |
731 | - return -EINVAL; | |
732 | - } | |
733 | -} | |
734 | -EXPORT_SYMBOL(v4l2_ctrl_query_fill_std); | |
735 | - | |
736 | 591 | /* Fill in a struct v4l2_querymenu based on the struct v4l2_queryctrl and |
737 | 592 | the menu. The qctrl pointer may be NULL, in which case it is ignored. |
738 | 593 | If menu_items is NULL, then the menu items are retrieved using |
include/media/v4l2-common.h
... | ... | @@ -102,7 +102,6 @@ |
102 | 102 | const char *v4l2_ctrl_get_name(u32 id); |
103 | 103 | const char **v4l2_ctrl_get_menu(u32 id); |
104 | 104 | int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 step, s32 def); |
105 | -int v4l2_ctrl_query_fill_std(struct v4l2_queryctrl *qctrl); | |
106 | 105 | int v4l2_ctrl_query_menu(struct v4l2_querymenu *qmenu, |
107 | 106 | struct v4l2_queryctrl *qctrl, const char **menu_items); |
108 | 107 | #define V4L2_CTRL_MENU_IDS_END (0xffffffff) |