forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/sh
 
# Override for UVC
 
UVC_INSTANCES="uvc.gs1 uvc.gs2"
 
uvc_add_yuyv()
{
   WIDTH=$(echo $1 | cut -d'x' -f1)
   HEIGHT=$(echo $1 | cut -d'x' -f2)
   DIR=${HEIGHT}p
 
   [ ! -d $DIR ] || return 0
 
        mkdir -p $DIR
        echo $WIDTH > $DIR/wWidth
        echo $HEIGHT > $DIR/wHeight
        echo 666666 > $DIR/dwDefaultFrameInterval
        echo $((WIDTH * HEIGHT * 80)) > $DIR/dwMinBitRate
        echo $((WIDTH * HEIGHT * 160)) > $DIR/dwMaxBitRate
        echo $((WIDTH * HEIGHT * 2)) > $DIR/dwMaxVideoFrameBufferSize
        echo -e "666666\n1000000\n2000000" > $DIR/dwFrameInterval
}
 
uvc_add_mjpeg()
{
   WIDTH=$(echo $1 | cut -d'x' -f1)
   HEIGHT=$(echo $1 | cut -d'x' -f2)
   DIR=${HEIGHT}p
 
   if [ "${WIDTH}x${HEIGHT}" = 1280x1080 ]; then
       DIR=1280p
   fi
 
   [ ! -d $DIR ] || return 0
 
        mkdir -p $DIR
        echo $WIDTH > $DIR/wWidth
        echo $HEIGHT > $DIR/wHeight
        echo 333333 > $DIR/dwDefaultFrameInterval
        echo $((WIDTH * HEIGHT * 80)) > $DIR/dwMinBitRate
        echo $((WIDTH * HEIGHT * 160)) > $DIR/dwMaxBitRate
        echo $((WIDTH * HEIGHT * 2)) > $DIR/dwMaxVideoFrameBufferSize
        echo -e "333333\n500000\n666666\n1000000" > $DIR/dwFrameInterval
}
 
uvc_add_h264()
{
   WIDTH=$(echo $1 | cut -d'x' -f1)
   HEIGHT=$(echo $1 | cut -d'x' -f2)
   DIR=${HEIGHT}p
 
   [ ! -d $DIR ] || return 0
 
        mkdir -p $DIR
        echo $WIDTH > $DIR/wWidth
        echo $HEIGHT > $DIR/wHeight
        echo 333333 > $DIR/dwDefaultFrameInterval
        echo $((WIDTH * HEIGHT * 10)) > $DIR/dwMinBitRate
        echo $((WIDTH * HEIGHT * 10)) > $DIR/dwMaxBitRate
        echo -e "333333\n400000\n500000\n666666\n1000000" > $DIR/dwFrameInterval
}
 
uvc_support_resolutions()
{
   case ${1:-yuyv} in
       yuyv)    echo "640x360 640x480 1280x720";;
       mjpeg)    echo "640x360 640x480 1280x720 1920x1080";;
       h264)    echo "1280x720 1920x1080";;
   esac
}
 
uvc_pre_prepare_hook()
{
   UVC_DIR=$(pwd)
   UVC_NAME=UVC
 
   case "$(basename $UVC_DIR)" in
       uvc.gs1)    UVC_NAME="UVC RGB";;
       uvc.gs2)    UVC_NAME="UVC IR";;
   esac
   usb_try_write device_name "UVC_NAME"
 
   #echo 3072 > streaming_maxpacket
   usb_try_write uvc_num_request 2
   usb_try_write streaming_bulk 1
}