Add DirectShow in about:support

This commit is contained in:
wuggy 2026-09-09 05:34:07 -07:00
commit 77cfca739d
5 changed files with 23 additions and 2 deletions

View file

@ -12,6 +12,7 @@
#include "SourceFilter.h"
#include "SampleSink.h"
#include "VideoUtils.h"
#include "mozilla/Preferences.h"
using namespace mozilla::media;
@ -35,16 +36,22 @@ DirectShowReader::DirectShowReader(AbstractMediaDecoder* aDecoder)
mAudioRate(0),
mBytesPerSample(0),
mIsH264(aDecoder->GetResource()->GetContentType().EqualsLiteral("video/h264") ||
aDecoder->GetResource()->GetContentType().EqualsLiteral("video/avc"))
aDecoder->GetResource()->GetContentType().EqualsLiteral("video/avc"))
{
MOZ_ASSERT(NS_IsMainThread(), "Must be on main thread.");
MOZ_COUNT_CTOR(DirectShowReader);
if (mIsH264) {
Preferences::SetBool("media.directshow.h264.active", true);
}
}
DirectShowReader::~DirectShowReader()
{
MOZ_ASSERT(NS_IsMainThread(), "Must be on main thread.");
MOZ_COUNT_DTOR(DirectShowReader);
if (mIsH264) {
Preferences::SetBool("media.directshow.h264.active", false);
}
#ifdef DIRECTSHOW_REGISTER_GRAPH
if (mRotRegister) {
RemoveGraphFromRunningObjectTable(mRotRegister);

View file

@ -394,6 +394,7 @@ pref("media.hardware-video-decoding.force-enabled", false);
#ifdef MOZ_DIRECTSHOW
pref("media.directshow.enabled", true);
pref("media.directshow.h264.active", false);
#endif
#ifdef MOZ_FMP4

View file

@ -337,6 +337,16 @@ var snapshotFormatters = {
addRowFromKey("features", "webgl2Extensions");
addRowFromKey("features", "supportsHardwareH264", "hardwareH264");
addRowFromKey("features", "currentAudioBackend", "audioBackend");
if ("directShowEnabled" in data) {
addRow("features", "directShowEnabled",
strings.GetStringFromName(data.directShowEnabled ? "yes" : "no"));
delete data.directShowEnabled;
}
if ("directShowH264Active" in data) {
addRow("features", "directShowH264Active",
strings.GetStringFromName(data.directShowH264Active ? "yes" : "no"));
delete data.directShowH264Active;
}
addRowFromKey("features", "direct2DEnabled", "#Direct2D");
if ("directWriteEnabled" in data) {

View file

@ -60,6 +60,8 @@ clearTypeParameters = ClearType Parameters
compositing = Compositing
hardwareH264 = Hardware H264 Decoding
audioBackend = Audio Backend
directShowEnabled = DirectShow H264 Backend Enabled
directShowH264Active = DirectShow H264 Decoding Active
mainThreadNoOMTC = main thread, no OMTC
yes = Yes
no = No

View file

@ -358,6 +358,8 @@ var dataProviders = {
} catch (e) {}
data.currentAudioBackend = winUtils.currentAudioBackend;
data.directShowEnabled = Services.prefs.getBoolPref("media.directshow.enabled", false);
data.directShowH264Active = Services.prefs.getBoolPref("media.directshow.h264.active", false);
if (!data.numAcceleratedWindows && gfxInfo) {
#ifdef XP_WIN
@ -551,4 +553,3 @@ var dataProviders = {
});
}
};