txlyre 1 bulan lalu
induk
melakukan
3953d7f057
1 mengubah file dengan 16 tambahan dan 2 penghapusan
  1. 16 2
      main.go

+ 16 - 2
main.go

@@ -152,6 +152,11 @@ func main() {
 		log.Panicln("failed to set device pixel format")
 	}
 
+	fps, err := device.GetFrameRate()
+	if err != nil {
+		log.Panicln("failed to get device frame rate")
+	}
+
 	processorQueue := make(chan []byte, bufferSize)
 	senderQueue := make(chan []byte, bufferSize)
 
@@ -176,11 +181,20 @@ func main() {
 	interrupt := make(chan os.Signal, 1)
 	signal.Notify(interrupt, os.Interrupt)
 
+	var frame_n uint32 = 0
+
 	for {
 		select {
 		case frame := <-device.GetOutput():
-			if len(frame) != 0 {
-				processorQueue <- frame
+			if len(frame) > 0 {
+				frame_n++
+
+				if frame_n == fps {
+					processorQueue <- frame
+
+					frame_n = 0
+				}
+
 			}
 		case <-interrupt:
 			log.Println("interrupted")