Flac
module that provides functionality
for encoding WAV/PCM audio to Flac and decoding Flac to PCM.
NOTE most functions are named analogous to the original C library functions, so that its documentation may be used for further reading.
Methods
-
_create_pointer_array(bufferArray){Flac.PointerInfo}
-
Helper function for creating pointer (and allocating the data) to an array of buffers on the (memory) heap. Use the returned
PointerInfo.dataPointer
as argument, where the array-pointer is required. NOTE: afer use, the allocated buffers on the heap need be freed, see_destroy_pointer_array
.Name Type Description bufferArray
Array.<Uint8Array> the buffer for which to create Returns:
Type Description Flac.PointerInfo false
if the decoder is already initialized, elsetrue
-
_destroy_pointer_array(pointerInfo)
-
Helper function for destroying/freeing a previously created pointer (and allocating the data) of an array of buffers on the (memory) heap.
Name Type Description pointerInfo
Flac.PointerInfo the pointer / allocation information that should be destroyed/freed -
create_libflac_decoder(is_verify){number}
-
Create a decoder.
Name Type Description is_verify
boolean optional enable/disable checksum verification during decoding
DEFAULT: trueReturns:
Type Description number the ID of the created decoder instance (or 0, if there was an error) -
create_libflac_encoder(sample_rate, channels, bps, compression_level, total_samples, is_verify, block_size){number}
-
Create an encoder.
Name Type Description sample_rate
number the sample rate of the input PCM data channels
number the number of channels of the input PCM data bps
number bits per sample of the input PCM data compression_level
Flac.CompressionLevel the desired Flac compression level: [0, 8] total_samples
number optional OPTIONAL the number of total samples of the input PCM data:
Sets an estimate of the total samples that will be encoded. This is merely an estimate and may be set to 0 if unknown. This value will be written to the STREAMINFO block before encoding, and can remove the need for the caller to rewrite the value later if the value is known before encoding.
If specified, the it will be written into metadata of the FLAC header.
DEFAULT: 0 (i.e. unknown number of samples)is_verify
boolean optional OPTIONAL enable/disable checksum verification during encoding
DEFAULT: true
NOTE: this argument is positional (i.e. total_samples must also be given)block_size
number optional OPTIONAL the number of samples to use per frame.
DEFAULT: 0 (i.e. encoder sets block size automatically) NOTE: this argument is positional (i.e. total_samples and is_verify must also be given)Returns:
Type Description number the ID of the created encoder instance (or 0, if there was an error) -
FLAC__stream_decoder_delete(decoder)
-
Delete the decoder instance, and free up its resources.
Name Type Description decoder
number the ID of the decoder instance -
FLAC__stream_decoder_finish(decoder){boolean}
-
Finish the decoding process. The decoder can be reused, after initializing it again.
Name Type Description decoder
number the ID of the decoder instance Returns:
Type Description boolean false
if MD5 checking is on AND a STREAMINFO block was available AND the MD5 signature in the STREAMINFO block was non-zero AND the signature does not match the one computed by the decoder; elsetrue
. -
FLAC__stream_decoder_get_md5_checking(decoder){boolean}
-
Get if MD5 verification is enabled for the decoder
Name Type Description decoder
number the ID of the decoder instance Returns:
Type Description boolean true
if MD5 verification is enabled -
FLAC__stream_decoder_get_state(decoder){Flac.FLAC__StreamDecoderState}
-
Name Type Description decoder
number the ID of the decoder instance Returns:
Type Description Flac.FLAC__StreamDecoderState the decoder state -
FLAC__stream_decoder_process_single(decoder){boolean}
-
Decodes a single frame. To check decoding progress, use
FLAC__stream_decoder_get_state
.Name Type Description decoder
number the ID of the decoder instance Returns:
Type Description boolean FALSE if an error occurred -
FLAC__stream_decoder_process_until_end_of_metadata(decoder){boolean}
-
Decodes data until end of metadata.
Name Type Description decoder
number the ID of the decoder instance Returns:
Type Description boolean false if any fatal read, write, or memory allocation error occurred (meaning decoding must stop), else true. -
FLAC__stream_decoder_process_until_end_of_stream(decoder){boolean}
-
Decodes data until end of stream.
Name Type Description decoder
number the ID of the decoder instance Returns:
Type Description boolean FALSE if an error occurred -
FLAC__stream_decoder_reset(decoder){boolean}
-
Reset the decoder for reuse.
NOTE: Needs to be re-initialized, before it can be used again
Name Type Description decoder
number the ID of the decoder instance Returns:
Type Description boolean true if successful -
FLAC__stream_decoder_set_md5_checking(decoder, is_verify){boolean}
-
Set the "MD5 signature checking" flag. If true, the decoder will compute the MD5 signature of the unencoded audio data while decoding and compare it to the signature from the STREAMINFO block, if it exists, during
FLAC__stream_decoder_finish()
. MD5 signature checking will be turned off (until the nextFLAC__stream_decoder_reset()
) if there is no signature in the STREAMINFO block or when a seek is attempted. Clients that do not use the MD5 check should leave this off to speed up decoding.Name Type Description decoder
number the ID of the decoder instance is_verify
boolean enable/disable checksum verification during decoding Returns:
Type Description boolean FALSE if the decoder is already initialized, else TRUE. -
FLAC__stream_decoder_set_metadata_ignore(decoder, type){boolean}
-
Direct the decoder to filter out all metadata blocks of type type. By default, only the STREAMINFO block is returned via the metadata callback.
NOTE: only use on un-initilized decoder instances!
Name Type Description decoder
number the ID of the decoder instance type
Flac.FLAC__MetadataType the metadata type to be ignored Returns:
Type Description boolean false
if the decoder is already initialized, elsetrue
-
FLAC__stream_decoder_set_metadata_ignore_all(decoder){boolean}
-
Direct the decoder to filter out all metadata blocks of any type. By default, only the STREAMINFO block is returned via the metadata callback.
NOTE: only use on un-initilized decoder instances!
Name Type Description decoder
number the ID of the decoder instance - See:
Returns:
Type Description boolean false
if the decoder is already initialized, elsetrue
-
FLAC__stream_decoder_set_metadata_ignore_application(decoder, id){boolean}
-
Direct the decoder to filter out all APPLICATION metadata blocks of the given id. By default, only the STREAMINFO block is returned via the metadata callback.
NOTE: only use on un-initilized decoder instances!
Name Type Description decoder
number the ID of the decoder instance id
number the ID of application metadata Returns:
Type Description boolean false
if the decoder is already initialized, elsetrue
-
FLAC__stream_decoder_set_metadata_respond(decoder, type){boolean}
-
Direct the decoder to pass on all metadata blocks of type type. By default, only the STREAMINFO block is returned via the metadata callback.
NOTE: only use on un-initilized decoder instances!
Name Type Description decoder
number the ID of the decoder instance type
Flac.FLAC__MetadataType the metadata type to be enabled Returns:
Type Description boolean false
if the decoder is already initialized, elsetrue
-
FLAC__stream_decoder_set_metadata_respond_all(decoder){boolean}
-
Direct the decoder to pass on all metadata blocks of any type. By default, only the STREAMINFO block is returned via the metadata callback.
NOTE: only use on un-initilized decoder instances!
Name Type Description decoder
number the ID of the decoder instance - See:
Returns:
Type Description boolean false
if the decoder is already initialized, elsetrue
-
FLAC__stream_decoder_set_metadata_respond_application(decoder, id){boolean}
-
Direct the decoder to pass on all APPLICATION metadata blocks of the given id. By default, only the STREAMINFO block is returned via the metadata callback.
NOTE: only use on un-initilized decoder instances!
Name Type Description decoder
number the ID of the decoder instance id
number the ID of application metadata Returns:
Type Description boolean false
if the decoder is already initialized, elsetrue
-
FLAC__stream_encoder_delete(encoder)
-
Delete the encoder instance, and free up its resources.
Name Type Description encoder
number the ID of the encoder instance -
FLAC__stream_encoder_finish(encoder){boolean}
-
Finish the encoding process.
Name Type Description encoder
number the ID of the encoder instance Returns:
Type Description boolean false
if an error occurred processing the last frame; or if verify mode is set, there was a verify mismatch; elsetrue
. Iffalse
, caller should check the state withFlac#FLAC__stream_encoder_get_state
for more information about the error. -
FLAC__stream_encoder_get_state(encoder){Flac.FLAC__StreamEncoderState}
-
Name Type Description encoder
number the ID of the encoder instance Returns:
Type Description Flac.FLAC__StreamEncoderState the encoder state -
FLAC__stream_encoder_get_verify(encoder){boolean}
-
Get the "verify" flag for the encoder.
Name Type Description encoder
number the ID of the encoder instance Returns:
Type Description boolean the verify flag for the encoder -
FLAC__stream_encoder_get_verify_decoder_state(encoder){Flac.FLAC__StreamDecoderState}
-
Get the state of the verify stream decoder. Useful when the stream encoder state is FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR.
Name Type Description encoder
number the ID of the encoder instance Returns:
Type Description Flac.FLAC__StreamDecoderState the verify stream decoder state -
FLAC__stream_encoder_process(encoder, channelBuffers, num_of_samples){boolean}
-
Encode / submit data for encoding. Submit data for encoding. This version allows you to supply the input data via an array of pointers, each pointer pointing to an array of samples samples representing one channel. The samples need not be block-aligned, but each channel should have the same number of samples. Each sample should be a signed integer, right-justified to the resolution set by FLAC__stream_encoder_set_bits_per_sample(). For example, if the resolution is 16 bits per sample, the samples should all be in the range [-32768,32767]. For applications where channel order is important, channels must follow the order as described in the frame header.
Name Type Description encoder
number the ID of the encoder instance channelBuffers
Array.<TypedArray> an array for the audio data channels as typed arrays with signed integers (and size according to the set bits-per-sample setting) num_of_samples
number the number of samples in one channel (i.e. one of the buffers) Returns:
Type Description boolean true if successful, else false; in this case, check the encoder state with FLAC__stream_encoder_get_state() to see what went wrong. -
FLAC__stream_encoder_process_interleaved(encoder, buffer, num_of_samples){boolean}
-
Encode / submit data for encoding. This version allows you to supply the input data where the channels are interleaved into a single array (i.e. channel0_sample0, channel1_sample0, ... , channelN_sample0, channel0_sample1, ...). The samples need not be block-aligned but they must be sample-aligned, i.e. the first value should be channel0_sample0 and the last value channelN_sampleM. Each sample should be a signed integer, right-justified to the resolution set by bits-per-sample. For example, if the resolution is 16 bits per sample, the samples should all be in the range [-32768,32767]. For applications where channel order is important, channels must follow the order as described in the frame header.
Name Type Description encoder
number the ID of the encoder instance buffer
TypedArray the audio data in a typed array with signed integers (and size according to the set bits-per-sample setting) num_of_samples
number the number of samples in buffer Returns:
Type Description boolean true if successful, else false; in this case, check the encoder state with FLAC__stream_encoder_get_state() to see what went wrong. -
FLAC__stream_encoder_set_blocksize(encoder, block_size){boolean}
-
Set the blocksize to use while encoding. The number of samples to use per frame. Use 0 to let the encoder estimate a blocksize; this is usually best.
NOTE: only use on un-initilized encoder instances!
Name Type Description encoder
number the ID of the encoder instance block_size
number the number of samples to use per frame Returns:
Type Description boolean false
if the encoder is already initialized, elsetrue
-
FLAC__stream_encoder_set_compression_level(encoder, compression_level){boolean}
-
Set the compression level The compression level is roughly proportional to the amount of effort the encoder expends to compress the file. A higher level usually means more computation but higher compression. The default level is suitable for most applications. Currently the levels range from 0 (fastest, least compression) to 8 (slowest, most compression). A value larger than 8 will be treated as 8.
NOTE: only use on un-initilized encoder instances!
Name Type Description encoder
number the ID of the encoder instance compression_level
Flac.CompressionLevel the desired Flac compression level: [0, 8] - See:
Returns:
Type Description boolean false
if the encoder is already initialized, elsetrue
-
FLAC__stream_encoder_set_metadata(encoder, metadataBuffersPointer, num_blocks){boolean}
-
Set the metadata blocks to be emitted to the stream before encoding. A value of NULL, 0 implies no metadata; otherwise, supply an array of pointers to metadata blocks. The array is non-const since the encoder may need to change the is_last flag inside them, and in some cases update seek point offsets. Otherwise, the encoder will not modify or free the blocks. It is up to the caller to free the metadata blocks after encoding finishes.
The encoder stores only copies of the pointers in the metadata array; the metadata blocks themselves must survive at least until after FLAC__stream_encoder_finish() returns. Do not free the blocks until then. The STREAMINFO block is always written and no STREAMINFO block may occur in the supplied array. By default the encoder does not create a SEEKTABLE. If one is supplied in the metadata array, but the client has specified that it does not support seeking, then the SEEKTABLE will be written verbatim. However by itself this is not very useful as the client will not know the stream offsets for the seekpoints ahead of time. In order to get a proper seektable the client must support seeking. See next note. SEEKTABLE blocks are handled specially. Since you will not know the values for the seek point stream offsets, you should pass in a SEEKTABLE 'template', that is, a SEEKTABLE object with the required sample numbers (or placeholder points), with 0 for the frame_samples and stream_offset fields for each point. If the client has specified that it supports seeking by providing a seek callback to FLAC__stream_encoder_init_stream() or both seek AND read callback to FLAC__stream_encoder_init_ogg_stream() (or by using FLAC__stream_encoder_init*_file() or FLAC__stream_encoder_init*_FILE()), then while it is encoding the encoder will fill the stream offsets in for you and when encoding is finished, it will seek back and write the real values into the SEEKTABLE block in the stream. There are helper routines for manipulating seektable template blocks; see metadata.h: FLAC__metadata_object_seektable_template_*(). If the client does not support seeking, the SEEKTABLE will have inaccurate offsets which will slow down or remove the ability to seek in the FLAC stream. The encoder instance will modify the first SEEKTABLE block as it transforms the template to a valid seektable while encoding, but it is still up to the caller to free all metadata blocks after encoding. A VORBIS_COMMENT block may be supplied. The vendor string in it will be ignored. libFLAC will use it's own vendor string. libFLAC will not modify the passed-in VORBIS_COMMENT's vendor string, it will simply write it's own into the stream. If no VORBIS_COMMENT block is present in the metadata array, libFLAC will write an empty one, containing only the vendor string. The Ogg FLAC mapping requires that the VORBIS_COMMENT block be the second metadata block of the stream. The encoder already supplies the STREAMINFO block automatically. If metadata does not contain a VORBIS_COMMENT block, the encoder will supply that too. Otherwise, if metadata does contain a VORBIS_COMMENT block and it is not the first, the init function will reorder metadata by moving the VORBIS_COMMENT block to the front; the relative ordering of the other blocks will remain as they were. The Ogg FLAC mapping limits the number of metadata blocks per stream to 65535. If num_blocks exceeds this the function will return false.
Name Type Description encoder
number the ID of the encoder instance metadataBuffersPointer
Flac.PointerInfo num_blocks
number Returns:
Type Description boolean false
if the encoder is already initialized, elsetrue
.false
if the encoder is already initialized, or if num_blocks > 65535 if encoding to Ogg FLAC, else true. -
FLAC__stream_encoder_set_verify(encoder, is_verify){boolean}
-
Set the "verify" flag. If true, the encoder will verify it's own encoded output by feeding it through an internal decoder and comparing the original signal against the decoded signal. If a mismatch occurs, the process call will return false. Note that this will slow the encoding process by the extra time required for decoding and comparison.
NOTE: only use on un-initilized encoder instances!
Name Type Description encoder
number the ID of the encoder instance is_verify
boolean enable/disable checksum verification during encoding Returns:
Type Description boolean false
if the encoder is already initialized, elsetrue
-
getOptions(p_coder){CodingOptions}
-
Get coding options for the encoder / decoder instance: returns FALSY when not set.
Name Type Description p_coder
Number the encoder/decoder pointer (ID) Returns:
Type Description CodingOptions the coding options -
init_decoder_ogg_stream(decoder, read_callback_fn, write_callback_fn, error_callback_fn, metadata_callback_fn, ogg_serial_number){Flac.FLAC__StreamDecoderInitStatus}
-
Initialize the decoder for writing to an OGG container.
Name Type Description decoder
number the ID of the decoder instance that has not been initialized (or has been reset) read_callback_fn
Flac~decoder_read_callback_fn the callback for reading the Flac data that should get decoded: read_callback_fn(numberOfBytes: Number) : {buffer: ArrayBuffer, readDataLength: number, error: boolean}
write_callback_fn
Flac~decoder_write_callback_fn the callback for writing the decoded data: write_callback_fn(data: Uint8Array[], frameInfo: Metadata)
error_callback_fn
Flac~decoder_error_callback_fn the error callback: error_callback_fn(errorCode: Number, errorDescription: String)
metadata_callback_fn
Flac~metadata_callback_fn optional OPTIONAL callback for receiving the metadata of FLAC data that will be decoded: metadata_callback_fn(metadata: StreamMetadata)
ogg_serial_number
number optional OPTIONAL the serial number for the stream in the OGG container that should be decoded.
The default behavior is to use the serial number of the first Ogg page. Setting a serial number here will explicitly specify which stream is to be decoded.Returns:
Type Description Flac.FLAC__StreamDecoderInitStatus the decoder status( 0
forFLAC__STREAM_DECODER_INIT_STATUS_OK
) -
init_decoder_stream(decoder, read_callback_fn, write_callback_fn, error_callback_fn, metadata_callback_fn, ogg_serial_number){Flac.FLAC__StreamDecoderInitStatus}
-
Initialize the decoder.
Name Type Description decoder
number the ID of the decoder instance that has not been initialized (or has been reset) read_callback_fn
Flac~decoder_read_callback_fn the callback for reading the Flac data that should get decoded: read_callback_fn(numberOfBytes: Number) : {buffer: ArrayBuffer, readDataLength: number, error: boolean}
write_callback_fn
Flac~decoder_write_callback_fn the callback for writing the decoded data: write_callback_fn(data: Uint8Array[], frameInfo: Metadata)
error_callback_fn
Flac~decoder_error_callback_fn the error callback: error_callback_fn(errorCode: Number, errorDescription: String)
metadata_callback_fn
Flac~metadata_callback_fn optional OPTIONAL callback for receiving the metadata of FLAC data that will be decoded: metadata_callback_fn(metadata: StreamMetadata)
ogg_serial_number
number | boolean optional OPTIONAL if number or true
is specified, the decoder will be initilized to read from an OGG container, seeFlac.init_decoder_ogg_stream
:
true
will use the default serial number, if specified as number the corresponding stream with the serial number from the ogg container will be used.Returns:
Type Description Flac.FLAC__StreamDecoderInitStatus the decoder status( 0
forFLAC__STREAM_DECODER_INIT_STATUS_OK
) -
init_encoder_ogg_stream(encoder, write_callback_fn, metadata_callback_fn, ogg_serial_number){Flac.FLAC__StreamEncoderInitStatus}
-
Initialize the encoder for writing to an OGG container.
Name Type Description encoder
number the ID of the encoder instance that has not been initialized (or has been reset) write_callback_fn
Flac~encoder_write_callback_fn the callback for writing the encoded Flac data: write_callback_fn(data: Uint8Array, numberOfBytes: Number, samples: Number, currentFrame: Number)
metadata_callback_fn
Flac~metadata_callback_fn optional OPTIONAL the callback for the metadata of the encoded Flac data: metadata_callback_fn(metadata: StreamMetadata)
ogg_serial_number
number optional OPTIONAL the serial number for the stream in the OGG container DEFAULT: 1
Returns:
Type Description Flac.FLAC__StreamEncoderInitStatus the encoder status ( 0
forFLAC__STREAM_ENCODER_INIT_STATUS_OK
) -
init_encoder_stream(encoder, write_callback_fn, metadata_callback_fn, ogg_serial_number){Flac.FLAC__StreamEncoderInitStatus}
-
Initialize the encoder.
Name Type Description encoder
number the ID of the encoder instance that has not been initialized (or has been reset) write_callback_fn
Flac~encoder_write_callback_fn the callback for writing the encoded Flac data: write_callback_fn(data: Uint8Array, numberOfBytes: Number, samples: Number, currentFrame: Number)
metadata_callback_fn
Flac~metadata_callback_fn optional OPTIONAL the callback for the metadata of the encoded Flac data: metadata_callback_fn(metadata: StreamMetadata)
ogg_serial_number
number | boolean optional OPTIONAL if number or true
is specified, the encoder will be initialized to write to an OGG container, seeFlac.init_encoder_ogg_stream
:true
will set a default serial number (1
), if specified as number, it will be used as the stream's serial number within the ogg container.Returns:
Type Description Flac.FLAC__StreamEncoderInitStatus the encoder status ( 0
forFLAC__STREAM_ENCODER_INIT_STATUS_OK
) -
init_libflac_decoder()
-
- Deprecated
- use
create_libflac_decoder
instead
- use
-
init_libflac_encoder()
-
- Deprecated
- use
create_libflac_encoder
instead
- use
-
isReady(){boolean}
-
Returns if Flac has been initialized / is ready to be used.
Returns:
Type Description boolean true
, if Flac is ready to be used -
off(eventName, listener)
-
Remove an event listener for module-events.
Name Type Description eventName
string listener
function - See:
-
on(eventName, listener)
-
Add an event listener for module-events. Supported events:
-
"ready"
→Flac.event:ReadyEvent
: emitted when module is ready for usage (i.e.isReady
is true)
NOTE listener will get immediately triggered if module is already"ready"
-
"created"
→Flac.event:CreatedEvent
: emitted when an encoder or decoder instance was created
-
"destroyed"
→Flac.event:DestroyedEvent
: emitted when an encoder or decoder instance was destroyed
Name Type Description eventName
string listener
function Example
Flac.on('ready', function(event){ //gets executed when library is ready, or becomes ready... });
-
-
onready(event)
-
Hook for handler function that gets called, when asynchronous initialization has finished. NOTE that if the execution environment does not support
Object#defineProperty
, then this function is not called, afterisReady
istrue
. In this case,isReady
should be checked, before settingonready
and if it istrue
, handler should be executed immediately instead of settingonready
.Name Type Description event
Flac.event:ReadyEvent the ready-event object Example
// [1] if Object.defineProperty() IS supported: Flac.onready = function(event){ //gets executed when library becomes ready, or immediately, if it already is ready... doSomethingWithFlac(); }; // [2] if Object.defineProperty() is NOT supported: // do check Flac.isReady(), and only set handler, if not ready yet // (otherwise immediately excute handler code) if(!Flac.isReady()){ Flac.onready = function(event){ //gets executed when library becomes ready... doSomethingWithFlac(); }; } else { // Flac is already ready: immediately start processing doSomethingWithFlac(); }
-
setOptions(p_coder, options)
-
Set coding options for an encoder / decoder instance (will / should be deleted, when finish()/delete())
Name Type Description p_coder
Number the encoder/decoder pointer (ID) options
CodingOptions the coding options
Type Definitions
-
decoder_error_callback_fn(errorCode, errorDescription)
-
The callback for reporting decoding errors.
Name Type Description errorCode
number the error code errorDescription
Flac.FLAC__StreamDecoderErrorStatus the string representation / description of the error -
decoder_read_callback_fn(numberOfBytes){Flac.ReadResult|Flac.CompletedReadResult}
-
The callback for reading the FLAC data that will be decoded.
Name Type Description numberOfBytes
number the maximal number of bytes that the read callback can return Returns:
Type Description Flac.ReadResult | Flac.CompletedReadResult the result of the reading action/request -
decoder_write_callback_fn(data, frameInfo)
-
The callback for writing the decoded FLAC data.
Name Type Description data
Array.<Uint8Array> array of the channels with the decoded PCM data as Uint8Array
sframeInfo
Flac.BlockMetadata the metadata information for the decoded data -
encoder_write_callback_fn(data, numberOfBytes, samples, currentFrame){void|false}
-
The callback for writing the encoded FLAC data.
Name Type Description data
Uint8Array the encoded FLAC data numberOfBytes
number the number of bytes in data samples
number the number of samples encoded in data currentFrame
number the number of the (current) encoded frame in data Returns:
Type Description void | false returning false
indicates that an unrecoverable error occurred and decoding should be aborted -
metadata_callback_fn(metadata, metadataBlock)
-
The callback for the metadata of the encoded/decoded Flac data. By default, only the STREAMINFO metadata is enabled. For other metadata types
Flac.FLAC__MetadataType
they need to be enabled, see e.g.Flac#FLAC__stream_decoder_set_metadata_respond
Name Type Description metadata
Flac.StreamMetadata | undefined the FLAC meta data, NOTE only STREAMINFO is returned in first argument, for other types use 2nd argument's metadataBlock.data
metadataBlock
Flac.MetadataBlock the detailed meta data block
Interface Definitions
-
Flac.ApplicationMetadata
-
FLAC application metadata block NOTE the application meta data type is not really supported, i.e. the (binary) data is only a pointer to the memory heap.
- See:
-
- Flac.FLAC__MetadataType#FLAC__METADATA_TYPE_APPLICATION
- application block format specification
Properties:
Name Type Description id
number the application ID data
number (pointer) -
Flac.BlockMetadata
-
FLAC block meta data
- See:
Properties:
Name Type Attributes Description blocksize
number the block size (bytes) number
number the number of the decoded samples or frames numberType
string the type to which number
refers to: either"frames"
or"samples"
channelAssignment
Flac.FLAC__ChannelAssignment the channel assignment crc
string the MD5 checksum for the decoded data, if validation is enabled subframes
Array.<Flac.SubFrameMetadata> <optional>
the metadata of the subframes. The array length corresponds to the number of channels. NOTE will only be included if CodingOptions.analyseSubframes
is enabled for the decoder.sampleRate
number inherited the sample rate (Hz) channels
number inherited the number of channels bitsPerSample
number inherited bits per sample -
Flac.CoderChangedEventData
-
Life cycle event data for signaling life cycle changes of encoder or decoder instances
- See:
Properties:
Name Type Attributes Description id
number the ID for the encoder or decoder instance type
"encoder" | "decoder" signifies whether the event is for an encoder or decoder instance data
any <optional>
specific data for the life cycle change -
Flac.CodingOptions
-
Additional options for encoding or decoding
- See:
Properties:
Name Type Attributes Description analyseSubframes
boolean <optional>
for decoding: include subframes metadata in write-callback metadata, DEFAULT: false analyseResiduals
boolean <optional>
for decoding: include residual data in subframes metadata in write-callback metadata, NOTE #analyseSubframes
muste also be enabled, DEFAULT: falseenableRawMetadata
boolean <optional>
DEBUG option for decoding: enable receiving raw metadata for unknown metadata types in second argument in the metadata-callback, DEFAULT: false -
Flac.CompletedReadResult
-
Result / return value for
Flac~decoder_read_callback_fn
callback function for signifying that there is no more data to readProperties:
Name Type Attributes Description buffer
TypedArray | undefined a TypedArray (e.g. Uint8Array) with the read data (will be ignored in case readDataLength is 0
)readDataLength
0 the number of read data bytes: The number of 0
(zero) indicates that the end-of-stream is reached.error
boolean <optional>
inheritedOPTIONAL value of true
indicates that an error occured (decoding will be aborted) -
Flac.CompressionLevel
-
Set the compression level The compression level is roughly proportional to the amount of effort the encoder expends to compress the file. A higher level usually means more computation but higher compression. The default level is suitable for most applications. Currently the levels range from 0 (fastest, least compression) to 8 (slowest, most compression). A value larger than 8 will be treated as 8. This function automatically calls the following other set functions with appropriate values, so the client does not need to unless it specifically wants to override them:
FLAC__stream_encoder_set_do_mid_side_stereo() FLAC__stream_encoder_set_loose_mid_side_stereo() FLAC__stream_encoder_set_apodization() FLAC__stream_encoder_set_max_lpc_order() FLAC__stream_encoder_set_qlp_coeff_precision() FLAC__stream_encoder_set_do_qlp_coeff_prec_search() FLAC__stream_encoder_set_do_escape_coding() FLAC__stream_encoder_set_do_exhaustive_model_search() FLAC__stream_encoder_set_min_residual_partition_order() FLAC__stream_encoder_set_max_residual_partition_order() FLAC__stream_encoder_set_rice_parameter_search_dist()
The actual values set for each level are: | level | do mid-side stereo | loose mid-side stereo | apodization | max lpc order | qlp coeff precision | qlp coeff prec search | escape coding | exhaustive model search | min residual partition order | max residual partition order | rice parameter search dist | |--------|---------------------|------------------------|------------------------------------------------|----------------|----------------------|------------------------|----------------|--------------------------|-------------------------------|-------------------------------|------------------------------| | 0 | false | false | tukey(0.5) | 0 | 0 | false | false | false | 0 | 3 | 0 | | 1 | true | true | tukey(0.5) | 0 | 0 | false | false | false | 0 | 3 | 0 | | 2 | true | false | tukey(0.5) | 0 | 0 | false | false | false | 0 | 3 | 0 | | 3 | false | false | tukey(0.5) | 6 | 0 | false | false | false | 0 | 4 | 0 | | 4 | true | true | tukey(0.5) | 8 | 0 | false | false | false | 0 | 4 | 0 | | 5 | true | false | tukey(0.5) | 8 | 0 | false | false | false | 0 | 5 | 0 | | 6 | true | false | tukey(0.5);partial_tukey(2) | 8 | 0 | false | false | false | 0 | 6 | 0 | | 7 | true | false | tukey(0.5);partial_tukey(2) | 12 | 0 | false | false | false | 0 | 6 | 0 | | 8 | true | false | tukey(0.5);partial_tukey(2);punchout_tukey(3) | 12 | 0 | false | false | false | 0 | 6 | 0 |Properties:
Name Type Description 0
"FLAC__COMPRESSION_LEVEL_0" compression level 0 1
"FLAC__COMPRESSION_LEVEL_1" compression level 1 2
"FLAC__COMPRESSION_LEVEL_2" compression level 2 3
"FLAC__COMPRESSION_LEVEL_3" compression level 3 4
"FLAC__COMPRESSION_LEVEL_4" compression level 4 5
"FLAC__COMPRESSION_LEVEL_5" compression level 5 6
"FLAC__COMPRESSION_LEVEL_6" compression level 6 7
"FLAC__COMPRESSION_LEVEL_7" compression level 7 8
"FLAC__COMPRESSION_LEVEL_8" compression level 8 -
Flac.CueSheetMetadata
-
FLAC cue sheet metadata block
- See:
-
- Flac.FLAC__MetadataType#FLAC__METADATA_TYPE_CUESHEET
Properties:
Name Type Description media_catalog_number
string Media catalog number, in ASCII printable characters 0x20-0x7e. In general, the media catalog number may be 0 to 128 bytes long. lead_in
number The number of lead-in samples. is_cd
boolean true if CUESHEET corresponds to a Compact Disc, else false. num_tracks
number The number of tracks. tracks
Array.<Flac.CueSheetTrack> the tracks -
Flac.CueSheetTracIndex
-
FLAC track index data for cue sheet metadata
- See:
Properties:
Name Type Description offset
number Offset in samples, relative to the track offset, of the index point. number
number The index point number. -
Flac.CueSheetTrack
-
FLAC cue sheet track data
- See:
Properties:
Name Type Description offset
number Track offset in samples, relative to the beginning of the FLAC audio stream. number
number The track number. isrc
string Track ISRC. This is a 12-digit alphanumeric code. type
"AUDIO" | "NON_AUDIO" The track type: audio or non-audio. pre_emphasis
boolean The pre-emphasis flag num_indices
number The number of track index points. indices
Flac.CueSheetTracIndex The track index points. -
Flac.FixedSubFrameData
-
metadata for FIXED subframe type
Properties:
Name Type Attributes Description order
number The polynomial order. warmup
Array.<number> Warmup samples to prime the predictor, length == order. partition
Flac.SubFramePartition The residual coding method. residual
Array.<number> <optional>
The residual signal, length == (blocksize minus order) samples. NOTE will only be included if CodingOptions.analyseSubframes
is enabled for the decoder. -
Flac.FLAC__ChannelAssignment
-
The channel assignment for the (decoded) frame.
Properties:
Name Type Description 0
"FLAC__CHANNEL_ASSIGNMENT_INDEPENDENT" independent channels 1
"FLAC__CHANNEL_ASSIGNMENT_LEFT_SIDE" left+side stereo 2
"FLAC__CHANNEL_ASSIGNMENT_RIGHT_SIDE" right+side stereo 3
"FLAC__CHANNEL_ASSIGNMENT_MID_SIDE" mid+side stereo -
Flac.FLAC__EntropyCodingMethodType
-
entropy coding methods
Properties:
Name Type Description 0
"FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE" Residual is coded by partitioning into contexts, each with it's own 4-bit Rice parameter. 1
"FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2" Residual is coded by partitioning into contexts, each with it's own 5-bit Rice parameter. -
Flac.FLAC__MetadataType
-
An enumeration of the available metadata block types.
- See:
Properties:
Name Type Description 0
"FLAC__METADATA_TYPE_STREAMINFO" STREAMINFO block 1
"FLAC__METADATA_TYPE_PADDING" PADDING block 2
"FLAC__METADATA_TYPE_APPLICATION" APPLICATION block 3
"FLAC__METADATA_TYPE_SEEKTABLE" SEEKTABLE block 4
"FLAC__METADATA_TYPE_VORBIS_COMMENT" VORBISCOMMENT block (a.k.a. FLAC tags) 5
"FLAC__METADATA_TYPE_CUESHEET" CUESHEET block 6
"FLAC__METADATA_TYPE_PICTURE" PICTURE block 7
"FLAC__METADATA_TYPE_UNDEFINED" marker to denote beginning of undefined type range; this number will increase as new metadata types are added 126
"FLAC__MAX_METADATA_TYPE" No type will ever be greater than this. There is not enough room in the protocol block. -
Flac.FLAC__StreamDecoderErrorStatus
-
Decoding error codes.
If the error code is not known, valueFLAC__STREAM_DECODER_ERROR__UNKNOWN__
is used.Properties:
Name Type Description 0
"FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC" An error in the stream caused the decoder to lose synchronization. 1
"FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER" The decoder encountered a corrupted frame header. 2
"FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH" The frame's data did not match the CRC in the footer. 3
"FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM" The decoder encountered reserved fields in use in the stream. -
Flac.FLAC__StreamDecoderInitStatus
-
Properties:
Name Type Description 0
"FLAC__STREAM_DECODER_INIT_STATUS_OK" Initialization was successful. 1
"FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER" The library was not compiled with support for the given container format. 2
"FLAC__STREAM_DECODER_INIT_STATUS_INVALID_CALLBACKS" A required callback was not supplied. 3
"FLAC__STREAM_DECODER_INIT_STATUS_MEMORY_ALLOCATION_ERROR" An error occurred allocating memory. 4
"FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE" fopen() failed in FLAC__stream_decoder_init_file() or FLAC__stream_decoder_init_ogg_file(). 5
"FLAC__STREAM_DECODER_INIT_STATUS_ALREADY_INITIALIZED" FLAC__stream_decoder_init_*() was called when the decoder was already initialized, usually because FLAC__stream_decoder_finish() was not called. -
Flac.FLAC__StreamDecoderState
-
Decoder state code.
Properties:
Name Type Description 0
"FLAC__STREAM_DECODER_SEARCH_FOR_METADATA" The decoder is ready to search for metadata 1
"FLAC__STREAM_DECODER_READ_METADATA" The decoder is ready to or is in the process of reading metadata 2
"FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC" The decoder is ready to or is in the process of searching for the frame sync code 3
"FLAC__STREAM_DECODER_READ_FRAME" The decoder is ready to or is in the process of reading a frame 4
"FLAC__STREAM_DECODER_END_OF_STREAM" The decoder has reached the end of the stream 5
"FLAC__STREAM_DECODER_OGG_ERROR" An error occurred in the underlying Ogg layer 6
"FLAC__STREAM_DECODER_SEEK_ERROR" An error occurred while seeking. The decoder must be flushed with FLAC__stream_decoder_flush() or reset with FLAC__stream_decoder_reset() before decoding can continue 7
"FLAC__STREAM_DECODER_ABORTED" The decoder was aborted by the read callback 8
"FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR" An error occurred allocating memory. The decoder is in an invalid state and can no longer be used 9
"FLAC__STREAM_DECODER_UNINITIALIZED" The decoder is in the uninitialized state; one of the FLAC__stream_decoder_init_*() functions must be called before samples can be processed. -
Flac.FLAC__StreamEncoderInitStatus
-
Properties:
Name Type Description 0
"FLAC__STREAM_ENCODER_INIT_STATUS_OK" Initialization was successful. 1
"FLAC__STREAM_ENCODER_INIT_STATUS_ENCODER_ERROR" General failure to set up encoder; call FLAC__stream_encoder_get_state() for cause. 2
"FLAC__STREAM_ENCODER_INIT_STATUS_UNSUPPORTED_CONTAINER" The library was not compiled with support for the given container format. 3
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_CALLBACKS" A required callback was not supplied. 4
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_NUMBER_OF_CHANNELS" The encoder has an invalid setting for number of channels. 5
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BITS_PER_SAMPLE" The encoder has an invalid setting for bits-per-sample. FLAC supports 4-32 bps but the reference encoder currently supports only up to 24 bps. 6
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_SAMPLE_RATE" The encoder has an invalid setting for the input sample rate. 7
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_BLOCK_SIZE" The encoder has an invalid setting for the block size. 8
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_MAX_LPC_ORDER" The encoder has an invalid setting for the maximum LPC order. 9
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_QLP_COEFF_PRECISION" The encoder has an invalid setting for the precision of the quantized linear predictor coefficients. 10
"FLAC__STREAM_ENCODER_INIT_STATUS_BLOCK_SIZE_TOO_SMALL_FOR_LPC_ORDER" The specified block size is less than the maximum LPC order. 11
"FLAC__STREAM_ENCODER_INIT_STATUS_NOT_STREAMABLE" The encoder is bound to the Subset but other settings violate it. 12
"FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA" The metadata input to the encoder is invalid, in one of the following ways: FLAC__stream_encoder_set_metadata() was called with a null pointer but a block count > 0 One of the metadata blocks contains an undefined type It contains an illegal CUESHEET as checked by FLAC__format_cuesheet_is_legal() It contains an illegal SEEKTABLE as checked by FLAC__format_seektable_is_legal() It contains more than one SEEKTABLE block or more than one VORBIS_COMMENT block 13
"FLAC__STREAM_ENCODER_INIT_STATUS_ALREADY_INITIALIZED" FLAC__stream_encoder_init_*() was called when the encoder was already initialized, usually because FLAC__stream_encoder_finish() was not called. -
Flac.FLAC__StreamEncoderState
-
Encoder state code.
Properties:
Name Type Description 0
"FLAC__STREAM_ENCODER_OK" The encoder is in the normal OK state and samples can be processed. 1
"FLAC__STREAM_ENCODER_UNINITIALIZED" The encoder is in the uninitialized state; one of the FLAC__stream_encoder_init_*() functions must be called before samples can be processed. 2
"FLAC__STREAM_ENCODER_OGG_ERROR" An error occurred in the underlying Ogg layer. 3
"FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR" An error occurred in the underlying verify stream decoder; check FLAC__stream_encoder_get_verify_decoder_state(). 4
"FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA" The verify decoder detected a mismatch between the original audio signal and the decoded audio signal. 5
"FLAC__STREAM_ENCODER_CLIENT_ERROR" One of the callbacks returned a fatal error. 6
"FLAC__STREAM_ENCODER_IO_ERROR" An I/O error occurred while opening/reading/writing a file. Check errno. 7
"FLAC__STREAM_ENCODER_FRAMING_ERROR" An error occurred while writing the stream; usually, the write_callback returned an error. 8
"FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR" Memory allocation failed. -
Flac.FLAC__StreamMetadata_Picture_Type
-
An enumeration of the PICTURE types (see FLAC__StreamMetadataPicture and id3 v2.4 APIC tag).
- See:
Properties:
Name Type Description 0
"FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER" Other 1
"FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON_STANDARD" 32x32 pixels 'file icon' (PNG only) 2
"FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON" Other file icon 3
"FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER" Cover (front) 4
"FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER" Cover (back) 5
"FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE" Leaflet page 6
"FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA" Media (e.g. label side of CD) 7
"FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST" Lead artist/lead performer/soloist 8
"FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST" Artist/performer 9
"FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR" Conductor 10
"FLAC__STREAM_METADATA_PICTURE_TYPE_BAND" Band/Orchestra 11
"FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER" Composer 12
"FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST" Lyricist/text writer 13
"FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION" Recording Location 14
"FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING" During recording 15
"FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE" During performance 16
"FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE" Movie/video screen capture 17
"FLAC__STREAM_METADATA_PICTURE_TYPE_FISH" A bright coloured fish 18
"FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION" Illustration 19
"FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE" Band/artist logotype 20
"FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE" Publisher/Studio logotype -
Flac.FLAC__SubframeType
-
The types for FLAC subframes
Properties:
Name Type Description 0
"FLAC__SUBFRAME_TYPE_CONSTANT" constant signal 1
"FLAC__SUBFRAME_TYPE_VERBATIM" uncompressed signal 2
"FLAC__SUBFRAME_TYPE_FIXED" fixed polynomial prediction 3
"FLAC__SUBFRAME_TYPE_LPC" linear prediction -
Flac.LPCSubFrameData
-
metadata for LPC subframe type
Properties:
Name Type Attributes Description order
number The FIR order. qlp_coeff
Array.<number> FIR filter coefficients. qlp_coeff_precision
number Quantized FIR filter coefficient precision in bits. quantization_level
number The qlp coeff shift needed. warmup
Array.<number> inherited Warmup samples to prime the predictor, length == order. partition
Flac.SubFramePartition inherited The residual coding method. residual
Array.<number> <optional>
inheritedThe residual signal, length == (blocksize minus order) samples. NOTE will only be included if CodingOptions.analyseSubframes
is enabled for the decoder. -
Flac.Metadata
-
FLAC meta data
Properties:
Name Type Description sampleRate
number the sample rate (Hz) channels
number the number of channels bitsPerSample
number bits per sample -
Flac.MetadataBlock
-
FLAC raw metadata
Properties:
Name Type Attributes Description type
Flac.FLAC__MetadataType the type of the metadata isLast
boolean if it is the last block of metadata length
number the length of the metadata block (bytes) data
Flac.StreamMetadata | Flac.PaddingMetadata | Flac.ApplicationMetadata | Flac.SeekTableMetadata | Flac.CueSheetMetadata | Flac.PictureMetadata <optional>
the metadata (omitted for unknown metadata types) raw
Uint8Array <optional>
raw metadata (for debugging: enable via Flac#setOptions
) -
Flac.PaddingMetadata
-
FLAC padding metadata block
- See:
-
- Flac.FLAC__MetadataType#FLAC__METADATA_TYPE_PADDING
Properties:
Name Type Description dummy
number Conceptually this is an empty struct since we don't store the padding bytes. Empty structs are not allowed by some C compilers, hence the dummy. -
Flac.PictureMetadata
-
FLAC picture metadata block
Properties:
Name Type Description type
Flac.FLAC__StreamMetadata_Picture_Type The kind of picture stored. mime_type
string Picture data's MIME type, in ASCII printable characters 0x20-0x7e, NUL terminated. For best compatibility with players, use picture data of MIME type image/jpeg or image/png. A MIME type of '–>' is also allowed, in which case the picture data should be a complete URL. description
string Picture's description. width
number Picture's width in pixels. height
number Picture's height in pixels. depth
number Picture's color depth in bits-per-pixel. colors
number For indexed palettes (like GIF), picture's number of colors (the number of palette entries), or 0 for non-indexed (i.e. 2^depth). data_length
number Length of binary picture data in bytes. data
Uint8Array Binary picture data. -
Flac.PointerInfo
-
Helper object for allocating an array of buffers on the (memory) heap.
- See:
Properties:
Name Type Description pointerPointer
number pointer to the array of (pointer) buffers dataPointer
Array.<number> array of pointers to the allocated data arrays (i.e. buffers) -
Flac.ReadResult
-
Result / return value for
Flac~decoder_read_callback_fn
callback functionProperties:
Name Type Attributes Description buffer
TypedArray a TypedArray (e.g. Uint8Array) with the read data readDataLength
number the number of read data bytes. A number of 0
(zero) indicates that the end-of-stream is reached.error
boolean <optional>
OPTIONAL value of true
indicates that an error occured (decoding will be aborted) -
Flac.SeekPoint
-
FLAC seek point data
- See:
Properties:
Name Type Description sample_number
number The sample number of the target frame. NOTE -1
for a placeholder point.stream_offset
number The offset, in bytes, of the target frame with respect to beginning of the first frame. frame_samples
number The number of samples in the target frame. -
Flac.SeekTableMetadata
-
FLAC seek table metadata block
From the format specification: The seek points must be sorted by ascending sample number. Each seek point's sample number must be the first sample of the target frame. Each seek point's sample number must be unique within the table Existence of a SEEKTABLE block implies a correct setting of total_samples in the stream_info block. Behavior is undefined when more than one SEEKTABLE block is present in a stream.
- See:
-
- Flac.FLAC__MetadataType#FLAC__METADATA_TYPE_SEEKTABLE
Properties:
Name Type Description num_points
number the number of seek points points
Array.<Flac.SeekPoint> the seek points -
Flac.StreamMetadata
-
FLAC stream meta data
Properties:
Name Type Attributes Description min_blocksize
number the minimal block size (bytes) max_blocksize
number the maximal block size (bytes) min_framesize
number the minimal frame size (bytes) max_framesize
number the maximal frame size (bytes) total_samples
number the total number of (encoded/decoded) samples md5sum
string the MD5 checksum for the decoded data (if validation is active) sampleRate
number inherited the sample rate (Hz) channels
number inherited the number of channels bitsPerSample
number inherited bits per sample -
Flac.SubFrameMetadata
-
FLAC subframe metadata
Properties:
Name Type Description type
Flac.FLAC__SubframeType the type of the subframe data
number | Flac.FixedSubFrameData | Flac.LPCSubFrameData the type specific metadata for subframe wastedBits
number the wasted bits-per-sample -
Flac.SubFramePartition
-
metadata for FIXED or LPC subframe partitions
Properties:
Name Type Description type
Flac.FLAC__EntropyCodingMethodType the entropy coding method data
Flac.SubFramePartitionData metadata for a Rice partitioned residual -
Flac.SubFramePartitionContent
-
metadata for FIXED or LPC subframe partition data content
Properties:
Name Type Description parameters
Array.<number> The Rice parameters for each context. rawBits
Array.<number> Widths for escape-coded partitions. Will be non-zero for escaped partitions and zero for unescaped partitions. capacityByOrder
number The capacity of the parameters and raw_bits arrays specified as an order, i.e. the number of array elements allocated is 2 ^ capacity_by_order. -
Flac.SubFramePartitionData
-
metadata for FIXED or LPC subframe partition data
Properties:
Name Type Description order
number The partition order, i.e. # of contexts = 2 ^ order. contents
Flac.SubFramePartitionContent The context's Rice parameters and/or raw bits. -
Flac.VorbisCommentMetadata
-
FLAC vorbis comment metadata block
- See:
-
- Flac.FLAC__MetadataType#FLAC__METADATA_TYPE_VORBIS_COMMENT
Properties:
Name Type Description vendor_string
string the vendor string num_comments
number the number of comments comments
Array.<string> the comments
Events
-
Flac.event:CreatedEvent
-
Created event: is fired when an encoder or decoder was created.
Type:
- object
- See:
Properties:
Name Type Description type
"created" the type of the event "created"
target
Flac.CoderChangedEventData the information for the created encoder or decoder -
Flac.event:DestroyedEvent
-
Destroyed event: is fired when an encoder or decoder was destroyed.
Type:
- object
- See:
Properties:
Name Type Description type
"destroyed" the type of the event "destroyed"
target
Flac.CoderChangedEventData the information for the destroyed encoder or decoder -
Flac.event:ReadyEvent
-
Ready event: is fired when the library has been initialized and is ready to be used (e.g. asynchronous loading of binary / WASM modules has been completed). Before this event is fired, use of functions related to encoding and decoding may cause errors.
Type:
- object


Gateway
BOT
06-Apr-19 08:57 PM
[dscrd-hush] <dukeleto> Hush will remain (N,K) = (200,9) like ZEC/KMD/ZEN
[dscrd-hush] <Takoy_Nahal> If I am not mistaken, 144.5 algorithm which produces ZER, which is not subject to ASIC mining
[dscrd-hush] <ComputerGenie - ChickenPool> not subject to ASIC mining
as defined by the idea that only 4 ASICs exist and no one will make one with variables
[dscrd-hush] <Takoy_Nahal> ASIC is not able to do anything except how to mine in the indicated algorithm))
[dscrd-hush] <Takoy_Nahal> @duke Is the change time for BTCH close?
[dscrd-hush] <ComputerGenie - ChickenPool> that's true; however, changing the k&n values doesn't actually change the algo mining requirements of the ASIC
it does, in some cases, require more RAM than most onchip boards have and would require a slight modification to cgminer
(edited)
[dscrd-hush] <ComputerGenie - ChickenPool> the only thing that "saves" those chains from ASICs is that manufactures can't be assed to play 'hide and go find' for specific coins and RAM increases the retail price
[dscrd-hush] <Takoy_Nahal> It seemed to me 144.5 more friendly for the GPU
[dscrd-hush] <ComputerGenie - ChickenPool> more friendly for the GPU
more friendly for the modern GPU; iirc, that's the one that pretty much killed all GPUs older than ~3-4 years
[dscrd-hush] <ComputerGenie - ChickenPool> older GPUs have the same or less RAM than ASICs, so if you hit a set of values that dumps ASIC due to RAM, then you also dump all those GPUs
[dscrd-hush] <Takoy_Nahal> By the way, there is a very effective response from ASIC to manufacturers in the form of a large number of algorithms, each coin creates its own, which makes it very difficult to monopolize the market with ASICs
[dscrd-hush] <ComputerGenie - ChickenPool> the flip of that is ROI; who's going to spend $4k on an ASIC that only has $3k ROI in 2 years because only 1 random coin picked those numbers?


Champions League 100 club: Frank Lampard...
Champions League matchday 4: what to get excited about!...
Santiago Solari in charge at Real Madrid: who is he?...


Spa
Behind this white page Jenkins is getting some spa and massages. This is a planned shutdown. We are planning to get Mr. Jenkins back up until Tuesday (12th Oct) next week.Thanks for your patience!


 Although I may not have superpowers like the rest of these guys, I can show you the power of love. My idea of a perfect date would be exploring Ikea, looking at how we can build a life together. Girl, you're my bullseye, and my arrow never misses.
Get to know your mans better! A relationship can't start if you don't connect! Click below to check them out on social social media~


Your personalised holiday plan from touchdown to take off, built to fit your needs
Hotel and restaurant options, tour guide, private driver and airport pick up
Print or digital itineraries with activities, restaurants and map directions
We are real human beings like you, continously visit new places and revisit the classics, because we want it to be worth it for you
We save your time and take the stress out of your holiday planning
We consider alternative options in case of bad weather conditions


[ all classes ]
[ org.wikipedia.feed.view ]
Coverage Summary for Package: org.wikipedia.feed.view
| Package | Class, % | Method, % | Line, % |
|---|---|---|---|
| org.wikipedia.feed.view | 0% (0/ 44) | 0% (0/ 202) | 0% (0/ 801) |
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| DefaultFeedCardView | 0% (0/ 1) | 0% (0/ 5) | 0% (0/ 6) |
| HorizontalScrollingListCardView | 0% (0/ 2) | 0% (0/ 6) | 0% (0/ 17) |
| ActionFooterView | 0% (0/ 1) | 0% (0/ 10) | 0% (0/ 18) |
| ListCardView | 0% (0/ 1) | 0% (0/ 9) | 0% (0/ 18) |
| FeedAdapter | 0% (0/ 1) | 0% (0/ 10) | 0% (0/ 36) |
| CardHeaderView_ViewBinding | 0% (0/ 2) | 0% (0/ 5) | 0% (0/ 19) |
| CardLargeHeaderView | 0% (0/ 2) | 0% (0/ 15) | 0% (0/ 35) |
| CardLargeHeaderView_ViewBinding | 0% (0/ 1) | 0% (0/ 3) | 0% (0/ 14) |
| ListCardView_ViewBinding | 0% (0/ 2) | 0% (0/ 5) | 0% (0/ 23) |
| HorizontalScrollingListCardItemView_ViewBinding | 0% (0/ 1) | 0% (0/ 3) | 0% (0/ 10) |
| ListCardItemView_ViewBinding | 0% (0/ 3) | 0% (0/ 7) | 0% (0/ 26) |
| HorizontalScrollingListCardItemView | 0% (0/ 1) | 0% (0/ 6) | 0% (0/ 13) |
| ActionFooterView_ViewBinding | 0% (0/ 1) | 0% (0/ 3) | 0% (0/ 14) |
| ListCardRecyclerAdapter | 0% (0/ 1) | 0% (0/ 4) | 0% (0/ 6) |
| FeedItemAnimator | 0% (0/ 11) | 0% (0/ 48) | 0% (0/ 373) |
| FeedView | 0% (0/ 3) | 0% (0/ 11) | 0% (0/ 31) |
| StaticCardView_ViewBinding | 0% (0/ 4) | 0% (0/ 9) | 0% (0/ 41) |
| StaticCardView | 0% (0/ 2) | 0% (0/ 12) | 0% (0/ 27) |
| CardHeaderView | 0% (0/ 2) | 0% (0/ 17) | 0% (0/ 40) |
| ListCardItemView | 0% (0/ 2) | 0% (0/ 14) | 0% (0/ 34) |


CONSPIRACY THEORY A film review by Andrew Hicks Copyright 1997 Andrew Hicks / Fatboy Productions
(1997) *** (out of four)
In a summer of better movies, I'd probably give CONSPIRACY THEORY a lower star rating, but 1997's mid-year crop of blockbusters has been less than noteworthy, and that's made even this muddled Mel Gibson / Julia Roberts thriller seem entertaining overall. Yes, I know it's got a convoluted plot, recycled action scenes and a main character whose characterization shifts abruptly and without explanation, but there are enough moments of genuine suspense that I liked it most of the time. And, come on, it's the only Mel-Julia teamup this side of PRETTY WEAPON... or was it LETHAL WOMAN?
 We hear about 15 or 20 of them during the opening credits and they're all pretty laughable. It's easy to see why no one takes him seriously -- in fact, the first reel is almost satire. Mel is way over the top as a guy who keeps combination locks on his coffee and juice jars and actually believes "the Vietnam War was fought over a bet Howard Hughes lost to Aristotle Onassis."
Mel's character is a complete kook who shows up regularly at Julia's Justice Department office to warn her of all the things he believes will come true. Yeah, she's just pretty enough to have her own personal stalker, as we find out when Mel sits in the street, watching her jog on her apartment treadmill and sing along to the appropriate "Can't Take My Eyes Off You."
With all this workplace harrassment and stalking, it's pretty hard to feel much sympathy for Mel's character until his paranoia pays off and government baddie (sorry, I've been waiting for months to use the phrase "government baddie") Patrick Stewart kidnaps him. Stewart is so evil that one of the gossipy old biddies that sat behind me in the theater said to her friend, "Oh, he's depraved." Another pearl of wisdom from the biddies, this time about Julia: "She's got pretty eyes."
 He wants to know information about the Romulans or something, but Mel bites his nose off and makes a hasty action movie escape -- while still in the wheelchair, no less. He high-tails it back to Julia's office to tell her all about Stewart and his phasers. This begins a lengthy series of captures and escapes, while slowly Mel seems less and less crazy and certain open plot threads are brought together in predictable ways.
Still, CONSPIRACY THEORY has enough sequences that work that I can almost forgive the use and abuse of action flick convention, some of which director Richard Donner pioneered in the LETHAL WEAPON trilogy. And the star power of Mel and Julia, a $32 million salary between them, lifts this above the level of the typical paranoia formula thriller. CONSPIRACY THEORY is entertaining and it even kills my conspiracy theory about Julia Roberts and Patrick Stewart being the same person.
--
Visit the Movie Critic at LARGE homepage at http://www.missouri.edu/~c667778/movies.html
Serving America For Nearly 1/25th of a Century!
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


*Use the "flashlight" to find hidden text click the text, then search for more of the story
*Click on colored dots. Press "p" on keyboard to pause
*Music takes about 10 seconds to load...
*Try clicking
*The 3D images take about 10 seconds to load...
*Talk to me
*Use the arrow keys to control the pencil
*Ask a "yes" or "no" question and then click for an answer
*Click around to try and discover ghost sounds -- try clicking the big light
*Use left arrow key to move the top swimmer, right arrow for middle, and middle arrow for bottom swimmer
*Use the arrow keys to move the red square
*Try clicking and try holding the clicker down
*Click once to start click again to pause


Home
Trees
Indices
Help
CSB v1.2.5.d7fd331
[
frames
] |
no frames
]
[
Identifiers
|
Bugs
|
Deprecations
]
Identifier Index
[
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
_
]
H
H
(in
ChemElements
)
Helix3
(in
SecStructures
)
HIS
(in
StdProteinAlphabet
)
hamiltonian
(in
HamiltonianSysInfo
)
helloworld
(in
csb.apps
)
histogram2D()
(in
csb.statistics
)
HamiltonianSysInfo
(in
csb.statistics.samplers.mc.neqsteppropagator
)
HelloWorldApp
(in
csb.apps.helloworld
)
histogram_nd()
(in
csb.statistics
)
harmonic_mean()
(in
csb.statistics
)
help
(in
ArgHandler
)
hits
(in
SliceContext
)
has_alternative
(in
ClusterRep
)
Hf
(in
ChemElements
)
hmc_iterations
(in
HMCStepRENSSwapParameterInfo
)
has_connected_dimensions()
(in
NOEPeak
)
Hg
(in
ChemElements
)
hmc_traj_length
(in
HMCStepRENSSwapParameterInfo
)
has_connected_dimensions()
(in
NOESpectrum
)
hhfrag
(in
csb.apps
)
HMCPropagation
(in
csb.statistics.samplers.mc.neqsteppropagator
)
has_element()
(in
NOEPeak
)
HHfrag
(in
csb.apps.hhfrag
)
HMCPropagationParam
(in
csb.statistics.samplers.mc.neqsteppropagator
)
has_element()
(in
NOESpectrum
)
HHfrag
(in
FragmentTypes
)
HMCPropagator
(in
csb.statistics.samplers.mc.propagators
)
has_structure
(in
ProfileHMM
)
HHfragApp
(in
csb.apps.hhfrag
)
HMCSampler
(in
csb.statistics.samplers.mc.singlechain
)
has_structure
(in
Residue
)
HHMFileBuilder
(in
csb.bio.io.hhpred
)
HMCStepRENS
(in
csb.statistics.samplers.mc.multichain
)
has_torsion
(in
Chain
)
HHOutputFormatError
(in
csb.bio.io.hhpred
)
HMCStepRENSSwapParameterInfo
(in
csb.statistics.samplers.mc.multichain
)
He
(in
ChemElements
)
HHOutputParser
(in
csb.bio.io.hhpred
)
hmm
(in
csb.bio
)
HEADER
(in
PredictionBuilder
)
hhpred
(in
csb.bio.io
)
hmm
(in
PseudocountBuilder
)
header
(in
AbstractSequence
)
HHpredHit
(in
csb.bio.hmm
)
hmm_subregion()
(in
A3MAlignment
)
header
(in
SequenceAdapter
)
HHpredHitAlignment
(in
csb.bio.hmm
)
HMMArgumentError
(in
csb.bio.hmm
)
header
(in
Chain
)
HHpredHitList
(in
csb.bio.hmm
)
HMMLayer
(in
csb.bio.hmm
)
HEADER
(in
Table
)
HHProfileFormatError
(in
csb.bio.io.hhpred
)
HMMLayersCollection
(in
csb.bio.hmm
)
HEADER_SIZE
(in
DensityMapReader
)
HHProfileParser
(in
csb.bio.io.hhpred
)
Ho
(in
ChemElements
)
HeaderFormatError
(in
csb.bio.io.wwpdb
)
hhsearch
(in
csb.apps
)
Hs
(in
ChemElements
)
HeaderInfo
(in
csb.bio.io.mrc
)
HHsearch
(in
csb.apps.hhsearch
)
hsp
(in
ClansEntry
)
headers
(in
OutputBuilder
)
HHSEARCH_FAILURE
(in
ExitCodes
)
HYDROGENS()
(in
Filters
)
heat
(in
AbstractPropagationResult
)
HHsearchApp
(in
csb.apps.hhsearch
)
hyper_alpha
(in
GammaPrior
)
heat
(in
PropagationResult
)
HHTask
(in
csb.apps.hhsearch
)
hyper_alpha
(in
InvGammaPrior
)
heat
(in
Trajectory
)
hide
(in
ClansSeqgroup
)
hyper_beta
(in
GammaPrior
)
heat
(in
AbstractHeatWorkJacobianLogger
)
hide()
(in
Backend
)
hyper_beta
(in
InvGammaPrior
)
height
(in
Chart
)
hide()
(in
Chart
)
Helix
(in
SecStructures
)
HIS
(in
ProteinAlphabet
)
Home
Trees
Indices
Help
CSB v1.2.5.d7fd331
Generated by Epydoc 3.0.1 on Tue Jul 4 20:19:03 2017
http://epydoc.sourceforge.net


This sample shows how different COM interface map entry macros are used. The text on each button below indicates the type of the map entry used to expose each interface on the outer object. When a button is pressed, the GetName() method on the outer object is called. This method calls QueryInterface on the controlling unknown for the interface exposed using the particular type of map entry you chose. GetName() retrieves the Name property of the returned interface, and the name is displayed on the button.
This macro is used very frequently. Its job is to expose an interface that you have multiply-inherited into your object.
This macro exposes a tear-off interface. Tear-off interfaces are implemented using a seperate class. They are typically used for interfaces that not commonly required at runtime.
Cached tear-off interfaces are similar to a tear-off interface. Regular tear-off interfaces are created on every QueryInterface for the IID they implement. A cached tear-off instantiates the implementing object only the first time the interface is requested, and responds to subsequent requests for that interface by reusing the existing instance.
This macro causes the COM_MAP to chain to another COM_MAP. You can imagine the other COM_MAP inserted at the position you use this macro.
Exposes an interface from an object that you are aggregating on. The punk parameter is the inner unknown of the aggregate.
Autoaggregate implements delayed aggregation, which means that ATL will automatically create and aggregate on the inner object when someone QIs for this interface. This only happens if the aggregate hasn't already been created--that is, only when punk is not NULL.
This macro causes ATL to blindly exposes all the interfaces on an aggregate.
Combines delayed (AUTOAGGREGATE) and blind (AUTOAGGREGATE_BLIND) aggregation.


Worm
问题描述 :
Guy is a flying worm. A gun men are hunting him. Guy can’t keep running all the time . At night ,he has to find a place to sleep, and that’s very dangerous. In the sky, there are many flying rocks, Guy decides to stay on those rocks at night.  And Guy knows the direction. Guy wants to find a place on a certain rock so that the rock can protect him best from the bullets. The more distance a bullet has to travel inside the rock to reach Guy, the safer is Guy. Please find the safest place for Guy.
Guy’s world is a 2D plane. A rock can be consider as a polygon. Guy can just stay on the edge of the rock, he can’t get inside a rock. Guy stands on a rock ,but he can’t hang on a rock. As shown below, Guy can stay on point B,C and D, but he can’t stay on point A,E,F and G because if he stay there, he will fall down to the ground when he get asleep.
Guy’s world is a 2D plane. A rock can be consider as a polygon. Guy can just stay on the edge of the rock, he can’t get inside a rock. Guy stands on a rock ,but he can’t hang on a rock. As shown below, Guy can stay on point B,C and D, but he can’t stay on point A,E,F and G because if he stay there, he will fall down to the ground when he get asleep.
The direction of the gun fire can be described as a vector (dx, dy). The gun man is infinite far away, and he can choose any infinite far away point as the firing position. In other words, the bullet may fly along any straight line which is parallel to the vector (dx,dy).
输入:
First Line is an integer T <=20, means the number of test cases.
In each test cases, the first line is one integer m describing the number of polygons.
Then m polygons follow. Each Polygon P starts with an integer n as the number of vertex of P. after that there are n lines, each line is an integer pair (x, y) , meaning a vertex of P, in clockwise or counter-clockwise order.
The last line of each test case is two integers dx, dy, meaning that vector (dx,dy) is the direction of the gun fires.
The sum of the vertexes number of all polygons is smaller or equal to 1000.
The polygons will not intersect with each other or themselves. One polygon cannot be inside another.
There may be extra spaces and empty lines in the input data.
For more detail, see the sample input.
In each test cases, the first line is one integer m describing the number of polygons.
Then m polygons follow. Each Polygon P starts with an integer n as the number of vertex of P. after that there are n lines, each line is an integer pair (x, y) , meaning a vertex of P, in clockwise or counter-clockwise order.
The last line of each test case is two integers dx, dy, meaning that vector (dx,dy) is the direction of the gun fires.
The sum of the vertexes number of all polygons is smaller or equal to 1000.
The polygons will not intersect with each other or themselves. One polygon cannot be inside another.
There may be extra spaces and empty lines in the input data.
For more detail, see the sample input.
输出:
First Line is an integer T <=20, means the number of test cases.
In each test cases, the first line is one integer m describing the number of polygons.
Then m polygons follow. Each Polygon P starts with an integer n as the number of vertex of P. after that there are n lines, each line is an integer pair (x, y) , meaning a vertex of P, in clockwise or counter-clockwise order.
The last line of each test case is two integers dx, dy, meaning that vector (dx,dy) is the direction of the gun fires.
The sum of the vertexes number of all polygons is smaller or equal to 1000.
The polygons will not intersect with each other or themselves. One polygon cannot be inside another.
There may be extra spaces and empty lines in the input data.
For more detail, see the sample input.
In each test cases, the first line is one integer m describing the number of polygons.
Then m polygons follow. Each Polygon P starts with an integer n as the number of vertex of P. after that there are n lines, each line is an integer pair (x, y) , meaning a vertex of P, in clockwise or counter-clockwise order.
The last line of each test case is two integers dx, dy, meaning that vector (dx,dy) is the direction of the gun fires.
The sum of the vertexes number of all polygons is smaller or equal to 1000.
The polygons will not intersect with each other or themselves. One polygon cannot be inside another.
There may be extra spaces and empty lines in the input data.
For more detail, see the sample input.
样例输入:
3 1 6 0 0 0 1 -1 1 -1 -1 1 -1 1 0 0 1 1 6 0 0 0 1 -1 1 -1 -1 1 -1 1 0 0 -1 3 4 0 0 0 1 2 1 2 0 4 0 2 0 3 1 3 1 2 4 1 3 1 4 2 4 2 3 0 -1
样例输出:
2.00 Poor guy 1.00HintIn the first sample input, Guy could only stand on two segments: {(-1,1)-(0,1)}, and{(0,0)-(1,0)} Notice that, Guy cannot stand on (-1,1),(0,1) and (1,0).For the firing direction dx = 0, dy = 1, we could see that the safest place is any point on segment (-1,1) - (0,1) (except two ends). And a bullet has two travel distance 2 inside the rock to hit Guy. Please do pay attention to the test case 2 and 3.
字符串构造
用dfs打表可以知道一条450000+的链
然后手动模拟回溯的过程可以用n＊26的构造出长度n的链
#pragma comment(linker,"/STACK:102400000,102400000") #include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #include <vector> #include <string> #include <math.h> #include <queue> #include <stack> #include <map> #include <set> using namespace std; int mp[26][26][26][26]; char ss[555555]; int main(){ int n; while(~scanf("%d",&n)){ if(n>=456980){printf("Impossible\n");continue;} memset(mp,0,sizeof mp); memset(ss,0,sizeof ss); ss[0]='a'; ss[1]='a'; ss[2]='a'; ss[3]='a'; int tot=0; mp[0][0][0][0]=1; int fl=0,im=0; if(n==1)printf("a\n"); else if(n==2)printf("aa\n"); else if(n==3)printf("aaa\n"); else if(n==4)printf("aaaa\n"); else{ int j=0; for(int i=4;i<min(n,456976);++i){ int fl=0; for(j=0;j<26;++j){ if(!mp[ss[i-3]-'a'][ss[i-2]-'a'][ss[i-1]-'a'][j]){ mp[ss[i-3]-'a'][ss[i-2]-'a'][ss[i-1]-'a'][j]=1; ss[i]=j+'a'; fl=1; break; } } if(fl==0)i-=2; } printf("%s",ss); for(int i=0;i<(n-456976);++i)printf("a"); printf("\n"); } } return 0; }
版权声明：本文为博主原创文章，未经博主允许不得转载。
参考：http://blog.csdn.net/ahjkl007/article/details/37596477
(adsbygoogle = window.adsbygoogle || []).push({});
还有海沙呢，不过更赞肆菲！
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色
看头发的颜色


| HADOOP-10142 |
Avoid groups lookup for unprivileged users such as "dr.who" |
Major |
. |
Vinayakumar B |
Vinayakumar B |
| HADOOP-10094 |
NPE in GenericOptionsParser#preProcessForWindows() |
Trivial |
util |
Enis Soztutar |
Enis Soztutar |
| HADOOP-10090 |
Jobtracker metrics not updated properly after execution of a mapreduce job |
Major |
metrics |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9801 |
Configuration#writeXml uses platform defaulting encoding, which may mishandle multi-byte characters. |
Major |
conf |
Chris Nauroth |
Chris Nauroth |
| HADOOP-9791 |
Add a test case covering long paths for new FileUtil access check methods |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9790 |
Job token path is not unquoted properly |
Major |
. |
Xi Fang |
Xi Fang |
| HADOOP-9768 |
chown and chgrp reject users and groups with spaces on platforms where spaces are otherwise acceptable |
Major |
fs |
Chris Nauroth |
Chris Nauroth |
| HADOOP-9722 |
Branch-1-win TestNativeIO failed caused by Window incompatible test case |
Minor |
test |
Xi Fang |
Xi Fang |
| HADOOP-9719 |
Branch-1-win TestFsShellReturnCode#testChgrp() failed caused by incorrect exit codes |
Minor |
test |
Xi Fang |
Xi Fang |
| HADOOP-9718 |
Branch-1-win TestGroupFallback#testGroupWithFallback() failed caused by java.lang.UnsatisfiedLinkError |
Major |
security |
Xi Fang |
Xi Fang |
| HADOOP-9687 |
branch-1-win TestJobTrackerQuiescence and TestFileLengthOnClusterRestart failed caused by incorrect DFS path construction on Windows |
Minor |
test |
Xi Fang |
Xi Fang |
| HADOOP-9685 |
hadoop-config.cmd: builds a classpath that is too long on windows |
Major |
bin |
Raja Aluri |
Raja Aluri |
| HADOOP-9681 |
FileUtil.unTarUsingJava() should close the InputStream upon finishing |
Minor |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-9678 |
TestRPC#testStopsAllThreads intermittently fails on Windows |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9677 |
TestSetupAndCleanupFailure#testWithDFS fails on Windows |
Major |
. |
Ivan Mitic |
Xi Fang |
| HADOOP-9665 |
BlockDecompressorStream#decompress will throw EOFException instead of return -1 when EOF |
Critical |
. |
Zhijie Shen |
Zhijie Shen |
| HADOOP-9660 |
[WINDOWS] Powershell / cmd parses -Dkey=value from command line as [-Dkey, value] which breaks GenericsOptionParser |
Major |
scripts, util |
Enis Soztutar |
Enis Soztutar |
| HADOOP-9609 |
Remove sh dependency of bin-package target |
Minor |
build |
Chuan Liu |
Chuan Liu |
| HADOOP-9579 |
Contrib ant test target not setting the java.library.path |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9552 |
Windows log4j template should suppress info messages from mortbay.log |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9551 |
Backport common utils introduced with HADOOP-9413 to branch-1-win |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9507 |
LocalFileSystem rename() is broken in some cases when destination exists |
Minor |
fs |
Mostafa Elhemali |
Chris Nauroth |
| HADOOP-9472 |
Cleanup hadoop-config.cmd |
Minor |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9463 |
branch-1-win fails to build with OpenJDK7 |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9250 |
Windows installer bugfixes |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9185 |
TestFileCreation.testFsClose should clean up on exit. |
Major |
test |
Arpit Agarwal |
Arpit Agarwal |
| HADOOP-9177 |
Address issues that came out from running static code analysis on winutils |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9110 |
winutils ls off-by-one error indexing MONTHS array can cause access violation |
Major |
util |
Chris Nauroth |
Chris Nauroth |
| HADOOP-9102 |
winutils task isAlive does not return a non-zero exit code if the requested task is not alive |
Major |
util |
Chris Nauroth |
Chris Nauroth |
| HADOOP-9099 |
NetUtils.normalizeHostName fails on domains where UnknownHost resolves to an IP address |
Minor |
test |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9095 |
TestNNThroughputBenchmark fails in branch-1 |
Minor |
net |
Tsz Wo Nicholas Sze |
Jing Zhao |
| HADOOP-9062 |
hadoop-env.cmd overwrites the value of *_OPTS set before install |
Major |
. |
Ganeshan Iyer |
|
| HADOOP-9061 |
Java6+Windows does not work well with symlinks |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9043 |
disallow in winutils creating symlinks with forwards slashes |
Major |
util |
Chris Nauroth |
Chris Nauroth |
| HADOOP-9036 |
TestSinkQueue.testConcurrentConsumers fails intermittently (Backports HADOOP-7292) |
Major |
. |
Ivan Mitic |
Suresh Srinivas |
| HADOOP-9027 |
Build fails on Windows without sh/sed/echo in the path |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9026 |
Hadoop.cmd fails to initialize if user's %path% variable has parenthesis |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-9007 |
TestJobStatusPersistency.testJobStoreDisablingWithInvalidPath failure |
Minor |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-9006 |
Winutils should keep Administrators privileges intact |
Minor |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-8983 |
Minor fixes to windows batch scripts to accept alternate config directory location |
Major |
. |
Ramya Bharathi Nimmagadda |
Ramya Bharathi Nimmagadda |
| HADOOP-8973 |
DiskChecker cannot reliably detect an inaccessible disk on Windows with NTFS ACLs |
Major |
util |
Chris Nauroth |
Chris Nauroth |
| HADOOP-8972 |
Move winutils tests from bat to Java |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8936 |
Local users should be able to query a domain user's groups on Windows |
Minor |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-8935 |
Make 'winutils ls' show the SID if the owner does not exist on the system |
Minor |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-8912 |
adding .gitattributes file to prevent CRLF and LF mismatches for source and text files |
Major |
build |
Raja Aluri |
Raja Aluri |
| HADOOP-8911 |
CRLF characters in source and text files |
Major |
build |
Raja Aluri |
Raja Aluri |
| HADOOP-8907 |
Provide means to look for zlib1.dll next to hadoop.dll on Windows |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8903 |
support HADOOP_USER_CLASSPATH_FIRST in windows hadoop cmd |
Major |
scripts |
Thejas M Nair |
Thejas M Nair |
| HADOOP-8902 |
Enable Gridmix v1 & v2 benchmarks on Windows platform |
Major |
benchmarks |
Mike Liddell |
Mike Liddell |
| HADOOP-8899 |
Classpath exceeds maximum OS limit |
Major |
. |
Ahmed El Baz |
Ahmed El Baz |
| HADOOP-8880 |
Missing jersey jars as dependency in the pom causes hive tests to fail |
Major |
. |
Giridharan Kesavan |
Giridharan Kesavan |
| HADOOP-8879 |
TestUserGroupInformation fails on Windows when runas Administrator |
Minor |
test |
Bikas Saha |
Bikas Saha |
| HADOOP-8872 |
FileSystem#length returns zero for symlinks on windows+java6 |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8871 |
FileUtil.symLink: if shell command fails, logging message does not correctly print command attempted |
Major |
fs |
Chris Nauroth |
Chris Nauroth |
| HADOOP-8869 |
Links at the bottom of the jobdetails page do not render correctly in IE9 |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8868 |
FileUtil#chmod should normalize the path before calling into shell APIs |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8763 |
Set group owner on Windows failed |
Minor |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-8739 |
Cmd scripts for Windows have issues in argument parsing |
Major |
. |
Bikas Saha |
Bikas Saha |
| HADOOP-8734 |
LocalJobRunner does not support private distributed cache |
Major |
filecache |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8733 |
TestStreamingTaskLog, TestJvmManager, TestLinuxTaskControllerLaunchArgs fail on Windows |
Major |
test |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8732 |
Address intermittent test failures on Windows |
Major |
util |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8731 |
TestTrackerDistributedCacheManager fails on Windows |
Major |
filecache |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8694 |
Create true symbolic links on Windows |
Major |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-8664 |
hadoop streaming job need the full path to commands even when they are in the path |
Major |
. |
Bikas Saha |
Bikas Saha |
| HADOOP-8657 |
TestCLI fails on Windows because it uses hardcoded file length of test files committed to the source code |
Major |
. |
Bikas Saha |
Bikas Saha |
| HADOOP-8564 |
Port and extend Hadoop native libraries for Windows to address datanode concurrent reading and writing issue |
Major |
io |
Chuan Liu |
Chuan Liu |
| HADOOP-8544 |
Move an assertion location in 'winutils chmod' |
Trivial |
. |
Chuan Liu |
Chuan Liu |
| HADOOP-8486 |
Resource leak - Close the open resource handles (File handles) before throwing the exception from the SequenceFile constructor |
Major |
fs, io |
Kanna Karanam |
Kanna Karanam |
| HADOOP-8456 |
Support spaces in user names and group names in results returned via winutils |
Minor |
native |
Chuan Liu |
Ivan Mitic |
| HADOOP-8440 |
HarFileSystem.decodeHarURI fails for URIs whose host contains numbers |
Minor |
fs |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8424 |
Web UI broken on Windows because classpath not setup correctly |
Major |
. |
Bikas Saha |
Bikas Saha |
| HADOOP-8420 |
Hadoop Common creating package-info.java must not depend on sh |
Major |
. |
Bikas Saha |
Bikas Saha |
| HADOOP-8414 |
Address problems related to localhost resolving to <IP_ADDRESS> on Windows |
Major |
fs, test |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8409 |
Fix TestCommandLineJobSubmission and TestGenericOptionsParser to work for windows |
Major |
fs, test, util |
Ivan Mitic |
Ivan Mitic |
| HADOOP-8329 |
Build fails with Java 7 |
Major |
build |
Kumar Ravi |
Eli Collins |
| HADOOP-6527 |
UserGroupInformation::createUserForTesting clobbers already defined group mappings |
Major |
security |
Jakob Homan |
Ivan Mitic |
| HADOOP-6496 |
HttpServer sends wrong content-type for CSS files (and others) |
Minor |
. |
Lars Francke |
Ivan Mitic |
| HDFS-5516 |
WebHDFS does not require user name when anonymous http requests are disallowed. |
Major |
webhdfs |
Chris Nauroth |
Miodrag Radulovic |
| HDFS-5211 |
Race condition between DistributedFileSystem#close and FileSystem#close can cause return of a closed DistributedFileSystem instance from the FileSystem cache. |
Major |
hdfs-client |
Chris Nauroth |
Chris Nauroth |
| HDFS-5003 |
TestNNThroughputBenchmark failed caused by existing directories |
Minor |
test |
Xi Fang |
Xi Fang |
| HDFS-5001 |
Branch-1-Win TestAzureBlockPlacementPolicy and TestReplicationPolicyWithNodeGroup failed caused by 1) old APIs and 2) incorrect value of depthOfAllLeaves |
Major |
namenode |
Xi Fang |
Xi Fang |
| HDFS-4975 |
Branch-1-win TestReplicationPolicy failed caused by stale data node handling |
Major |
. |
Xi Fang |
Xi Fang |
| HDFS-4677 |
Editlog should support synchronous writes |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| HDFS-4341 |
TestBalancerWithNodeGroup fails on Windows |
Minor |
test |
Ivan Mitic |
Ivan Mitic |
| HDFS-4337 |
Backport HDFS-4240 to branch-1: Make sure nodes are avoided to place replica if some replica are already under the same nodegroup. |
Major |
namenode |
Junping Du |
meng gong |
| HDFS-4093 |
In branch-1-win, AzureBlockPlacementPolicy#chooseTarget only returns one DN when replication factor is greater than 3. |
Major |
. |
Jing Zhao |
Jing Zhao |
| HDFS-4065 |
TestDFSShell.testGet sporadically fails attempting to corrupt block files due to race condition |
Major |
test |
Chris Nauroth |
Chris Nauroth |
| HDFS-3833 |
TestDFSShell fails on Windows due to file concurrent read write |
Major |
test |
Brandon Li |
Brandon Li |
| HDFS-3766 |
Fix TestStorageRestore on Windows |
Major |
namenode |
Brandon Li |
Brandon Li |
| HDFS-3763 |
TestNameNodeMXBean fails on Windows |
Major |
namenode |
Brandon Li |
Brandon Li |
| MAPREDUCE-5808 |
Port output replication factor configurable for terasort to Hadoop 1.x |
Minor |
examples |
Chuan Liu |
Chuan Liu |
| MAPREDUCE-5512 |
TaskTracker hung after failed reconnect to the JobTracker |
Major |
tasktracker |
Ivan Mitic |
Ivan Mitic |
| MAPREDUCE-5508 |
JobTracker memory leak caused by unreleased FileSystem objects in JobInProgress#cleanupJob |
Critical |
jobtracker |
Xi Fang |
Xi Fang |
| MAPREDUCE-5405 |
Job recovery can fail if task log directory symlink from prior run still exists |
Major |
mrv1 |
Chris Nauroth |
Chris Nauroth |
| MAPREDUCE-5391 |
TestNonLocalJobJarSubmission fails on Windows due to missing classpath entries |
Major |
test |
Chris Nauroth |
Chris Nauroth |
| MAPREDUCE-5371 |
TestProxyUserFromEnv#testProxyUserFromEnvironment failed caused by domains of windows users |
Minor |
test |
Xi Fang |
Xi Fang |
| MAPREDUCE-5351 |
JobTracker memory leak caused by CleanupQueue reopening FileSystem |
Critical |
jobtracker |
Sandy Ryza |
Sandy Ryza |
| MAPREDUCE-5330 |
JVM manager should not forcefully kill the process on Signal.TERM on Windows |
Major |
. |
Xi Fang |
Xi Fang |
| MAPREDUCE-5278 |
Distributed cache is broken when JT staging dir is not on the default FS |
Major |
distributed-cache |
Xi Fang |
Xi Fang |
| MAPREDUCE-5224 |
JobTracker should allow the system directory to be in non-default FS |
Minor |
jobtracker |
Xi Fang |
Xi Fang |
| MAPREDUCE-5066 |
JobTracker should set a timeout when calling into job.end.notification.url |
Major |
. |
Ivan Mitic |
Ivan Mitic |
| MAPREDUCE-4657 |
WindowsResourceCalculatorPlugin has NPE |
Minor |
. |
Bikas Saha |
Bikas Saha |
| MAPREDUCE-4598 |
Support for node health scripts on Windows |
Major |
. |
Bikas Saha |
Bikas Saha |
| MAPREDUCE-4597 |
TestKillSubProcesses intermittently fails |
Major |
. |
Bikas Saha |
Bikas Saha |
| MAPREDUCE-4564 |
Shell timeout mechanism does not work for processes spawned using winutils |
Major |
. |
Bikas Saha |
Bikas Saha |
| MAPREDUCE-4510 |
Avoid logging "Cannot run program getconf" on Windows |
Major |
. |
Bikas Saha |
Bikas Saha |
| MAPREDUCE-4374 |
Fix child task environment variable config and add support for Windows |
Minor |
mrv2 |
Chuan Liu |
Chuan Liu |
| MAPREDUCE-4369 |
Fix streaming job failures with WindowsResourceCalculatorPlugin |
Major |
. |
Bikas Saha |
Bikas Saha |
| MAPREDUCE-4368 |
TaskRunner fails to start jars when the java.library.path contains a quoted path with embedded spaces |
Major |
tasktracker |
John Gordon |
John Gordon |
| MAPREDUCE-4322 |
Fix command-line length abort issues on Windows |
Major |
tasktracker |
John Gordon |
Ivan Mitic |
| MAPREDUCE-4321 |
DefaultTaskController fails to launch tasks on Windows |
Major |
. |
Ivan Mitic |
Ivan Mitic |


Today I work as a test organizer and test leader and as a technical writer at Infomaker. I have also the role as s a support coordinator.
In my spare time I love to go the fitness-center and to be outdoor with my family. I have a great interest in questions and concerns about our environment. Are you interested in a discussion about how to take care of our Planet Earth? I try to live as a responible planet steward and I love to discuss what that means to me.
Check my Facebook and contact me in any channel. Yay!
on Infomaker
Infomaker Scandinavia is a software company that is agile in core and puts great effort in professional cunsultancy and development. I have a wide and deep experience of Infomaker products, which are powering publishers every day - and feel modern every day - as our developers are amazing in producing new releases.
on Quality and Testing
Now I have my focus at quality aspects of our products. We intend to provide even better products and include harder quality tests on our applications and our solutions. Deeper concentration on technical documentaion is also at heart today for me.
on Support
In my role as a support coordinator I give our customers and consultants the opportunity to have a personal contact if there is a need for that. I hope you never hesitate to contact me if there is a need to discuss a support issue.


The child entities contained by this presentation node.
If this presentation node has an associated "Record" that you can accomplish for completing its children, this is the identifier of that Record.
Mapped to DestinyRecordDefinition in the manifest.
If this presentation node has children, but the game doesn't let you inspect the details of those children, that is indicated here.
A hint for how to display this presentation node when it's shown in a list.
The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.
When entities refer to each other in Destiny content, it is this hash that they are referring to.
The index of the entity as it was found in the investment tables.
If this presentation node shows a related objective (for instance, if it tracks the progress of its children), the objective being tracked is indicated here.
Mapped to DestinyObjectiveDefinition in the manifest.
The original icon for this presentation node, before we futzed with it.
A quick reference to presentation nodes that have this node as a child. ( presentation nodes can be parented under multiple parents)
Mapped to DestinyPresentationNodeDefinition in the manifest.
If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
The requirements for being able to interact with this presentation node and its children.
Some presentation nodes are meant to be explicitly shown on the "root" or "entry" screens for the feature to which they are related. You should use this icon when showing them on such a view, if you have a similar "entry point" view in your UI. If you don't have a UI, then I guess it doesn't matter either way does it?
Indicates whether this presentation node's state is determined on a per- character or on an account-wide basis.
A hint for how to display this presentation node when it's shown in its own detail screen.
A PresentationNode is an entity that represents a logical grouping of other entities visually/organizationally.
For now, Presentation Nodes may contain the following... but it may be used for more in the future:
Part of me wants to break these into conceptual definitions per entity being collected, but the possibility of these different types being mixed in the same UI and the possibility that it could actually be more useful to return the "bare metal" presentation node concept has resulted in me deciding against that for the time being.
We'll see if I come to regret this as well.