Some minor video bugfixes

master
WolverinDEV 2021-04-19 14:00:25 +02:00
parent 943c33ff4b
commit 3cf7582e05
3 changed files with 15 additions and 3 deletions

View File

@ -1,4 +1,8 @@
# Changelog:
* **19.04.21**
- Fixed a bug that the client video box is shown as active even though the client does not stream any video
- Fixed a bug that the video fullscreen windows pops open when a client leaves/joins the channel
* **05.04.21**
- Fixed the mute but for the webclient
- Fixed that "always active" microphone filter now works reliably

View File

@ -19,7 +19,7 @@ import {RtpVideoClient} from "./VideoClient";
import {tr} from "tc-shared/i18n/localize";
import {ConnectionState} from "tc-shared/ConnectionHandler";
import {ConnectionStatistics} from "tc-shared/connection/ConnectionBase";
import * as _ from "lodash";
import _ from "lodash";
class LocalRtpVideoBroadcast implements LocalVideoBroadcast {
private readonly handle: RtpVideoConnection;
@ -543,6 +543,7 @@ export class RtpVideoConnection implements VideoConnection {
private handleVideoAssignmentChanged(type: VideoBroadcastType, event: RTCConnectionEvents["notify_video_assignment_changed"]) {
const oldClient = Object.values(this.registeredClients).find(client => client.getRtpTrack(type) === event.track);
if(oldClient) {
oldClient.setBroadcastId(type, undefined);
oldClient.setRtpTrack(type, undefined);
}

View File

@ -134,6 +134,11 @@ class RemoteClientVideoController implements ClientVideoController {
return;
}
if(videoClient.getVideoState(type) === VideoBroadcastState.Stopped) {
/* There is no video we could join */
return;
}
videoClient.joinBroadcast(type).catch(error => {
logError(LogCategory.VIDEO, tr("Failed to join video broadcast: %o"), error);
/* TODO: Propagate error? */
@ -399,7 +404,7 @@ class ChannelVideoController {
this.events.on("action_toggle_spotlight", event => {
this.toggleSpotlight(event.videoIds, event.enabled);
if(!this.isExpended()) {
if(event.expend && !this.isExpended()) {
this.events.fire("action_toggle_expended", { expended: true });
}
});
@ -742,7 +747,9 @@ export class ChannelVideoFrame {
ReactDOM.render(React.createElement(ChannelVideoRenderer, { handlerId: handle.handlerId, events: this.events }), this.container);
this.events.on("notify_expended", event => this.container.classList.toggle(cssStyle.expended, event.expended));
this.events.on("notify_expended", event => {
this.container.classList.toggle(cssStyle.expended, event.expended);
});
this.controller.callbackVisibilityChanged = flag => {
this.container.classList.toggle(cssStyle.hidden, !flag);
if(!flag) {