From 1f7015888af769bb39d74d3a178e2d45519e9d97 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Sat, 18 Oct 2025 10:00:19 -0400 Subject: [PATCH] StreamingCodecDisabler: Add VP8 & VP9 & Fix Not Working --- .../streamingCodecDisabler/index.ts | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/equicordplugins/streamingCodecDisabler/index.ts b/src/equicordplugins/streamingCodecDisabler/index.ts index ed05ae14e..e30eba20c 100644 --- a/src/equicordplugins/streamingCodecDisabler/index.ts +++ b/src/equicordplugins/streamingCodecDisabler/index.ts @@ -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); + }, });