video: Made ruffle_video crate, moved core video Error to it
This commit is contained in:
parent
72da1535b7
commit
b7cf800f88
|
@ -3081,6 +3081,7 @@ dependencies = [
|
|||
"regress",
|
||||
"ruffle_macros",
|
||||
"ruffle_render",
|
||||
"ruffle_video",
|
||||
"ruffle_wstr",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
@ -3217,6 +3218,16 @@ dependencies = [
|
|||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruffle_video"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"gc-arena",
|
||||
"ruffle_render",
|
||||
"swf",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruffle_web"
|
||||
version = "0.1.0"
|
||||
|
|
|
@ -16,6 +16,8 @@ members = [
|
|||
"render/wgpu",
|
||||
"render/webgl",
|
||||
|
||||
"video",
|
||||
|
||||
"tests",
|
||||
"tests/input-format",
|
||||
]
|
||||
|
|
|
@ -16,6 +16,7 @@ indexmap = "1.9.1"
|
|||
log = "0.4"
|
||||
minimp3 = { version = "0.5.1", optional = true }
|
||||
ruffle_render = { path = "../render" }
|
||||
ruffle_video = { path = "../video" }
|
||||
ruffle_macros = { path = "macros" }
|
||||
ruffle_wstr = { path = "../wstr" }
|
||||
swf = { path = "../swf" }
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
use generational_arena::{Arena, Index};
|
||||
use ruffle_render::backend::RenderBackend;
|
||||
use ruffle_render::bitmap::BitmapInfo;
|
||||
use ruffle_video::error::Error;
|
||||
use swf::{VideoCodec, VideoDeblocking};
|
||||
use thiserror::Error;
|
||||
|
||||
mod software;
|
||||
|
||||
|
@ -12,27 +12,6 @@ pub use crate::backend::video::software::SoftwareVideoBackend;
|
|||
|
||||
pub type VideoStreamHandle = Index;
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum Error {
|
||||
#[error("Attempted to seek to omitted frame {0} without prior decoded frame")]
|
||||
SeekingBeforeDecoding(u32),
|
||||
|
||||
#[error("Unsupported video codec type: {0:?}")]
|
||||
UnsupportedCodec(VideoCodec),
|
||||
|
||||
#[error("Video stream is not registered")]
|
||||
VideoStreamIsNotRegistered,
|
||||
|
||||
#[error("Couldn't create bitmap for video frame")]
|
||||
BitmapError(#[from] ruffle_render::error::Error),
|
||||
|
||||
#[error("Video decoding isn't supported")]
|
||||
DecodingNotSupported,
|
||||
|
||||
#[error(transparent)]
|
||||
DecoderError(Box<dyn std::error::Error + Send + Sync>),
|
||||
}
|
||||
|
||||
/// An encoded video frame of some video codec.
|
||||
pub struct EncodedFrame<'a> {
|
||||
/// The codec used to encode the frame.
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
use crate::backend::video::software::VideoDecoder;
|
||||
use crate::backend::video::{DecodedFrame, EncodedFrame, Error, FrameDependency};
|
||||
use crate::backend::video::{DecodedFrame, EncodedFrame, FrameDependency};
|
||||
use h263_rs::parser::H263Reader;
|
||||
use h263_rs::{DecoderOption, H263State, PictureTypeCode};
|
||||
use h263_rs_yuv::bt601::yuv420_to_rgba;
|
||||
use ruffle_video::error::Error;
|
||||
|
||||
#[derive(thiserror::Error, Debug)]
|
||||
pub enum H263Error {
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
// written by Kostya Shishkov, with permission.
|
||||
|
||||
use crate::backend::video::software::VideoDecoder;
|
||||
use crate::backend::video::{DecodedFrame, EncodedFrame, Error, FrameDependency};
|
||||
use crate::backend::video::{DecodedFrame, EncodedFrame, FrameDependency};
|
||||
use ruffle_video::error::Error;
|
||||
|
||||
use flate2::Decompress;
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
use crate::backend::video::software::VideoDecoder;
|
||||
use crate::backend::video::{DecodedFrame, EncodedFrame, Error, FrameDependency};
|
||||
use crate::backend::video::{DecodedFrame, EncodedFrame, FrameDependency};
|
||||
use ruffle_video::error::Error;
|
||||
|
||||
use h263_rs_yuv::bt601::yuv420_to_rgba;
|
||||
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
//! Pure software video decoding backend.
|
||||
|
||||
use crate::backend::video::{
|
||||
DecodedFrame, EncodedFrame, Error, FrameDependency, VideoBackend, VideoStreamHandle,
|
||||
DecodedFrame, EncodedFrame, FrameDependency, VideoBackend, VideoStreamHandle,
|
||||
};
|
||||
use generational_arena::Arena;
|
||||
use ruffle_render::backend::RenderBackend;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapInfo};
|
||||
use ruffle_video::error::Error;
|
||||
use swf::{VideoCodec, VideoDeblocking};
|
||||
|
||||
pub mod decoders;
|
||||
|
|
|
@ -4,7 +4,7 @@ use crate::avm1::{Object as Avm1Object, StageObject as Avm1StageObject};
|
|||
use crate::avm2::{
|
||||
Activation as Avm2Activation, Object as Avm2Object, StageObject as Avm2StageObject,
|
||||
};
|
||||
use crate::backend::video::{EncodedFrame, Error, VideoStreamHandle};
|
||||
use crate::backend::video::{EncodedFrame, VideoStreamHandle};
|
||||
use crate::context::{RenderContext, UpdateContext};
|
||||
use crate::display_object::{DisplayObjectBase, DisplayObjectPtr, TDisplayObject};
|
||||
use crate::prelude::*;
|
||||
|
@ -13,6 +13,7 @@ use crate::vminterface::{AvmObject, Instantiator};
|
|||
use gc_arena::{Collect, GcCell, MutationContext};
|
||||
use ruffle_render::bitmap::BitmapInfo;
|
||||
use ruffle_render::bounding_box::BoundingBox;
|
||||
use ruffle_video::error::Error;
|
||||
use std::borrow::{Borrow, BorrowMut};
|
||||
use std::cell::{Ref, RefMut};
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
[package]
|
||||
name = "ruffle_video"
|
||||
version = "0.1.0"
|
||||
authors = ["Ruffle LLC <ruffle@ruffle.rs>"]
|
||||
edition = "2021"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
||||
[dependencies]
|
||||
swf = { path = "../swf" }
|
||||
ruffle_render = { path = "../render" }
|
||||
generational-arena = "0.2.8"
|
||||
thiserror = "1.0"
|
||||
|
||||
[features]
|
||||
default = []
|
|
@ -0,0 +1,23 @@
|
|||
use swf::VideoCodec;
|
||||
use thiserror::Error;
|
||||
|
||||
#[derive(Error, Debug)]
|
||||
pub enum Error {
|
||||
#[error("Attempted to seek to omitted frame {0} without prior decoded frame")]
|
||||
SeekingBeforeDecoding(u32),
|
||||
|
||||
#[error("Unsupported video codec type: {0:?}")]
|
||||
UnsupportedCodec(VideoCodec),
|
||||
|
||||
#[error("Video stream is not registered")]
|
||||
VideoStreamIsNotRegistered,
|
||||
|
||||
#[error("Couldn't create bitmap for video frame")]
|
||||
BitmapError(#[from] ruffle_render::error::Error),
|
||||
|
||||
#[error("Video decoding isn't supported")]
|
||||
DecodingNotSupported,
|
||||
|
||||
#[error(transparent)]
|
||||
DecoderError(Box<dyn std::error::Error + Send + Sync>),
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
pub mod error;
|
Loading…
Reference in New Issue