mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Reset preferred live modes to defaults on window visibility change (#12499)
This commit is contained in:
parent
7bfebd5b61
commit
eb2363b93d
@ -104,7 +104,7 @@ export default function DraggableGridLayout({
|
|||||||
);
|
);
|
||||||
|
|
||||||
setPreferredLiveModes(newPreferredLiveModes);
|
setPreferredLiveModes(newPreferredLiveModes);
|
||||||
}, [cameras, config]);
|
}, [cameras, config, windowVisible]);
|
||||||
|
|
||||||
const ResponsiveGridLayout = useMemo(() => WidthProvider(Responsive), []);
|
const ResponsiveGridLayout = useMemo(() => WidthProvider(Responsive), []);
|
||||||
|
|
||||||
|
@ -133,33 +133,6 @@ export default function LiveDashboardView({
|
|||||||
[key: string]: LivePlayerMode;
|
[key: string]: LivePlayerMode;
|
||||||
}>({});
|
}>({});
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (!cameras) return;
|
|
||||||
|
|
||||||
const mseSupported =
|
|
||||||
"MediaSource" in window || "ManagedMediaSource" in window;
|
|
||||||
|
|
||||||
const newPreferredLiveModes = cameras.reduce(
|
|
||||||
(acc, camera) => {
|
|
||||||
const isRestreamed =
|
|
||||||
config &&
|
|
||||||
Object.keys(config.go2rtc.streams || {}).includes(
|
|
||||||
camera.live.stream_name,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!mseSupported) {
|
|
||||||
acc[camera.name] = isRestreamed ? "webrtc" : "jsmpeg";
|
|
||||||
} else {
|
|
||||||
acc[camera.name] = isRestreamed ? "mse" : "jsmpeg";
|
|
||||||
}
|
|
||||||
return acc;
|
|
||||||
},
|
|
||||||
{} as { [key: string]: LivePlayerMode },
|
|
||||||
);
|
|
||||||
|
|
||||||
setPreferredLiveModes(newPreferredLiveModes);
|
|
||||||
}, [cameras, config]);
|
|
||||||
|
|
||||||
const [{ height: containerHeight }] = useResizeObserver(containerRef);
|
const [{ height: containerHeight }] = useResizeObserver(containerRef);
|
||||||
|
|
||||||
const hasScrollbar = useMemo(() => {
|
const hasScrollbar = useMemo(() => {
|
||||||
@ -213,6 +186,33 @@ export default function LiveDashboardView({
|
|||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!cameras) return;
|
||||||
|
|
||||||
|
const mseSupported =
|
||||||
|
"MediaSource" in window || "ManagedMediaSource" in window;
|
||||||
|
|
||||||
|
const newPreferredLiveModes = cameras.reduce(
|
||||||
|
(acc, camera) => {
|
||||||
|
const isRestreamed =
|
||||||
|
config &&
|
||||||
|
Object.keys(config.go2rtc.streams || {}).includes(
|
||||||
|
camera.live.stream_name,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!mseSupported) {
|
||||||
|
acc[camera.name] = isRestreamed ? "webrtc" : "jsmpeg";
|
||||||
|
} else {
|
||||||
|
acc[camera.name] = isRestreamed ? "mse" : "jsmpeg";
|
||||||
|
}
|
||||||
|
return acc;
|
||||||
|
},
|
||||||
|
{} as { [key: string]: LivePlayerMode },
|
||||||
|
);
|
||||||
|
|
||||||
|
setPreferredLiveModes(newPreferredLiveModes);
|
||||||
|
}, [cameras, config, windowVisible]);
|
||||||
|
|
||||||
const cameraRef = useCallback(
|
const cameraRef = useCallback(
|
||||||
(node: HTMLElement | null) => {
|
(node: HTMLElement | null) => {
|
||||||
if (!visibleCameraObserver.current) {
|
if (!visibleCameraObserver.current) {
|
||||||
|
Loading…
Reference in New Issue
Block a user