diff --git a/internal/v4l2/v4l2_linux.go b/internal/v4l2/v4l2_linux.go index 4c67235d..a16779f4 100644 --- a/internal/v4l2/v4l2_linux.go +++ b/internal/v4l2/v4l2_linux.go @@ -58,9 +58,9 @@ func apiV4L2(w http.ResponseWriter, r *http.Request) { if source.Name != "" { sizes, _ := dev.ListSizes(fourCC) - for i := 0; i < len(sizes); i += 2 { - size := fmt.Sprintf("%dx%d", sizes[i], sizes[i+1]) - if i > 0 { + for _, wh := range sizes { + size := fmt.Sprintf("%dx%d", wh[0], wh[1]) + if source.Info != "" { source.Info += " " + size } else { source.Info = size diff --git a/pkg/v4l2/device/device.go b/pkg/v4l2/device/device.go index 4e4d6ade..7377aef6 100644 --- a/pkg/v4l2/device/device.go +++ b/pkg/v4l2/device/device.go @@ -66,8 +66,8 @@ func (d *Device) ListFormats() ([]uint32, error) { return items, nil } -func (d *Device) ListSizes(pixFmt uint32) ([]uint32, error) { - var items []uint32 +func (d *Device) ListSizes(pixFmt uint32) ([][2]uint32, error) { + var items [][2]uint32 for i := uint32(0); ; i++ { fs := v4l2_frmsizeenum{ @@ -85,7 +85,7 @@ func (d *Device) ListSizes(pixFmt uint32) ([]uint32, error) { continue } - items = append(items, fs.discrete.width, fs.discrete.height) + items = append(items, [2]uint32{fs.discrete.width, fs.discrete.height}) } return items, nil