Live video on the AT Protocol
79
fork

Configure Feed

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

at 0.7-rc 51 lines 1.6 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 globalerror.GlobalErrors = []error{} 20 ctx := context.Background() 21 dir, err := os.MkdirTemp("", "rtcrec-test-*") 22 require.NoError(t, err) 23 defer os.RemoveAll(dir) 24 cli := &config.CLI{} 25 fs := cli.NewFlagSet("rtcrec-test") 26 err = cli.Parse(fs, []string{"--data-dir", dir, "-wide-open=true"}) 27 require.NoError(t, err) 28 mm, err := MakeMediaManager(context.Background(), cli, nil, &boring.BoringReplicator{}, nil, nil, nil) 29 require.NoError(t, err) 30 priv, pub, err := spkey.GenerateStreamKey() 31 require.NoError(t, err) 32 signer, err := spkey.KeyToSigner(priv) 33 require.NoError(t, err) 34 mediaSigner, err := MakeMediaSigner(ctx, cli, pub.DIDKey(), signer) 35 require.NoError(t, err) 36 // ctx := context.Background() 37 // mm, ms := getStaticTestMediaManager(t) 38 fd, err := os.Open(getFixture("intermittent-tracks.cbor")) 39 require.NoError(t, err) 40 defer fd.Close() 41 pc, err := rtcrec.NewReplayPeerConnection(ctx, fd) 42 require.NoError(t, err) 43 done := make(chan struct{}) 44 answer, err := mm.WebRTCIngest(ctx, &webrtc.SessionDescription{SDP: "placeholder"}, mediaSigner, pc, done) 45 require.NoError(t, err) 46 fmt.Println(answer.SDP) 47 <-done 48 for _, err := range globalerror.GlobalErrors { 49 fmt.Printf("got error, non-fatal for now: %v\n", err) 50 } 51}