[Webkit-unassigned] [Bug 270622] New: [GStreamer] playback doesn't start if less than 1s of video is available.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Mar 7 01:24:26 PST 2024


https://bugs.webkit.org/show_bug.cgi?id=270622

            Bug ID: 270622
           Summary: [GStreamer] playback doesn't start if less than 1s of
                    video is available.
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Media
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: jean-yves.avenard at apple.com
                CC: philn at igalia.com

In bug 270614 I added a test which loads 1s of video, call play() and waits for playback to stall.


```
        loader = new MediaSourceLoader('content/test-fragmented-video-manifest.json');
        await loaderPromise(loader);
        video.disableRemotePlayback = true;
        video.muted = true;
        run('source = new ManagedMediaSource()');
        run('video.src = URL.createObjectURL(source)');
        await waitFor(source, 'sourceopen');
        run('sourceBuffer = source.addSourceBuffer(loader.type())');
        run('sourceBuffer.appendBuffer(loader.initSegment())');
        await waitFor(sourceBuffer, 'update');
        run('sourceBuffer.appendBuffer(loader.mediaSegment(0))');
        await waitFor(sourceBuffer,'update');
        run('sourceBuffer.appendBuffer(loader.mediaSegment(2))');
        await waitFor(sourceBuffer,'update');
        run('video.play()');
        await waitFor(video, 'playing');
        await Promise.all([
        testExpectedEventuallySilent('video.currentTime', 1, '>='),
            waitFor(video, 'waiting')
        ]);
        testExpected('video.currentTime', 1, '>=');
        currentTimeWhenStalling = video.currentTime;

        // Issue pause() command while playback has stalled.
        run('video.pause()');
        // Fill gap, playback shouldn't continue, even briefly.
        run('sourceBuffer.appendBuffer(loader.mediaSegment(1))');
        await sleepFor(1000);
        testExpected('video.currentTime == currentTimeWhenStalling', true);
        endTest();
```

runs with GStreamer based players show that playback doesn't reach the currentTime=1s mark, we never stall and the waiting event is never fired.

https://ews-build.s3-us-west-2.amazonaws.com/GTK-WK2-Tests-EWS/2bf004ac-42149-stress-mode/media/media-source/media-managedmse-noresumeafterpause-pretty-diff.html

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20240307/4c1b4a4e/attachment.htm>


More information about the webkit-unassigned mailing list