MMA_DataFormat

(V51) [..G.Q], CONST_STRPTR, 0x8EDA000B

DESCRIPTION

   Returns short, read-only textual description of the format. An object
   connected to a data stream returns string "XZ

NOTES

   Usually, when xz.demuxer is a part of processing pipeline built with
   MediaNewObject(), this attribute is "shadowed" by demuxer(s) following
   in the pipeline.

MMA_MimeType

(V51) [..G.Q], CONST_STRPTR, 0x8EDA000A

DESCRIPTION

   Returns MIME type string of the format. An object connected to a data
   stream returns string "application/x-xz

NOTES

   Usually, when xz.demuxer is a part of processing pipeline built with
   MediaNewObject(), this attribute is "shadowed" by demuxer(s) following
   in the pipeline.

MMA_StreamLength

(V51) [..G.Q], QUAD*, 0x8EDA0018

DESCRIPTION

   MMA_StreamLength is the output (uncompressed) stream length in bytes. For
   xz.demuxer the length can be 0 (which means unknown length), as XZ might
   not always know the uncompressed length. The attribute is defined as a
   pointer to 64-bit signed number containing the length

NOTE

   Input stream length must be available as well as the input stream must be
   seekable. If either of these conditions are not met, result will be 0.

MMA_StreamPosBytes

(V51) [..G.Q], QUAD*, 0x8EDA0012

DESCRIPTION

   MMA_StreamPosBytes value is the current position in the output
   (uncompressed) stream. This position is in bytes, and is returned as a
   pointer to 64-bit signed number

MMM_Pull

Decompresses a block of data into a buffer.

SYNOPSIS

   bytes = DoMethod(obj, MMM_Pull, ULONG port, APTR buffer, ULONG length);

DESCRIPTION

   Delivers a specified amount of decompressed data to the output buffer

INPUTS

   - obj, object to perform the method on.
   - port, number of port, must be 1 (output).
   - buffer, a memory buffer for decompressed data, must be aligned to
     16-byte boundary (preferrably allocated with MediaAllocVec()).
   - length, amount of pulled data in bytes

RESULT

   Number of bytes pulled actually. In case of error, additional information
   is available via MMA_ErrorCode attribute

SEE ALSO

background

HISTORY

   51.1   (17.07.2019)
   - The first release.
   51.2   (25.08.2019)
   - Implemented MMA_StreamLength.

DESCRIPTION

   This class allows Reggae to handle data compressed with XZ compressor.
   In other words it is a wrapper on lzma.library. Using this class Reggae
   can decompress data from any XZ source stream.

   Reggae is able to cascade demuxers in case of compound data formats. When
   MediaNewObject() recognizes a stream, it detects XZ packed files with
   this class recognition routine. Xz.demuxer object sets MMF_STREAM data
   type on its output, which makes Reggae to perform demultiplexer matching
   recursively, but this time on decompressed data.

NEW ATTRIBUTES

   Attributes applicability:
     I - may be set at creation time.
     S - may be set on an existing object.
     G - may be get from an object.
     P - may be set for an object's port.
     Q - may be queried from an object's port.

   MMA_StreamLength                (V51)  ..G.Q  (QUAD*)
   MMA_StreamPosBytes              (V51)  ..G.Q  (QUAD*)

NEW METHODS

   MMM_Pull(port, buffer, length)  (V51)