Skip to content

Commit

Permalink
Debug
Browse files Browse the repository at this point in the history
  • Loading branch information
alopatindev committed Nov 30, 2024
1 parent d9d7556 commit edb05fa
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 14 deletions.
2 changes: 1 addition & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ theme_settings:
p2p_player:
media_urls:
- https://media.codonaft.com
- https://media-fallback.codonaft.com
#- https://media-cached.codonaft.com
trackers:
- wss://media.codonaft.com/announce
- wss://tracker.webtorrent.dev
Expand Down
2 changes: 1 addition & 1 deletion _hosts/media.codonaft/etc/nginx/http.d/media.conf
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ server {
# #add_header X-Early-Data $tls1_3_early_data; # Debug 0-RTT
# add_header x-frame-options "deny";

server_name media.codonaft.com media-fallback.codonaft.com;
server_name media.codonaft.com media-cached.codonaft.com;
ssl_certificate /etc/nginx/ssl/codonaft.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/codonaft.com/privkey.pem;
ssl_trusted_certificate /etc/nginx/ssl/codonaft.com/chain.pem;
Expand Down
49 changes: 37 additions & 12 deletions _includes/head.html
Original file line number Diff line number Diff line change
Expand Up @@ -221,14 +221,35 @@
loadChapters(player, playerIndex);
};

let mediaSourceSelectionAttempt = 0;
const fallback = player => {
const source = new URL(player.getAttribute('src'));
const mediaUrls = {{ site.theme_settings.p2p_player.media_urls | jsonify }};
const index = mediaUrls.map(i => new URL(i).hostname).indexOf(source.hostname);
const mainServerIsActive = index === 0;

if (mediaSourceSelectionAttempt >= mediaUrls.length && mainServerIsActive) {
pageLog('out of attempts');
} else {
mediaSourceSelectionAttempt++;
source.hostname = new URL(mediaUrls[(index + mediaSourceSelectionAttempt) % mediaUrls.length]).hostname;

if (player.state.playing) {
player.setAttribute('autoplay', true);
}
player.setAttribute('src', source.toString());
pageLog('new source ' + player.getAttribute('src') + ' attempt=' + mediaSourceSelectionAttempt);
}
};

const initializePlayer = (container, playerIndex, currentTime, autoPlay) => {
pageLog(`initializePlayer ${playerIndex}`);
const playerTemplate = container.firstElementChild;
const swarmId = new URL(playerTemplate.getAttribute('src'));

const timeZone = -(new Date().getTimezoneOffset() / 60);
/*const timeZone = -(new Date().getTimezoneOffset() / 60);
const possiblyEurope = timeZone >= 0 && timeZone <= 4;
const playerTemplate = container.firstElementChild;
const swarmId = new URL(playerTemplate.getAttribute('src'));
if (!possiblyEurope) {
[...container.querySelectorAll('[src]')].forEach(i => {
const source = new URL(i.getAttribute('src'));
Expand All @@ -238,7 +259,7 @@
pageLog('source ' + source);
}
})
}
}*/

const player = document.createElement('media-player');
for (let i = 0 ; i < playerTemplate.attributes.length ; i++) {
Expand Down Expand Up @@ -376,13 +397,13 @@
},
},
onHlsJsCreated: (hls) => {
hls.p2pEngine.addEventListener('onPeerConnect', (params) => {
hls.p2pEngine.addEventListener('onPeerConnect', params => {
pageLog('Peer connected:' + params.peerId);
});
hls.p2pEngine.addEventListener('onPeerError', (params) => {
hls.p2pEngine.addEventListener('onPeerError', params => {
pageLog('Peer error:' + params.peerId);
});
hls.p2pEngine.addEventListener('onPeerClose', (params) => {
hls.p2pEngine.addEventListener('onPeerClose', params => {
pageLog('Peer disconnected:' + params.peerId);
});
hls.p2pEngine.addEventListener('onChunkDownloaded', (bytesLength, downloadSource, peerId) => {
Expand All @@ -393,20 +414,24 @@
hls.p2pEngine.addEventListener('onChunkUploaded', (bytesLength, peerId) => {
pageLog('Peer UPdownload:' + bytesLength + ' ' + peerId);
});
hls.p2pEngine.addEventListener('onSegmentLoaded', (params) => {
hls.p2pEngine.addEventListener('onSegmentLoaded', params => {
if (params.peerId) {
pageLog('P2P Segment loaded:' + params.bytesLength);
}
});
hls.p2pEngine.addEventListener('onSegmentError', (params) => {
hls.p2pEngine.addEventListener('onSegmentError', params => {
pageLog('ERROR loading segment:' + JSON.stringify(params));
if (params && params['downloadSource'] === 'http' && params['error'] !== undefined && params['error']['type'] === 'bytes-receiving-timeout') {
pageLog('http timeout failure');
fallback(player);
}
});

hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {
hls.on(Hls.Events.MANIFEST_PARSED, (event, data) => {
console.log(data);
pageLog('manifest loaded, found ' + data.levels.length + ' quality level');
});
hls.on(Hls.Events.BUFFER_CREATED, function (event, data) {
hls.on(Hls.Events.BUFFER_CREATED, (event, data) => {
pageLog('codec: ' + data.tracks.audiovideo.codec);
});
// TODO: connectedPeerCount
Expand All @@ -426,7 +451,7 @@
currentLocation.searchParams.delete('t');
history.replaceState(undefined, '', currentLocation.pathname + currentLocation.search);
if (Hls?.isSupported()) {
console.log('hls is supported');
pageLog('hls is supported');
let maybeAutoPlay = true;
document
.querySelectorAll('div.p2p-player-container')
Expand Down

0 comments on commit edb05fa

Please sign in to comment.