RESOLVED FIXED 225511
[GStreamer][MediaStream] Emit black frames for disabled video tracks
https://bugs.webkit.org/show_bug.cgi?id=225511
Summary [GStreamer][MediaStream] Emit black frames for disabled video tracks
Philippe Normand
Reported 2021-05-07 05:53:43 PDT
imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https.html fails.
Attachments
Patch (5.76 KB, patch)
2021-05-07 05:56 PDT, Philippe Normand
calvaris: review+
Philippe Normand
Comment 1 2021-05-07 05:56:30 PDT
Xabier Rodríguez Calvar
Comment 2 2021-05-07 08:24:54 PDT
Comment on attachment 427995 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=427995&action=review > Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:276 > + pushSample(blackSample.get()); Nit (maybe for other time): wouldn't it be nice pushSample was void pushSample(GRefPtr<GstSample>&&) ?
Philippe Normand
Comment 3 2021-05-07 08:39:13 PDT
Comment on attachment 427995 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=427995&action=review >> Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:276 >> + pushSample(blackSample.get()); > > Nit (maybe for other time): wouldn't it be nice pushSample was void pushSample(GRefPtr<GstSample>&&) ? I don't think that's possible currently because when the track is enabled the sample being pushed is not owned by the observer, but by the track that generates it. And a track can have more than one observer.
Philippe Normand
Comment 4 2021-05-07 08:52:22 PDT
Radar WebKit Bug Importer
Comment 5 2021-05-07 08:53:32 PDT
Xabier Rodríguez Calvar
Comment 6 2021-05-10 01:08:55 PDT
(In reply to Philippe Normand from comment #3) > Comment on attachment 427995 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=427995&action=review > > >> Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:276 > >> + pushSample(blackSample.get()); > > > > Nit (maybe for other time): wouldn't it be nice pushSample was void pushSample(GRefPtr<GstSample>&&) ? > > I don't think that's possible currently because when the track is enabled > the sample being pushed is not owned by the observer, but by the track that > generates it. And a track can have more than one observer. It doesn't mean you can't create another GRefPtr<GstSample> by reffing the sampled owned by the track, right?
Note You need to log in before you can comment on or make changes to this bug.