Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Improved HEAD request fail test when fallback-ing to GET request #6044

Merged
merged 395 commits into from Jan 8, 2024

Conversation

Robloche
Copy link
Contributor

@Robloche Robloche commented Jan 8, 2024

This should close #6016.

Following PR #5986, it appears that servers don't always return correct HTTP status error code when HEAD request is not supported. It should be 405 but badly configured servers could return 404.

So I replaced:

if (error && error.code == shaka.util.Error.Code.HTTP_ERROR) {
  request.method = 'GET';
  ...
}

by:

if (error && (error.code == shaka.util.Error.Code.HTTP_ERROR || error.code == shaka.util.Error.Code.BAD_HTTP_STATUS)) {
  request.method = 'GET';
  ...
}

This change was made in lib/hls/hls_parser.js and lib/net/networking_utils.js.

joeyparrish and others added 30 commits November 30, 2023 11:27
- Allow to have multiple transmuxers, but choose only the one that is
valid depending on whether it supports the codecs or not
- Supported codecs: AAC, AC-3, EC-3, H.264, MPEG/MP3
- It is prepared to allow more codecs in the future (HEVC/H.265) (no
muxed)
)

This PR prepares the Mp4Generator to generate muxed content and also add
support for generate HEVC content.
This is necessary for enable the muxed TS transmuxer in the future.
…broken platforms (shaka-project#5561)

When controlling the content we're playing from one end to another, we
don't need to do the extra check for working around broken platforms
(parsing mp4 boxes to find encryption, insert one if there isn't if the
content is encrypted).

On a Tizen 5.0, the check without having to append the fake encryption
takes between 5 to 10ms to complete. Time that is added to the launch
time, or the time needed to seek if there is a downgrade for seeking.

That's not much, but when having a start time of 1000ms, that's still at
best 1% we can shave off 😅

---------

Co-authored-by: Joey Parrish <joeyparrish@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This reverts commit 18ffa2c.

So long as we make feature releases with a reasonable (< 100 PRs)
granularity, we won't need to keep doing this. Let's try to keep v4.4 an
anomaly.
Fixes the mvex generation
Removes width and height from tkhd box for audio tracks
This prevent errors when the codec specified is not the same that in the
stream, and also fixes the override when there are multiples codecs (eg:
muxed content)
Now maintainers can send commands to Shaka Bot via PR comments.

Initially, Shaka Bot understands the following commands from anyone:
 - `@shaka-bot help`: Show this help message

And the following commands from maintainers only:
 - `@shaka-bot test`: Start lab tests on all devices
- `@shaka-bot test ce`: Start lab tests on CE devices only (no desktop
browsers)
This changes the way pes are processed to gain efficiency and avoid
parsing incorrect pes.
…5575)

Fixes shaka-project#5572

The main problem is that the content has audio and video muxed and then
has the alternative audio tracks.

We need to detect that the main content is muxed and only extract the
video.

Test stream: https://ztnr.rtve.es/ztnr/1694255.m3u8
…shaka-project#5579)

This gets around some compilation issues I had with a large codebase.
This is an automated sync of common workflows for this organization.
The upstream source is:

shaka-project/shaka-github-tools@4245160

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
This enables workflows to be triggered automatically on release PRs,
instead of requiring maintainers to edit the PR description on every
release to trigger required PR workflows.

This uses a separate token from the other shaka-bot token, because it
requires additional permissions to make releases.
Stop using a fork to run release actions. Either it is missing a feature
or I misunderstood what that flag is for. See
https://github.com/google-github-actions/release-please-action/issues/819
Preferred track selection was implemented differently for MSE and native
playback. In fact, native playback even had different implementations
for audio and text. It leads to inconsistencies during track selection,
i.e. if track language contains locale, but language preference not, on
MSE we're looking for closest locale and on src= we're making direct
string comparison which leads to different results.
To unify that, both MSE and native will now use
`StreamUtils.filterStreamsByLanguageAndRole()` to find matching track.
This method is designed to use on `shaka.extern.Stream` but luckily it
uses the very same fields as defined in `shaka.extern.Track` so we can
use it without major changes.
Moreover, using this more robust method also allows us to get rid of
double-selection workaround used so far. Observe that we were first
selecting track without preferred role and then with preferred role.
@Robloche Robloche mentioned this pull request Jan 8, 2024
.gitignore Outdated Show resolved Hide resolved
lib/text/ui_text_displayer.js Outdated Show resolved Hide resolved
@avelad avelad added type: bug Something isn't working correctly priority: P2 Smaller impact or easy workaround labels Jan 8, 2024
@avelad avelad added this to the v5.0 milestone Jan 8, 2024
.gitignore Outdated Show resolved Hide resolved
@Robloche Robloche requested a review from avelad January 8, 2024 13:32
Copy link
Collaborator

@avelad avelad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revert the changes of .gitignore

@Robloche Robloche requested a review from avelad January 8, 2024 13:39
@avelad avelad merged commit b45877d into shaka-project:main Jan 8, 2024
11 of 16 checks passed
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Mar 8, 2024
@shaka-project shaka-project locked as resolved and limited conversation to collaborators Mar 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
priority: P2 Smaller impact or easy workaround status: archived Archived and locked; will not be updated type: bug Something isn't working correctly
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Insufficient error test