install go2rtc on bob
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package device
|
||||
|
||||
const (
|
||||
V4L2_PIX_FMT_YUYV = 'Y' | 'U'<<8 | 'Y'<<16 | 'V'<<24
|
||||
V4L2_PIX_FMT_NV12 = 'N' | 'V'<<8 | '1'<<16 | '2'<<24
|
||||
V4L2_PIX_FMT_MJPEG = 'M' | 'J'<<8 | 'P'<<16 | 'G'<<24
|
||||
V4L2_PIX_FMT_H264 = 'H' | '2'<<8 | '6'<<16 | '4'<<24
|
||||
V4L2_PIX_FMT_HEVC = 'H' | 'E'<<8 | 'V'<<16 | 'C'<<24
|
||||
)
|
||||
|
||||
type Format struct {
|
||||
FourCC uint32
|
||||
Name string
|
||||
FFmpeg string
|
||||
}
|
||||
|
||||
var Formats = []Format{
|
||||
{V4L2_PIX_FMT_YUYV, "YUV 4:2:2", "yuyv422"},
|
||||
{V4L2_PIX_FMT_NV12, "Y/UV 4:2:0", "nv12"},
|
||||
{V4L2_PIX_FMT_MJPEG, "Motion-JPEG", "mjpeg"},
|
||||
{V4L2_PIX_FMT_H264, "H.264", "h264"},
|
||||
{V4L2_PIX_FMT_HEVC, "HEVC", "hevc"},
|
||||
}
|
||||
|
||||
func YUYVtoYUV(dst, src []byte) {
|
||||
n := len(src)
|
||||
i0 := 0
|
||||
iy := 0
|
||||
iu := n / 2
|
||||
iv := n / 4 * 3
|
||||
for i0 < n {
|
||||
dst[iy] = src[i0]
|
||||
i0++
|
||||
iy++
|
||||
dst[iu] = src[i0]
|
||||
i0++
|
||||
iu++
|
||||
dst[iy] = src[i0]
|
||||
i0++
|
||||
iy++
|
||||
dst[iv] = src[i0]
|
||||
i0++
|
||||
iv++
|
||||
}
|
||||
}
|
||||
|
||||
func NV12toYUV(dst, src []byte) {
|
||||
n := len(src)
|
||||
k := n / 6
|
||||
i0 := k * 4
|
||||
iu := i0
|
||||
iv := i0 + k
|
||||
copy(dst, src[:i0]) // copy Y
|
||||
for i0 < n {
|
||||
dst[iu] = src[i0]
|
||||
i0++
|
||||
iu++
|
||||
dst[iv] = src[i0]
|
||||
i0++
|
||||
iv++
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user