From 0ead91b8788b382d0d1e7f6eda3f1d008ce39602 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 26 十二月 2023 10:34:01 +0800
Subject: [PATCH] add bgr and yuv420 to jpeg support

---
 capture.go |   22 ++++++++++++----------
 1 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/capture.go b/capture.go
index bc5336a..3164d11 100644
--- a/capture.go
+++ b/capture.go
@@ -5,9 +5,8 @@
 	"fmt"
 	"time"
 
-	"basic.com/valib/goffmpeg.git"
-
 	"basic.com/valib/godraw.git"
+	"basic.com/valib/goffmpeg.git"
 	"github.com/disintegration/imaging"
 )
 
@@ -50,7 +49,7 @@
 		return nil, err
 	}
 
-	reterr := errors.New(fmt.Sprintf("gb28181 try %d times to capture image, is url correct?", maxTry))
+	reterr := fmt.Errorf("gb28181 try %d times to capture image, is url correct?", maxTry)
 	// for i := 0; i < maxTry; i++ {
 	ret = goffmpeg.GetGBJpg(url, maxTry)
 	if len(ret) > 0 {
@@ -106,9 +105,8 @@
 	gf.BuildDecoder()
 
 	tryTime := 0
-	interval := 40 // ms
 	// 淇濊瘉鏈変竴涓叧閿抚
-	maxTry *= 1000
+	maxTry = maxTry * 1000
 
 	var bgrData, jpgData []byte
 	var err error
@@ -117,8 +115,12 @@
 		data, ow, oh, _ := gf.GetYUV()
 
 		if ow > 0 && oh > 0 {
-
-			bgrData = yuv2bgr(data, ow, oh)
+			if ow*oh*3 != len(data) {
+				// data 涓嶆槸 bgr 鏍煎紡锛岄渶瑕佽浆鎹�
+				bgrData = yuv2bgr(data, ow, oh)
+			} else {
+				bgrData = data
+			}
 			if w > 0 && h > 0 {
 				bgrData = bgresize(bgrData, ow, oh, w, h)
 				ow, oh = w, h
@@ -130,16 +132,16 @@
 			}
 			break
 		} else {
-			tryTime += interval
+			tryTime += 40
 			if tryTime > maxTry {
 				break
 			}
-			time.Sleep(time.Duration(interval) * time.Millisecond)
+			time.Sleep(40 * time.Millisecond)
 		}
 	}
 
 	if tryTime >= maxTry {
-		err := fmt.Sprintf("try %d ms to capture image, is url correct?\n", tryTime)
+		err := fmt.Sprintf("try %d times to capture image, is url correct?\n", tryTime)
 		return nil, errors.New(err)
 	}
 

--
Gitblit v1.8.0