StreamingCodecDisabler: Add VP8 & VP9 & Fix Not Working

This commit is contained in:
thororen1234 2025-10-18 10:00:19 -04:00
parent f3818c31d4
commit 1f7015888a
No known key found for this signature in database

View file

@ -9,16 +9,18 @@ import { EquicordDevs } from "@utils/constants";
import definePlugin, { OptionType } from "@utils/types";
import { MediaEngineStore } from "@webpack/common";
let mediaEngine = MediaEngineStore;
const originalCodecStatuses: {
AV1: boolean,
H265: boolean,
H264: boolean;
VP8: boolean;
VP9: boolean;
} = {
AV1: true,
H265: true,
H264: true
H264: true,
VP8: true,
VP9: true,
};
const settings = definePluginSettings({
@ -37,6 +39,16 @@ const settings = definePluginSettings({
type: OptionType.BOOLEAN,
default: false
},
disableVP8Codec: {
description: "Make Discord not consider using VP8 for streaming.",
type: OptionType.BOOLEAN,
default: false
},
disableVP9Codec: {
description: "Make Discord not consider using VP9 for streaming.",
type: OptionType.BOOLEAN,
default: false
},
});
export default definePlugin({
@ -56,26 +68,17 @@ export default definePlugin({
],
async updateDisabledCodecs() {
mediaEngine.setAv1Enabled(originalCodecStatuses.AV1 && !Settings.plugins.StreamingCodecDisabler.disableAv1Codec);
mediaEngine.setH265Enabled(originalCodecStatuses.H265 && !Settings.plugins.StreamingCodecDisabler.disableH265Codec);
mediaEngine.setH264Enabled(originalCodecStatuses.H264 && !Settings.plugins.StreamingCodecDisabler.disableH264Codec);
},
async start() {
mediaEngine = mediaEngine.getMediaEngine();
const mediaEngine = MediaEngineStore.getMediaEngine();
const options = Object.keys(originalCodecStatuses);
// [{"codec":"","decode":false,"encode":false}]
const CodecCapabilities = JSON.parse(await new Promise(res => mediaEngine.getCodecCapabilities(res)));
CodecCapabilities.forEach((codec: { codec: string; encode: boolean; }) => {
if (options.includes(codec.codec)) {
originalCodecStatuses[codec.codec] = codec.encode;
}
});
},
async stop() {
mediaEngine.setAv1Enabled(originalCodecStatuses.AV1);
mediaEngine.setH265Enabled(originalCodecStatuses.H265);
mediaEngine.setH264Enabled(originalCodecStatuses.H264);
}
mediaEngine.setAv1Enabled(originalCodecStatuses.AV1 && !Settings.plugins.StreamingCodecDisabler.disableAv1Codec);
mediaEngine.setH265Enabled(originalCodecStatuses.H265 && !Settings.plugins.StreamingCodecDisabler.disableH265Codec);
mediaEngine.setH264Enabled(originalCodecStatuses.H264 && !Settings.plugins.StreamingCodecDisabler.disableH264Codec);
},
});