Commit Graph

5723 Commits

Author SHA1 Message Date
Aaron Hill 6e1f00edf2
render: Implement more PixelBender features (#11800) 2023-07-01 13:50:43 -04:00
Aaron Hill 710be15f78 core: Bail out of operations::color_transform if [xy]_min==[xy]_max
In the special case where y_min==y_max==(height-1),
we would create a bad 'encompassing' region - subtracing
one from the max would make it smaller than the min,
causing `PixelRegion::encompassing_pixels` to treat it
as the minimum, and add one to `height - 1`

There's no work to do when x_min==x_max or y_min==y_max,
so we can also skip the sync and GC write in this case.
2023-07-01 09:55:59 -04:00
Nathan Adams 5e608764ec core: Add debug feature to find display objects by mouse 2023-07-01 12:58:32 +02: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
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 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 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 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 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 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
Fancy2209 8f0a43f9d9
Add prependRotation, copyRowTo and copyRowFrom (#11698)
Co-authored-by: Aaron Hill <aa1ronham@gmail.com>
2023-06-30 14:31:08 -04:00
Aaron Hill 1c151a86d6 avm2: Stub isXMLName 2023-06-29 15:51:39 -04:00
Nathan Adams a5915a9bdb swf: Make Color Copy 2023-06-29 20:32:36 +02:00
Lord-McSweeney 04747f86b6 avm2: Stub AVM1Movie 2023-06-29 12:05:01 -04:00
EmperorBale e846d035e5 avm2: Use `method_name` as last resort if available in stack trace 2023-06-29 11:49:48 -04:00
Aaron Hill 9b8a8c9974 avm2: Correctly re-use objects in XML/XMLList call handlers and ctors
`XML(someXMLObj)` and `XMLList(someXMLList)` perform the
normal cast behavior (returning the same object), instead
of creating a new object like other arguments do.

This also applies to `new XMLList(someXMLObj)`
and `XML(singleElemXMLList)`
2023-06-28 21:16:05 -04:00
Crowdin Bot 1430e98851 chore: Update translations from Crowdin 2023-06-28 23:19:47 +02:00
Niv.Kaminer 053bcf9376 core: Update sounds in rootless SWF (close #11666) 2023-06-26 16:59:01 -04:00
renovate[bot] 3057aa59dd chore(deps): lock file maintenance rust dependencies 2023-06-25 21:53:00 -04:00
renovate[bot] f62dd17284 fix(deps): update rust crate indexmap to v2 2023-06-25 20:27:33 -04:00