Now it's just used for testing and development purpose.
In the future, this should only be used for encrypted playback and we would also need a fallback mechanism if the external engine fails.
Differential Revision: https://phabricator.services.mozilla.com/D140592
Now it's just used for testing and development purpose.
In the future, this should only be used for encrypted playback and we would also need a fallback mechanism if the external engine fails.
Differential Revision: https://phabricator.services.mozilla.com/D140592
In future parts, TaskQueue will require extra initialization to be performed
which cannot happen in a constructor, as it takes references to the TaskQueue
object itself, which will require the introduction of a helper method. This
patch switches all callers of the TaskQueue constructor to use the new method.
Differential Revision: https://phabricator.services.mozilla.com/D142604
This adds both av1C and AV1 sequence header OBU parsing, which is used by MediaChangeMonitor to determine whether a new decoder is needed when the codec configuration changes during playback.
AV1 codec strings from MediaCapabilities, HTMLVideoElement.canPlayType and MediaSource.isTypeSupported will be converted to av1C format with a sequence header attached and passed to decoders to initialize them, allowing better detection of codec support in software or hardware to be implemented.
Differential Revision: https://phabricator.services.mozilla.com/D141720
TrackBuffersManager doesn't expect access to various members from outside of its
TaskQueue. However, `GetDebugInfo` will violate this depending on the calling
thread. This patch prevents that from happening by moving `GetDebugInfo` from
the public interface and instead providing a method that will call
`GetDebugInfo` on the appropriate thread.
This also updates call sites to appropriately handle the change.
Differential Revision: https://phabricator.services.mozilla.com/D142325
VPXChangeMonitor never initialized a decoder to test for that hardware support on when requested by MediaCapabilities. To fix this, codec initialization data is created to be processed by VPXChangeMonitor to initialize a dummy decoder.
MediaCapabilities and related APIs will now accept VP9 Profile 3, as the profile is supported by libdav1d.
Depends on D138884
Differential Revision: https://phabricator.services.mozilla.com/D140148
This adds a modified version of the bipbop video 1 segment used in the
MediaSource tests. This modified segment contains a large trailing 'skip' box.
These trailing boxes can interfere with Gecko's ability to clear memory.
A test case is added to test that Fx is correctly clearing memory after the new
segment is appended several times. Prior to the fix in bug 1697476 this test
would fail, but we should now handle this case better.
Differential Revision: https://phabricator.services.mozilla.com/D139265
This expands our memory reporting in TrackBuffersManager to cover additional
memory usage. Specifically it now reports several buffers where input data is
stored by the manager. These buffers will not typically take up that much space,
but it doesn't hurt to have them reported against media. Additionally, we've
just fixed a case where one of the buffers reported in this patch was growing
without bound, so it's nice to have some cover on that (bug 1697476 ). Reporting
these metrics will allow for testing of that bug too.
There is still more that could be reported from the TrackBuffersManager, but
that's a big yak to shave, so this patch intentionally does not attempt to do
so.
I've verified this works via about:memory and dmd.py (this also confirms there
are no double counts in my testing).
Differential Revision: https://phabricator.services.mozilla.com/D139246
-Wshadow warnings are not enabled globally, so these -Wno-shadow suppressions have no effect. I had intended to enable -Wshadow globally along with these suppressions in some directories (in bug 1272513), but that was blocked by other issues.
There are too many -Wshadow warnings (now over 2000) to realistically fix them all. We should remove all these unnecessary -Wno-shadow flags cluttering many moz.build files.
Differential Revision: https://phabricator.services.mozilla.com/D132289
`profiler_thread_is_being_profiled` is used a lot for markers, so it makes sense to have a specialized version, which is a bit shorter, and lives in ProfilerMarkers.h.
Differential Revision: https://phabricator.services.mozilla.com/D130009
`profiler_thread_is_being_profiled` is used a lot for markers, so it makes sense to have a specialized version, which is a bit shorter, and lives in ProfilerMarkers.h.
Differential Revision: https://phabricator.services.mozilla.com/D130009
In D58392 and D58393, we already added some assertions to ensure that (1) sample is valid when it got added (2) sample is valid when we call `GetSample()`.
However, the crash still exists and doesn't hit these two places. So another possible situation is that samples become invalid during modification before we return it via `GetSample()`.
Therefore, add more assertion to see my guess is correct or not.
Differential Revision: https://phabricator.services.mozilla.com/D126722
This tests two things: whether `mozCaptureStreamUntilEnded` is handled correctly
when the media element source is a `MediaSource`, and whether all objects have
references to each other as to not garbage collect any part of the system.
Differential Revision: https://phabricator.services.mozilla.com/D116397