Skip to main content

GainMapBundle

Struct GainMapBundle 

Source
pub struct GainMapBundle {
    pub metadata: Vec<u8>,
    pub color_encoding: Option<Vec<u8>>,
    pub alt_icc_compressed: Option<Vec<u8>>,
    pub gain_map_codestream: Vec<u8>,
}
Expand description

Parsed JXL gain map bundle from a jhgm container box.

The bundle contains the ISO 21496-1 metadata, an optional JXL ColorEncoding, an optional Brotli-compressed ICC profile for the alternate rendition, and the bare JXL codestream of the gain map image.

Fields§

§metadata: Vec<u8>

ISO 21496-1 binary metadata blob (unparsed — caller parses with ultrahdr-core).

§color_encoding: Option<Vec<u8>>

JXL ColorEncoding for the gain map (optional, raw bytes — JXL-native bit-packed).

§alt_icc_compressed: Option<Vec<u8>>

Brotli-compressed ICC profile for alternate rendition (optional, not decompressed).

§gain_map_codestream: Vec<u8>

Bare JXL codestream of the gain map image (no container wrapper).

Implementations§

Source§

impl GainMapBundle

Source

pub fn parse(data: &[u8]) -> Result<Self>

Parse a gain map bundle from the raw payload of a jhgm box.

Wire format:

jhgm_version:            u8       // must be 0x00
gain_map_metadata_size:  u16 BE   // size of ISO 21496-1 metadata
gain_map_metadata:       [u8; N]  // ISO 21496-1 binary metadata
color_encoding_size:     u8       // 0 = absent; else byte count
color_encoding:          [u8; M]  // JXL ColorEncoding (optional)
alt_icc_size:            u32 BE   // size of Brotli-compressed ICC
alt_icc:                 [u8; K]  // Brotli-compressed ICC (optional)
gain_map:                [u8; *]  // remaining bytes = bare JXL codestream
Source

pub fn serialize(&self) -> Vec<u8>

Serialize a gain map bundle to the wire format used inside a jhgm box.

Returns the raw bytes that form the payload of a jhgm container box.

Trait Implementations§

Source§

impl Clone for GainMapBundle

Source§

fn clone(&self) -> GainMapBundle

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GainMapBundle

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for GainMapBundle

Source§

fn eq(&self, other: &GainMapBundle) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for GainMapBundle

Source§

impl StructuralPartialEq for GainMapBundle

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.