Some minor video bugfixes
parent
943c33ff4b
commit
3cf7582e05
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue