fix(videochannel): ignore vp8 missing reference errors

This commit is contained in:
zarazaex69
2026-05-27 07:54:33 +03:00
parent 8ca59975c3
commit 0a5d3fb922
3 changed files with 9 additions and 3 deletions

2
go.mod
View File

@@ -3,7 +3,7 @@ module github.com/openlibrecommunity/olcrtc
go 1.26.3
require (
codeberg.org/rape4me/kc v0.0.0-20260526155601-5f6fc8dfaaa1
codeberg.org/rape4me/kc v0.0.0-20260527043314-71657a097a6f
github.com/google/uuid v1.6.0
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
github.com/livekit/protocol v1.46.0

4
go.sum
View File

@@ -7,8 +7,8 @@ buf.build/go/protoyaml v0.7.0/go.mod h1:+a0cavd0uMvirb87xdu2ZMMmjlIQoiH/N2Ich5MG
cel.dev/expr v0.25.2 h1:K6j46C81hXtZQfuX60cVWQFBJahKSE2gfRbNuvr5bFs=
cel.dev/expr v0.25.2/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
codeberg.org/rape4me/kc v0.0.0-20260526155601-5f6fc8dfaaa1 h1:OwaN5gXJoYSgdT8+LJ/1oHf+MqI+wXIizC4yIRA9UYU=
codeberg.org/rape4me/kc v0.0.0-20260526155601-5f6fc8dfaaa1/go.mod h1:ooInikVAZhJE+m+gHIekq52ZFkUPcCZAvY4u/m2M/V0=
codeberg.org/rape4me/kc v0.0.0-20260527043314-71657a097a6f h1:amyzfF9+4jCUKJndW336YHbj3FiaWs/qkJqOgUyreCA=
codeberg.org/rape4me/kc v0.0.0-20260527043314-71657a097a6f/go.mod h1:ooInikVAZhJE+m+gHIekq52ZFkUPcCZAvY4u/m2M/V0=
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=

View File

@@ -1,6 +1,7 @@
package videochannel
import (
"errors"
"fmt"
"sync"
"sync/atomic"
@@ -73,6 +74,11 @@ func (d *goDecoder) PushSample(sample []byte) error {
}
frame, err := d.dec.Decode(sample)
if err != nil {
// Inter-frame arrived before any keyframe (e.g. SFU started forwarding
// mid-GOP). Drop silently; the next keyframe will reset the reference.
if errors.Is(err, vp8.ErrNoReference) {
return nil
}
return fmt.Errorf("vp8 decode: %w", err)
}
gray := frame.Grayscale()