Add support snapshot for raw image format

This commit is contained in:
Alex X
2025-01-07 20:08:29 +03:00
parent 33e0ccdd10
commit e4b8d1807d
4 changed files with 43 additions and 2 deletions
+8 -1
View File
@@ -52,12 +52,19 @@ func FixJPEG(b []byte) []byte {
return buf.Bytes()
}
func Encoder(codec *core.Codec, handler core.HandlerFunc) core.HandlerFunc {
// Encoder convert YUV frame to Img.
// Support skipping empty frames, for example if USB cam needs time to start.
func Encoder(codec *core.Codec, skipEmpty int, handler core.HandlerFunc) core.HandlerFunc {
newImage := y4m.NewImage(codec.FmtpLine)
return func(packet *rtp.Packet) {
img := newImage(packet.Payload)
if skipEmpty != 0 && y4m.HasSameColor(img) {
skipEmpty--
return
}
buf := bytes.NewBuffer(nil)
if err := jpeg.Encode(buf, img, nil); err != nil {
return