Fix playback issues after the latest commit. Specially the fiurst video not playing in an on-demand channel

This commit is contained in:
vexorian 2021-08-09 22:36:04 -04:00
parent 247c6902e4
commit b6b5495dd5
2 changed files with 10 additions and 1 deletions

View File

@ -16,17 +16,19 @@ class ChannelService extends events.EventEmitter {
async saveChannel(number, channelJson, options) {
let channel = cleanUpChannel(channelJson);
let ignoreOnDemand = true;
if (
(this.onDemandService != null)
&&
( (typeof(options) === 'undefined') || (options.ignoreOnDemand !== true) )
) {
ignoreOnDemand = false;
this.onDemandService.fixupChannelBeforeSave( channel );
}
channelCache.saveChannelConfig( number, channel);
await channelDB.saveChannel( number, channel );
this.emit('channel-update', { channelNumber: number, channel: channel} );
this.emit('channel-update', { channelNumber: number, channel: channel, ignoreOnDemand: ignoreOnDemand} );
}
async deleteChannel(number) {

View File

@ -196,6 +196,8 @@ function video( channelService, fillerDB, db, programmingService, activeChannelS
};
} else if (lineupItem != null) {
redirectChannels = lineupItem.redirectChannels;
upperBounds = lineupItem.upperBounds;
brandChannel = redirectChannels[ redirectChannels.length -1];
} else {
prog = programmingService.getCurrentProgramAndTimeElapsed(t0, channel);
activeChannelService.peekChannel(t0, channel.number);
@ -284,6 +286,7 @@ function video( channelService, fillerDB, db, programmingService, activeChannelS
for (let i = redirectChannels.length-1; i >= 0; i--) {
lineupItem = JSON.parse( JSON.stringify(lineupItem ));
lineupItem.redirectChannels = redirectChannels;
lineupItem.upperBounds = upperBounds;
let u = upperBounds[i] + beginningOffset;
if (typeof(u) !== 'undefined') {
let u2 = upperBound;
@ -385,6 +388,10 @@ function video( channelService, fillerDB, db, programmingService, activeChannelS
activeChannelService.registerChannelActive(t0, redirectChannels[i].number);
}
let listener = (data) => {
if (data.ignoreOnDemand) {
console.log("Ignore channel update because it is from on-demand service");
return;
}
let shouldStop = false;
try {
for (let i = 0; i < redirectChannels.length; i++) {