161 Commits

Author SHA1 Message Date
James Taylor
00c812ff4a
av-merge: Fix numDeleted not incremented during segment deletion
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 23:19:03 -05:00
James Taylor
99cb1c48ea
av-merge: Fix malformed mp4 fragments wrongly considered deleted
See comment within. They would be constantly rerequested and
av-merge would think it didn't have them, so it wouldn't
request subsequent segments

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:58:36 -05:00
James Taylor
c1dbc6c411
av-merge: print sourceBuffer.buffered in printDebuggingInfo
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-08-29 22:57:03 -05:00
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
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
e4af99fd17
Revert "Add support for more qualities, merging video+audio using MSE"
This reverts commit d56df02e7b1eba86baf511289208295b1f6c5a50.
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
f532386976
[plyr]: minor fix syntax 2021-08-09 22:11:50 -05:00
af1df31161
[plyr]: update 2021-08-09 22:09:04 -05:00
0e9c12b3a6
[plyr]: Remove unimportant files 2021-08-09 21:59:43 -05:00
250e34df7c
fix property css name 2021-07-05 16:15:29 -05:00
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
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
8d45ca855a
feat: autoplay related video - minor fix style 2021-06-23 21:08:04 -05:00
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
95ae35260c
Fix styles dropdown option button in desktop 2021-06-14 18:48:09 -05:00
fc8a23099d
Fix shared.css file style missing 2021-06-14 18:39:03 -05:00
b3abec81e1
Add plyr as main player
Also plyr supports switch quality
2021-05-22 17:05:39 -05:00
7feea3f839
Add subscriptions export
plus design by heckyel
2021-05-06 15:18:19 -05:00
2d9aca4b8b
General theme: fix footer center 2021-02-27 10:36:00 -05:00
a47dd66bd0
General theme: reorganize thumbnail background variable 2021-01-26 22:23:59 -05:00
8cc721b4ec
General theme: improve colors 2021-01-11 21:14:07 -05:00
58eea1e0f2
Light theme: improve colors 2021-01-11 19:43:41 -05:00
5c22c654ce
Grey theme: improve thumbnail background 2021-01-09 08:27:30 -05:00
7cb6c94879
General theme: improve thumbnail in channel 2021-01-08 11:43:57 -05:00
d899bc2df5
General theme: improve thumbnail-img 2021-01-07 23:06:25 -05:00
5329ecfd08
General theme: Improve container description 2021-01-01 22:39:47 -05:00
3570b5c4d1
General theme: Fix missing styles in pagination 2021-01-01 15:03:17 -05:00
5a6e247a7f
General theme: fix style paginator 2021-01-01 14:48:42 -05:00
3a83796f91
General theme: remove unnecessary z-index property 2020-12-31 18:23:44 -05:00
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
056c3be3f2
strip_non_ascii in comments-author-name 2020-12-30 00:04:41 -05:00
0f78e73e80
General theme: add license and add URL source code in footer 2020-12-29 15:36:23 -05:00