Fix CRT shader: force transcoding when enabling filter
When setCrtShader(true) was called the stream restart passed an empty params object to changeStream(), which left EnableDirectPlay/EnableDirectStream undefined. Due to JavaScript loose equality (undefined != null === false) these were never sent to the server, so the server could return a Direct Play MediaSource and our streamOptions[crtShader] append on TranscodingUrl was never reached — resulting in no visual effect. Fix: pass EnableDirectPlay:false, EnableDirectStream:false when enabling CRT to force the server to transcode. When disabling, empty params restore the default negotiation so the server can resume direct play if eligible. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1434,7 +1434,12 @@ export class PlaybackManager {
|
||||
if (shadowMask !== undefined && shadowMask !== null) {
|
||||
pd.crtShadowMask = shadowMask;
|
||||
}
|
||||
changeStream(player, getCurrentTicks(player), {});
|
||||
// When enabling CRT we must force transcoding — the filter only runs
|
||||
// server-side via program_opencl and is incompatible with direct play/stream.
|
||||
const streamParams = enabled
|
||||
? { EnableDirectPlay: false, EnableDirectStream: false }
|
||||
: {};
|
||||
changeStream(player, getCurrentTicks(player), streamParams);
|
||||
};
|
||||
|
||||
self.isFullscreen = function (player) {
|
||||
|
||||
Reference in New Issue
Block a user