Commit Graph

108 Commits

Author SHA1 Message Date
James Taylor
92bdbf072e av-merge: Fix error when switching qualities after endOfStream
After the video has been buffered to the end and
mediaSource.endOfStream() has been called, the close function
would perform some closing operations on the sourceBuffers
that gave InvalidStateError

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:55:41 -05:00
James Taylor
77fffee34f av-merge: Add function to dump debugging info
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:54:27 -05:00
James Taylor
aacbf07ad7 av-merge: Use tickEnd+1 when calculating segment time ranges
tickEnd is inclusive, so two segments might have the following
ticks:

-- Segment 0 --
tickStart: 0
tickEnd: 44099

-- Segment 1 --
tickStart: 44100
tickEnd: 88199

When doing calculations in seconds about segment extent, there
were gaps between segment 0's end and segment 1's beginning. This
sometimes resulted in errors of not finding the corresponding
segment index inside these gaps.

Using (tickEnd+1)/this.sidx.timeScale is the correct method.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:50:10 -05:00
James Taylor
9d3ebca622 av-merge: End stream correctly when last segments do not overlap
In this video at 480p:
https://www.youtube.com/watch?v=6bnanI9jXps
There is an extremely tiny audio segment from
30.00018140589569 to 30.06981859410431
after the last video segment ends at 29.99998888888889. Call
end of stream when we have all segments until the end, instead
of calling it when we are playing the last segment.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:48:46 -05:00
Jesús
309ff40943 watch.html: Move loose inline javascript into watch.js
The number of inline code blocks and the dependencies between them
became unmanageable.

From 9d96c07a3c2e68f1893634574c3be64e41a2c041 Mon Sep 17 00:00:00 2001
From: James Taylor <user234683@users.noreply.github.com>
2021-08-29 22:43:10 -05:00
James Taylor
56b17c634c av-merge: Use console.warn and console.error
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:57:55 -05:00
James Taylor
dd01c8ca4c av-merge: change QuotaExceeded messages to warnings
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:57:02 -05:00
James Taylor
81e61f9893 av-merge: buffer same duration of audio and video
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:56:00 -05:00
James Taylor
ae68c84a26 av-merge: Make segment fetching message more useful
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:54:32 -05:00
James Taylor
1c591b4457 av-merge: call mediaSource.endOfStream() so player pauses at end
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:53:21 -05:00
James Taylor
9f44e0474b Integrate quality selection into Plyr
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:47:14 -05:00
James Taylor
5ff216d1ba avmerge: Fix errors if close is called twice
This can happen if the quality is changed from an avmerge source
to an integrated source, and then changed back to an avmerge source

Close is called the first change, but on the last change, it's
called again because the avMerge object is still present, resulting
in InvalidStateError

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:03:36 -05:00
James Taylor
70eb5cc94f avmerge: Remove obsolete shouldFetchNextSegment function
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:01:54 -05:00
James Taylor
fa3b78583f avmerge: Close streams to avoid errors while changing quality
If a fetchRange network request finished after the quality was
changed, there would be a "InvalidStateError: An attempt was made
to use an object that is not, or is no longer, usable" because
appendSegment was trying to append to the sourceBuffer that was
unusable after the video src was changed to a new mediaSource.

Adds a close method to the AVMerge class to properly clean and
close everything so these sorts of errors won't happen.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 21:00:30 -05:00
James Taylor
d942883c78 avmerge: Buffer 50 mb ahead in video
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 20:54:06 -05:00
James Taylor
a7da23c6da Add video quality selector
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 20:52:57 -05:00
James Taylor
c9a75042d2 Add support for more qualities, merging video+audio using MSE
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 18:48:56 -05:00
Jesús
e4af99fd17 Revert "Add support for more qualities, merging video+audio using MSE"
This reverts commit d56df02e7b.
2021-08-29 18:48:01 -05:00
James Taylor
d56df02e7b Add support for more qualities, merging video+audio using MSE
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 18:44:26 -05:00
Jesús
f532386976 [plyr]: minor fix syntax 2021-08-09 22:11:50 -05:00
Jesús
af1df31161 [plyr]: update 2021-08-09 22:09:04 -05:00
Jesús
0e9c12b3a6 [plyr]: Remove unimportant files 2021-08-09 21:59:43 -05:00
Jesús
250e34df7c fix property css name 2021-07-05 16:15:29 -05:00
Jesús
7f67af1031 Remove var and fix transcript button jumping above autoplay on page load
Obsolete code from #15 that was forgotten to be removed

From ea34965be31dcf7e7e30c1edb9a9fa9d18fe6b30 Mon Sep 17 00:00:00 2001
From: James Taylor <user234683@users.noreply.github.com>
Date: Sat, 3 Jul 2021 20:06:11 -0700
2021-07-04 13:12:15 -05:00
Jesús
c6fe980a7a autoplay-toggle: use label tag
from upstream:

<label> is semantic and makes clicking the text activate in checkbox
2021-06-29 19:07:40 -05:00
Jesús
8d45ca855a feat: autoplay related video - minor fix style 2021-06-23 21:08:04 -05:00
Jesús
61b4518335 Fix set language subtitles 2021-06-23 15:19:31 -05:00
Umimaso
2d1794889a feat: autoplay for related videos
Add autoplay support for related videos. Move the playlist autoplay code
into this shared script. Add the SameSite=Strict attribute to the
autoplay cookie due to Firefox soon rejecting cookies which use
SameSite=None without the secure attribute.

Closes: #50

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-06-23 14:34:55 -05:00
Umimaso
5b4c99c702 feat: add direct link
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-06-23 12:42:17 -05:00
Jesús
95ae35260c Fix styles dropdown option button in desktop 2021-06-14 18:48:09 -05:00
Jesús
fc8a23099d Fix shared.css file style missing 2021-06-14 18:39:03 -05:00
Jesús
b3abec81e1 Add plyr as main player
Also plyr supports switch quality
2021-05-22 17:05:39 -05:00
Jesús
7feea3f839 Add subscriptions export
plus design by heckyel
2021-05-06 15:18:19 -05:00
Jesús
2d9aca4b8b General theme: fix footer center 2021-02-27 10:36:00 -05:00
Jesús
a47dd66bd0 General theme: reorganize thumbnail background variable 2021-01-26 22:23:59 -05:00
Jesús
8cc721b4ec General theme: improve colors 2021-01-11 21:14:07 -05:00
Jesús
58eea1e0f2 Light theme: improve colors 2021-01-11 19:43:41 -05:00
Jesús
5c22c654ce Grey theme: improve thumbnail background 2021-01-09 08:27:30 -05:00
Jesús
7cb6c94879 General theme: improve thumbnail in channel 2021-01-08 11:43:57 -05:00
Jesús
d899bc2df5 General theme: improve thumbnail-img 2021-01-07 23:06:25 -05:00
Jesús
5329ecfd08 General theme: Improve container description 2021-01-01 22:39:47 -05:00
Jesús
3570b5c4d1 General theme: Fix missing styles in pagination 2021-01-01 15:03:17 -05:00
Jesús
5a6e247a7f General theme: fix style paginator 2021-01-01 14:48:42 -05:00
Jesús
3a83796f91 General theme: remove unnecessary z-index property 2020-12-31 18:23:44 -05:00
Jesús
1f4d7cc958 General theme: fix syntax W3C markup and add improve 'Published' date
Signed-off-by: Jesús <heckyel@hyperbola.info>
2020-12-30 16:52:26 -05:00
Jesús
056c3be3f2 strip_non_ascii in comments-author-name 2020-12-30 00:04:41 -05:00
Jesús
0f78e73e80 General theme: add license and add URL source code in footer 2020-12-29 15:36:23 -05:00
Jesús
6145b66d74 Fix permalink style
Fixed the link box overflow
2020-12-22 19:08:59 -05:00
Jesús
c81cd1941a Fix permalink style
Fixed the link box overflow
2020-12-22 19:01:36 -05:00
Jesús
4bcb275545 Prevent text overflow in comments 2020-12-21 00:27:06 -05:00