Crates.io | bevy_video_playing |
lib.rs | bevy_video_playing |
version | 0.10.0 |
source | src |
created_at | 2023-04-10 01:02:24.675931 |
updated_at | 2023-04-10 01:02:24.675931 |
description | Decode and render h264 video in Bevy 0.10.0 |
homepage | |
repository | https://github.com/sethblocks/bevy_video |
max_upload_size | |
id | 834633 |
size | 10,002 |
Stream or play video in your Bevy app!
Currently supports: Bevy 0.10.0
use bevy::prelude::*;
use bevy_video::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(VideoPlugin)
.add_startup_system(setup)
.add_system(push_frame)
.run();
}
fn setup(
mut commands: Commands,
mut images: ResMut<Assets<Image>>,
) {
let (image_handle, video_decoder) = VideoDecoder::create(&mut images);
// decoder
commands.spawn(video_decoder);
// ...
}
fn push_frame(
decoders: Query<&VideoDecoder>,
mut materials: ResMut<Assets<MaterialThatUsesTheImage>>,
) {
for _ in materials.iter_mut() {
// otherwise the image on screen wont update
}
for decoder in decoders.iter() {
decoder.add_video_packet(/* Vec<u8> representing an H.264 packet */);
// Note: packets are decoded asynchronously in another thread
// The Images will update automatically
}
}