renovate[bot]
898b2c8948
chore(deps): lock file maintenance node.js dependencies
2023-07-01 12:20:10 +03:00
Aaron Hill
c2fcdf6fd6
avm2: Implement Stage3D.requestContext3DMatchingProfiles
...
For now, we just ignore the parameters and call requestContext3D
2023-06-30 23:22:56 -04:00
Crowdin Bot
29a5c6a4cd
chore: Update translations from Crowdin
2023-07-01 00:47:31 +02:00
David Wendt
32524d3abd
core: AVM2 display object allocators always ensure both halves of the display object are connected correctly
2023-06-30 16:14:28 -06:00
TÖRÖK Attila
c7bbed958c
tests: Add test of ScreenVideo FLVs (contributed by torokati44)
2023-06-30 16:14:28 -06:00
David Wendt
8ac8b926ac
core: If a video does not have an `onMetaData` block, register a compatible-ish datastream so that we can still play the video
2023-06-30 16:14:28 -06:00
David Wendt
b9aaaf5259
flv: ScreenVideo v2 also wants the FLV video data byte
2023-06-30 16:14:28 -06:00
David Wendt
3ff1db014f
flv: Screen Video wants the FLV `VideoData` header byte
2023-06-30 16:14:28 -06:00
David Wendt
21b7e70d09
docs: Keep documentation of the old `num_frames` options until we can remove them
2023-06-30 16:14:28 -06:00
David Wendt
ff1ed66729
flv: VP6 video packets have a horizontal and vertical adjustment before the actual video data.
2023-06-30 16:14:28 -06:00
David Wendt
98ee78be1a
avm2: Make netstream event initialization more concise
2023-06-30 16:14:28 -06:00
David Wendt
04ee039d3c
avm2: Use `ParametersExt` to grab parameters in `Video.init()`
2023-06-30 16:14:28 -06:00
David Wendt
faf8fb5d3f
avm2: Move as much `Video` initialization as possible into an instance allocator function
2023-06-30 16:14:28 -06:00
David Wendt
45e6f07009
core: Pause the stream if we hit a tag parsing error.
2023-06-30 16:14:28 -06:00
David Wendt
af0149c476
core: Log netstream signature verification errors
2023-06-30 16:14:28 -06:00
David Wendt
b639af1ada
avm2: `Video.init` doesn't need to call `super_init`
2023-06-30 16:14:28 -06:00
David Wendt
4f4a205637
tests: Add images to the netstream tests
2023-06-30 16:14:28 -06:00
David Wendt
d2f806a901
core: The AVM2 version of this test wants a spurious status event
2023-06-30 16:14:28 -06:00
David Wendt
ab21b5b106
core: The stop event is `NetStream.Play.Stop`
2023-06-30 16:14:28 -06:00
David Wendt
61c269c636
docs: Document `num_ticks` and `tick_rate`
2023-06-30 16:14:28 -06:00
David Wendt
16c9cb4fdd
tests: Add option to send ticks to the player instead of calling `run_frame`.
...
You can also specify a `tick_rate` in order to get ticks faster or slower than the stage frame rate.
We also enable video decode and ticks on the netstream tests, since our netstream impl requires ticks.
2023-06-30 16:14:28 -06:00
David Wendt
fc50a688fb
core: Update stream time after processing tags
2023-06-30 16:14:28 -06:00
David Wendt
4dd9508471
avm1: Implement onStatus events for NetStream
2023-06-30 16:14:28 -06:00
David Wendt
63b27a4a20
avm2: Pass status events through to AVM2.
2023-06-30 16:14:28 -06:00
David Wendt
757ae40abc
core: Add stubs for stream event triggers
2023-06-30 16:14:28 -06:00
David Wendt
da2ef5392e
core: Make the `NetStream`/AVM link bidirectional
2023-06-30 16:14:28 -06:00
David Wendt
067474dea5
chore: Remove unused variables from stream.rs
2023-06-30 16:14:28 -06:00
David Wendt
4944d81dd7
tests: Update the AVM1 test output to include event data.
2023-06-30 16:14:28 -06:00
David Wendt
d498a412e5
core: Retain original SWF dimensions for self bounds
2023-06-30 16:14:28 -06:00
David Wendt
b164319e32
core: FLV metadata is stored as an array, not an object.
2023-06-30 16:14:28 -06:00
David Wendt
643b053e8d
core: Don't mark the video stream as corrupt if we haven't gotten the full header yet
2023-06-30 16:14:28 -06:00
David Wendt
587a99fae7
core: Netstream loaders are... well, netstream loaders.
2023-06-30 16:14:28 -06:00
David Wendt
0e207cce8d
core: Actually spawn the loader future for the netstream
2023-06-30 16:14:28 -06:00
David Wendt
7e986bd90d
avm1: `NetStream` constructor must return itself
2023-06-30 16:14:28 -06:00
David Wendt
766ee5302d
core: Properly expose AVM1/2 objects for videos.
2023-06-30 16:14:28 -06:00
David Wendt
a52f738009
core: Silence various errors triggered by loading an empty video stream
2023-06-30 16:14:28 -06:00
David Wendt
34625524ad
swf: Zero is a valid video codec and it indicates no codec.
2023-06-30 16:14:28 -06:00
David Wendt
257403d04e
core: Errors in tag parsing should include the explanation of the underlying error
2023-06-30 16:14:28 -06:00
David Wendt
f690162a4f
avm2: Actually create an unconnected `Video` when one is constructed via `new Video`
2023-06-30 16:14:28 -06:00
David Wendt
c86360a10b
core: `Video`s attached to a `NetStream` get their bitmap size and data from the attached `NetStream`.
2023-06-30 16:14:28 -06:00
David Wendt
9e318fc8e8
core: Process basic FLV video data tags and funnel them to the video backend.
...
This works a bit differently from SWF videos, we do not retain decoded video frames or valid seek points indefinitely. This assumes code interacting with `NetStream` is at least mildly aware of how a video codec is supposed to work and what the performance implications of that are.
2023-06-30 16:14:28 -06:00
David Wendt
3d5156b90d
core: Update the stream offset after each tag is processed.
...
The `preload_offset` is only ever moved forward, of course.
2023-06-30 16:14:28 -06:00
David Wendt
3410d9fcf8
core: Process `onMetaData` to get our stream definition with.
...
We use `preload_offset` to avoid processing the same metadata multiple times.
2023-06-30 16:14:28 -06:00
David Wendt
286acddfea
core: Introduce the notion of a separate preload step.
...
We don't actually process tags out of order, we're just tracking what tags have already been processed. FLV embeds critical video metadata in a ScriptData tag that we need to pull data out of and process.
2023-06-30 16:14:28 -06:00
David Wendt
bc9fd3613e
core: Add stub FLV processing
2023-06-30 16:14:28 -06:00
David Wendt
c00cd0537c
tests: Add tests for AVM1 and AVM2 host FLV players.
2023-06-30 16:14:28 -06:00
David Wendt
ea9c5ae830
flv: Break `io::Error` into kind and string at construction time to avoid having to do so when cloning.
2023-06-30 16:14:28 -06:00
David Wendt
0f176484ea
flv: Refactor tag parsing to use error codes instead of `None`.
2023-06-30 16:14:28 -06:00
David Wendt
e4b76ac149
flv: Sound format bits are ALSO specified backwards!
2023-06-30 16:14:28 -06:00
David Wendt
c61b27a41b
flv: Codec ID and frame type are specified backwards
2023-06-30 16:14:28 -06:00