Live video on the AT Protocol
79
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v0.7.35 53 lines 1.7 kB view raw
1package media 2 3import ( 4 "context" 5 "fmt" 6 "os" 7 "testing" 8 9 "github.com/pion/webrtc/v4" 10 "github.com/stretchr/testify/require" 11 "stream.place/streamplace/pkg/config" 12 "stream.place/streamplace/pkg/crypto/spkey" 13 "stream.place/streamplace/pkg/globalerror" 14 "stream.place/streamplace/pkg/replication/boring" 15 "stream.place/streamplace/pkg/rtcrec" 16) 17 18func TestRTCRecording(t *testing.T) { 19 withNoGSTLeaks(t, func() { 20 globalerror.GlobalErrors = []error{} 21 ctx := context.Background() 22 dir, err := os.MkdirTemp("", "rtcrec-test-*") 23 require.NoError(t, err) 24 defer os.RemoveAll(dir) 25 cli := &config.CLI{} 26 fs := cli.NewFlagSet("rtcrec-test") 27 err = cli.Parse(fs, []string{"--data-dir", dir, "-wide-open=true"}) 28 require.NoError(t, err) 29 mm, err := MakeMediaManager(context.Background(), cli, nil, &boring.BoringReplicator{}, nil, nil, nil) 30 require.NoError(t, err) 31 priv, pub, err := spkey.GenerateStreamKey() 32 require.NoError(t, err) 33 signer, err := spkey.KeyToSigner(priv) 34 require.NoError(t, err) 35 mediaSigner, err := MakeMediaSigner(ctx, cli, pub.DIDKey(), signer) 36 require.NoError(t, err) 37 // ctx := context.Background() 38 // mm, ms := getStaticTestMediaManager(t) 39 fd, err := os.Open(getFixture("intermittent-tracks.cbor")) 40 require.NoError(t, err) 41 defer fd.Close() 42 pc, err := rtcrec.NewReplayPeerConnection(ctx, fd) 43 require.NoError(t, err) 44 done := make(chan struct{}) 45 answer, err := mm.WebRTCIngest(ctx, &webrtc.SessionDescription{SDP: "placeholder"}, mediaSigner, pc, done) 46 require.NoError(t, err) 47 fmt.Println(answer.SDP) 48 <-done 49 for _, err := range globalerror.GlobalErrors { 50 fmt.Printf("got error, non-fatal for now: %v\n", err) 51 } 52 }) 53}