зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1481176 - P4. Make CanHandleMediaType usable off the main thread. r=bryce
This is done by ensuring that all methods is called are usable off the main thread and creating the required preference accessors. Differential Revision: https://phabricator.services.mozilla.com/D2790
This commit is contained in:
Родитель
c2ba5d1b90
Коммит
11e8a29e1f
|
@ -154,8 +154,6 @@ CanPlayStatus
|
||||||
CanHandleMediaType(const MediaContainerType& aType,
|
CanHandleMediaType(const MediaContainerType& aType,
|
||||||
DecoderDoctorDiagnostics* aDiagnostics)
|
DecoderDoctorDiagnostics* aDiagnostics)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
|
||||||
|
|
||||||
#ifdef MOZ_ANDROID_HLS_SUPPORT
|
#ifdef MOZ_ANDROID_HLS_SUPPORT
|
||||||
if (HLSDecoder::IsSupportedType(aType)) {
|
if (HLSDecoder::IsSupportedType(aType)) {
|
||||||
return CANPLAY_MAYBE;
|
return CANPLAY_MAYBE;
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include "mozilla/FloatingPoint.h"
|
#include "mozilla/FloatingPoint.h"
|
||||||
#include "mozilla/MathAlgorithms.h"
|
#include "mozilla/MathAlgorithms.h"
|
||||||
#include "mozilla/Preferences.h"
|
#include "mozilla/Preferences.h"
|
||||||
|
#include "mozilla/StaticPrefs.h"
|
||||||
#include "mozilla/StaticPtr.h"
|
#include "mozilla/StaticPtr.h"
|
||||||
#include "mozilla/Telemetry.h"
|
#include "mozilla/Telemetry.h"
|
||||||
#include "Visibility.h"
|
#include "Visibility.h"
|
||||||
|
@ -1265,25 +1266,25 @@ MediaDecoder::SetCDMProxy(CDMProxy* aProxy)
|
||||||
bool
|
bool
|
||||||
MediaDecoder::IsOpusEnabled()
|
MediaDecoder::IsOpusEnabled()
|
||||||
{
|
{
|
||||||
return Preferences::GetBool("media.opus.enabled");
|
return StaticPrefs::MediaOpusEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
MediaDecoder::IsOggEnabled()
|
MediaDecoder::IsOggEnabled()
|
||||||
{
|
{
|
||||||
return Preferences::GetBool("media.ogg.enabled");
|
return StaticPrefs::MediaOggEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
MediaDecoder::IsWaveEnabled()
|
MediaDecoder::IsWaveEnabled()
|
||||||
{
|
{
|
||||||
return Preferences::GetBool("media.wave.enabled");
|
return StaticPrefs::MediaWaveEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
MediaDecoder::IsWebMEnabled()
|
MediaDecoder::IsWebMEnabled()
|
||||||
{
|
{
|
||||||
return Preferences::GetBool("media.webm.enabled");
|
return StaticPrefs::MediaWebMEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
|
|
|
@ -199,7 +199,7 @@ MP4Decoder::IsAAC(const nsACString& aMimeType)
|
||||||
bool
|
bool
|
||||||
MP4Decoder::IsEnabled()
|
MP4Decoder::IsEnabled()
|
||||||
{
|
{
|
||||||
return StaticPrefs::mediaMp4Enabled();
|
return StaticPrefs::MediaMp4Enabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ nsTArray<UniquePtr<TrackInfo>>
|
/* static */ nsTArray<UniquePtr<TrackInfo>>
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
#include "OggDecoder.h"
|
#include "OggDecoder.h"
|
||||||
#include "MediaContainerType.h"
|
#include "MediaContainerType.h"
|
||||||
#include "MediaDecoder.h"
|
#include "MediaDecoder.h"
|
||||||
#include "nsMimeTypes.h"
|
|
||||||
#include "mozilla/StaticPrefs.h"
|
#include "mozilla/StaticPrefs.h"
|
||||||
|
#include "nsMimeTypes.h"
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ WebMDecoder::GetTracksInfo(const MediaContainerType& aType, MediaResult& aError)
|
||||||
bool
|
bool
|
||||||
WebMDecoder::IsSupportedType(const MediaContainerType& aContainerType)
|
WebMDecoder::IsSupportedType(const MediaContainerType& aContainerType)
|
||||||
{
|
{
|
||||||
if (!Preferences::GetBool("media.webm.enabled")) {
|
if (!StaticPrefs::MediaWebMEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -880,6 +880,20 @@ VARCACHE_PREF(
|
||||||
)
|
)
|
||||||
#undef PREF_VALUE
|
#undef PREF_VALUE
|
||||||
|
|
||||||
|
// Opus
|
||||||
|
VARCACHE_PREF(
|
||||||
|
"media.opus.enabled",
|
||||||
|
MediaOpusEnabled,
|
||||||
|
RelaxedAtomicBool, true
|
||||||
|
)
|
||||||
|
|
||||||
|
// Wave
|
||||||
|
VARCACHE_PREF(
|
||||||
|
"media.wave.enabled",
|
||||||
|
MediaWaveEnabled,
|
||||||
|
RelaxedAtomicBool, true
|
||||||
|
)
|
||||||
|
|
||||||
// Ogg
|
// Ogg
|
||||||
VARCACHE_PREF(
|
VARCACHE_PREF(
|
||||||
"media.ogg.enabled",
|
"media.ogg.enabled",
|
||||||
|
@ -887,6 +901,13 @@ VARCACHE_PREF(
|
||||||
RelaxedAtomicBool, true
|
RelaxedAtomicBool, true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// WebM
|
||||||
|
VARCACHE_PREF(
|
||||||
|
"media.webm.enabled",
|
||||||
|
MediaWebMEnabled,
|
||||||
|
RelaxedAtomicBool, true
|
||||||
|
)
|
||||||
|
|
||||||
// AV1
|
// AV1
|
||||||
VARCACHE_PREF(
|
VARCACHE_PREF(
|
||||||
"media.av1.enabled",
|
"media.av1.enabled",
|
||||||
|
@ -920,7 +941,7 @@ VARCACHE_PREF(
|
||||||
#endif
|
#endif
|
||||||
VARCACHE_PREF(
|
VARCACHE_PREF(
|
||||||
"media.mp4.enabled",
|
"media.mp4.enabled",
|
||||||
mediaMp4Enabled,
|
MediaMp4Enabled,
|
||||||
RelaxedAtomicBool, PREF_VALUE
|
RelaxedAtomicBool, PREF_VALUE
|
||||||
)
|
)
|
||||||
#undef PREF_VALUE
|
#undef PREF_VALUE
|
||||||
|
|
Загрузка…
Ссылка в новой задаче