Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
orangepi-xunlong
GitHub Repository: orangepi-xunlong/orangepi-build
Path: blob/next/external/packages/bsp/rk3399/scripts/test_camera-dual.sh
17850 views
1
#!/bin/bash
2
3
preview_mode="width=640,height=480,framerate=30/1"
4
vsnk="autovideosink"
5
6
export DISPLAY=:0.0
7
8
#----------------------------------------------------------
9
# selfpath
10
declare -a PreviewDevs=()
11
# mainpath
12
declare -a PictureDevs=()
13
# camera type
14
declare -a CameraTypes=()
15
16
# isp1
17
if [ -d /sys/class/video4linux/v4l-subdev2/device/video4linux/video1 -o \
18
-d /sys/class/video4linux/v4l-subdev5/device/video4linux/video1 ]; then
19
PreviewDevs+=("/dev/video1")
20
PictureDevs+=("/dev/video0")
21
CameraTypes+=("mipi")
22
fi
23
24
# isp2
25
if [ -d /sys/class/video4linux/v4l-subdev2/device/video4linux/video6 -o \
26
-d /sys/class/video4linux/v4l-subdev5/device/video4linux/video6 ]; then
27
PreviewDevs+=("/dev/video6")
28
PictureDevs+=("/dev/video5")
29
CameraTypes+=("mipi")
30
fi
31
32
# usb camera
33
if [ -f /sys/class/video4linux/video10/name ]; then
34
if [ "$( grep -i "UVC" /sys/class/video4linux/video8/name )" ]; then
35
PreviewDevs+=("/dev/video10")
36
PictureDevs+=("/dev/video10")
37
CameraTypes+=("usb")
38
fi
39
fi
40
41
killall gst-launch-1.0 2>&1 > /dev/null
42
sleep 1
43
44
for icam in 0 1
45
do
46
[ -c "${PreviewDevs[$icam]}" ] || break
47
48
echo "Start MIPI CSI Camera Preview ${PreviewDevs[$icam]} ..."
49
50
rkargs="device=${PreviewDevs[$icam]}"
51
if [ ${CameraTypes[$icam]} = "mipi" ]; then
52
CMD="gst-launch-1.0 rkisp ${rkargs} io-mode=1 \
53
! video/x-raw,format=NV12,${preview_mode} \
54
! ${vsnk}"
55
else
56
CMD="gst-launch-1.0 v4l2src ${rkargs} io-mode=4 \
57
! videoconvert ! video/x-raw,format=NV12,${preview_mode} \
58
! ${vsnk}"
59
fi
60
61
echo "===================================================="
62
echo "=== GStreamer 1.1 command:"
63
echo "=== $(echo $CMD | sed -e 's/\r//g')"
64
echo "===================================================="
65
66
if [ $vsnk = "kmssink" -o "$(id -un)" = "pi" ]; then
67
eval "${CMD}"&
68
else
69
su orangepi -c "${CMD}"&
70
fi
71
72
sleep 2
73
done
74
75
76