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

Just to try to get Github Actions to run on a fork #1

Closed
wants to merge 635 commits into from

Conversation

sleepycatcoding
Copy link
Owner

No description provided.

crowdin-bot and others added 30 commits August 22, 2023 23:06
This is ultimately intended to replace `Vec<u8>` in both `SwfMovie` and `NetStream`, but for the time being we only apply this to streams. SWF-related types are deeply embedded elsewhere and the changes to slice dereferencing will be quite invasive.

We also remove some unnecessary reader drops in `NetStream.tick` at the same time.
…ffer`.

A `Substream` can be read in one of two ways:

 * Converting it to an iterator that yields individual chunks of the substream in `Slice` form.
 * Converting it to a `SubstreamCursor`, which implements `Read` for bytewise read access.

Chunk-based reading is intended for code that needs to know about chunk boundaries. Self-terminating chunk formats should be read with the cursor type.
 * `start_substream` plays audio data from a `Substream`, giving back a `SoundInstanceHandle` that can be manipulated the same way as the one from `start_stream`

 * `append_substream` adds more data to an already playing `Substream` backed `SoundInstance`. In the event that a sound has finished playing, `append_substream` will fail, and you have to start a new sound stream.

This is ultimately intended to replace the current streaming audio setup, which is SWF-specific and has a number of unused parameters. It is also designed to support progressive download in the future.

We also include stub impls for `NullAudioBackend`.
This also removes `append_substream` since `Substream` now handles that internally.

This requires duplicating a huge chunk of the decoder code to work with `Buffer` types instead of `SwfMovie` types. Eventually we'll want to wipe out all the SWF-specific stuff and use `Buffer` exclusively.
`NetStream`s in AVM1 do not play audio unless attached to a `MovieClip`. As far as I can tell there doesn't seem to be any equivalent API in AVM2.
…ll failure modes into returning `None` in `AudioManager`
…to try and get rid of audio stuttering

Spolier alert: this doesn't work, I'm just committing this for archival purposes.
… sound.

This prevents the sound from finishing before we can add a second slice to it.
… I don't know why the compiler didn't flag this
This would ordinarily be a separate branch but the fix deadlocks without the new buffer type.
…the existing data out first.

`init_buffer` will remove all existing buffer state and prepare the `NetStream` to accept a new/different video.
kmeisthax and others added 26 commits October 10, 2023 18:49
They do not execute until the next stream tick.

We also implement a few new status events, including some AVM2 exclusive ones.
AVM `NetStream` reports and accepts values in seconds, so all the unit conversions went there now.
…or video to play before tracking time and seeking.
Our list of 'playing' streams is now a list of 'active' streams. This nomenclature change also indicates a rule change: streams are activated whenever there is work for them to do, and they are only ever deactivated by themselves when they're out of work to do. We no longer deactivate streams when they are paused as they may still have a queued seek to process.
We are not interested in testing the timing of buffer loads (since that will vary based on hardware), we just need to know that we got a buffer load event.

Furthermore all our seeks are in-buffer so multiple buffer full events shouldn't happen in Ruffle.
@sleepycatcoding sleepycatcoding changed the title Just to try to get Github Actions to run a fork Just to try to get Github Actions to run on a fork Oct 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.