Summary: | [GStreamer][MediaStream] Emit black frames for disabled video tracks | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Philippe Normand <pnormand> | ||||
Component: | Platform | Assignee: | Philippe Normand <pnormand> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | calvaris, eric.carlson, ews-watchlist, glenn, hta, jer.noble, philipj, sergio, tommyw, webkit-bug-importer | ||||
Priority: | P2 | Keywords: | InRadar | ||||
Version: | WebKit Nightly Build | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Philippe Normand
2021-05-07 05:53:43 PDT
Created attachment 427995 [details]
Patch
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>&&) ? 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. Committed r277175 (237461@main): <https://commits.webkit.org/237461@main> (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? |