From 72245bb349fd10f2ac680f891fd01bed6da87ffa Mon Sep 17 00:00:00 2001 From: Eli Mallon Date: Tue, 6 May 2025 17:30:06 -0700 Subject: [PATCH] segment_conv: add timeout, failing test case --- pkg/media/segment_conv.go | 12 +++++++ pkg/media/segment_conv_test.go | 60 +++++++++++++++++---------------- test/fixtures/short-video.mp4 | Bin 0 -> 39946 bytes 3 files changed, 43 insertions(+), 29 deletions(-) create mode 100755 test/fixtures/short-video.mp4 diff --git a/pkg/media/segment_conv.go b/pkg/media/segment_conv.go index 91c1dd399..d854044de 100644 --- a/pkg/media/segment_conv.go +++ b/pkg/media/segment_conv.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "strings" + "time" "github.com/go-gst/go-gst/gst" "github.com/go-gst/go-gst/gst/app" @@ -109,6 +110,17 @@ func MP4ToMPEGTS(ctx context.Context, input io.Reader, output io.Writer) (int64, } }() + go func() { + select { + case <-ctx.Done(): + return + case <-time.After(time.Second * 10): + log.Debug(ctx, "pipeline is taking too long to start, cancelling") + err := fmt.Errorf("pipeline is taking too long to start, cancelling") + pipeline.Error(err.Error(), err) + } + }() + // Handle bus messages in a separate goroutine errCh := make(chan error) go func() { diff --git a/pkg/media/segment_conv_test.go b/pkg/media/segment_conv_test.go index 789f6df31..58a616d17 100644 --- a/pkg/media/segment_conv_test.go +++ b/pkg/media/segment_conv_test.go @@ -19,36 +19,38 @@ func TestMP4ToMPEGTS(t *testing.T) { before := getLeakCount(t) defer checkGStreamerLeaks(t, before) - // Open input file - inputFile, err := os.Open(getFixture("sample-segment.mp4")) - require.NoError(t, err) - defer inputFile.Close() - - // Create a buffer for output - buf := bytes.Buffer{} - - bs, err := io.ReadAll(inputFile) - require.NoError(t, err) - // Create temporary output file - - g, _ := errgroup.WithContext(context.Background()) - for i := 0; i < streamplaceTestCount; i++ { - g.Go(func() error { - _, err := MP4ToMPEGTS(context.Background(), bytes.NewReader(bs), &buf) - return err - }) + for _, file := range []string{"sample-segment.mp4", "short-video.mp4"} { + // Open input file + inputFile, err := os.Open(getFixture(file)) + require.NoError(t, err) + defer inputFile.Close() + + // Create a buffer for output + buf := bytes.Buffer{} + + bs, err := io.ReadAll(inputFile) + require.NoError(t, err) + // Create temporary output file + + g, _ := errgroup.WithContext(context.Background()) + for i := 0; i < streamplaceTestCount; i++ { + g.Go(func() error { + _, err := MP4ToMPEGTS(context.Background(), bytes.NewReader(bs), &buf) + return err + }) + } + err = g.Wait() + require.NoError(t, err) + // Convert MPEG-TS to MP4 + + // Convert MP4 to MPEG-TS + dur, err := MP4ToMPEGTS(context.Background(), bytes.NewReader(bs), &buf) + require.NoError(t, err) + require.Greater(t, dur, int64(0), "Duration should be greater than 0") + + // Verify buffer has content + require.Greater(t, buf.Len(), 0, "Output buffer should not be empty") } - err = g.Wait() - require.NoError(t, err) - // Convert MPEG-TS to MP4 - - // Convert MP4 to MPEG-TS - dur, err := MP4ToMPEGTS(context.Background(), bytes.NewReader(bs), &buf) - require.NoError(t, err) - require.Greater(t, dur, int64(0), "Duration should be greater than 0") - - // Verify buffer has content - require.Greater(t, buf.Len(), 0, "Output buffer should not be empty") } func TestMP4ToMPEGTSInvalid(t *testing.T) { diff --git a/test/fixtures/short-video.mp4 b/test/fixtures/short-video.mp4 new file mode 100755 index 0000000000000000000000000000000000000000..0317c588aa315497a0b4838c07f8db4c9456bb9b GIT binary patch literal 39946 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 literal 0 HcmV?d00001 -- knotmirror 0.0.1