// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/webcodecs-hevc-codec-registration
///|
/// HevcBitstreamFormat enum
pub(all) enum HevcBitstreamFormat {
Annexb
Hevc
} derive(Eq, Show)
///|
/// Convert to string value
pub fn HevcBitstreamFormat::to_string(self : HevcBitstreamFormat) -> String {
match self {
HevcBitstreamFormat::Annexb => "annexb"
HevcBitstreamFormat::Hevc => "hevc"
}
}
///|
/// Parse from string value
pub fn HevcBitstreamFormat::from_string(s : String) -> HevcBitstreamFormat? {
match s {
"annexb" => Some(HevcBitstreamFormat::Annexb)
"hevc" => Some(HevcBitstreamFormat::Hevc)
_ => None
}
}
///|
/// HevcEncoderConfig dictionary
pub(all) struct HevcEncoderConfig {
format : HevcBitstreamFormat?
}
///|
/// Create a new HevcEncoderConfig with default values
pub fn HevcEncoderConfig::default() -> HevcEncoderConfig {
HevcEncoderConfig::{ format: None }
}
///|
extern "js" fn HevcEncoderConfig::to_js_ffi(
self : HevcEncoderConfig,
) -> JsValue =
#| (self) => ({
#| format: ((() => { const v = self.format; if (v === undefined) return undefined; return ['annexb', 'hevc'][v]; })())
#| })
///|
/// Convert to JsValue
pub fn HevcEncoderConfig::to_js(self : HevcEncoderConfig) -> JsValue {
HevcEncoderConfig::to_js_ffi(self)
}
///|
extern "js" fn HevcEncoderConfig::from_js_ffi(
value : JsValue,
) -> HevcEncoderConfig =
#| (v) => ({
#| format: (v.format === undefined ? undefined : ['annexb', 'hevc'].indexOf(v.format))
#| })
///|
/// Convert from JsValue
pub fn HevcEncoderConfig::from_js(value : JsValue) -> HevcEncoderConfig {
HevcEncoderConfig::from_js_ffi(value)
}
///|
/// VideoEncoderEncodeOptionsForHevc dictionary
pub(all) struct VideoEncoderEncodeOptionsForHevc {
quantizer : Nullable[Int]
}
///|
/// Create a new VideoEncoderEncodeOptionsForHevc with default values
pub fn VideoEncoderEncodeOptionsForHevc::default() -> VideoEncoderEncodeOptionsForHevc {
VideoEncoderEncodeOptionsForHevc::{ quantizer: Nullable::Undefined }
}
///|
extern "js" fn VideoEncoderEncodeOptionsForHevc::to_js_ffi(
self : VideoEncoderEncodeOptionsForHevc,
) -> JsValue =
#| (self) => ({
#| quantizer: ((() => { const v = self.quantizer; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn VideoEncoderEncodeOptionsForHevc::to_js(
self : VideoEncoderEncodeOptionsForHevc,
) -> JsValue {
VideoEncoderEncodeOptionsForHevc::to_js_ffi(self)
}
///|
extern "js" fn VideoEncoderEncodeOptionsForHevc::from_js_ffi(
value : JsValue,
) -> VideoEncoderEncodeOptionsForHevc =
#| (v) => ({
#| quantizer: (v.quantizer === undefined ? { $tag: 0 } : v.quantizer === null ? { $tag: 1 } : { $tag: 2, _0: v.quantizer })
#| })
///|
/// Convert from JsValue
pub fn VideoEncoderEncodeOptionsForHevc::from_js(
value : JsValue,
) -> VideoEncoderEncodeOptionsForHevc {
VideoEncoderEncodeOptionsForHevc::from_js_ffi(value)
}