Release Notes: The Media Kit

Release Notes Table of Contents | Release Notes Index

# The Media Kit

## BBufferConsumer

Declared in: be/media/BufferConsumer.h

### BBufferConsumer()

`explicit` `BBufferConsumer(media_type` consumer`) `

The consumer argument used to take a default value (`B_MEDIA_UNKNOWN_TYPE`); it no longer does.

## BBufferProducer

Declared in: be/media/BufferProducer.h

### BBufferProducer()

`explicit` `BBufferProducer(media_type` producer`) `

The producer argument used to take a default value (`B_MEDIA_UNKNOWN_TYPE`); it no longer does.

### suggestion_quality

`enum` `suggestion_quality(
` B_ANY_QUALITY = 0,
`B_LOW_QUALITY` = 10,
`B_MEDIUM_QUALITY` = 50,
`B_HIGH_QUALITY` = 100`)

`

These constants can be used as values for the quality argument to `FormatSuggestionRequested()`. Although you don't have to use these constants, it's expected that you'll restrict your request to 0-100.

## BMediaAddOn

Declared in: media/MediaAddOn.h

The following functions are no longer pure virtual, they are just virtual: `InitCheck()`, `CountFlavors()`, `GetFlavorAt()`, `InstantiateNodeFor()`, `GetConfigurationFor()`, `WantsToStart()`, `AutoStart()`

### NotifyFlavorChange()

Calling this will cause everyone concerned to be notified of the change to your flavor, and also cause the media server to re-scan your flavor info. It is thread safe. Note that this function is defined protected.

`status_t` `NotifyFlavorChange`()

## BMediaFormats

Declared in: media/MediaFormats.h

### MakeFormatFor()

`status_t` `MakeFormatFor`(`const media_format_description *` descs, `int32` desc_count, `media_format *` io_format, `uint32` flags = 0, void * _reserved = 0);

### GetBeOSFormatFor()

`static status_t` `GetBeOSFormatFor`(`uint32` fourcc, `media_format *` out_format, `media_type` type = B_MEDIA_UNKNOWN_TYPE)

### GetAVIFormatFor()

`static status_t` GetAVIFormatFor(`uint32` fourcc, `media_format *` out_format, `media_type` type = B_MEDIA_UNKNOWN_TYPE)

### GetQuicktimeFormatFor

`static status_t` GetQuicktimeFormatFor(`uint32` vendor, `uint32` fourcc, `media_format *`out_format, `media_type` type = B_MEDIA_UNKNOWN_TYPE)

### get_next_encoder()

`status_t` `get_next_encoder`(`int32 *`cookie, `media_codec_info *`ei);

`status_t` `get_next_encoder`( `int32 *`cookie, `const media_file_format *`mfi, `const media_format *input_format`, `const media_format *`output_format, `media_codec_info *`ei, `media_format *`accepted_input_format, `media_format *`accepted_output_format)

- mfi comes from `get_next_file_format()`, pass `NULL` if you don't care.

- input_format is the type of data given to the encoder, wildcards are allowed.

- output_format: the desired output format, wildcards allowed.

- ei: information about the encoder.

- accepted_input_format: Type of data that the encoder will accept as input. Wildcards given in input_format will be specialized here.

- accepted_output_format: The type of data that the encoder will output. Wildcards in output_format will be specialized here.

### does_file_accept_format()

`bool` `does_file_accept_format`(`const media_file_format *`mfi, `const` `media_format *`format);

### typedef , media_avr_description

Supports the avr format

`typedef struct` {
`uint32` id;
} `media_avr_description`;

### enum , make_format_flags

`enum` `make_format_flags` {
`B_EXCLUSIVE` = 0x1, //Fail if this format has already been registered
`B_NO_MERGE` = 0x2, //Don>t re-number any formats if there are multiple clashing previous registrations, but fail instead
`B_SET_DEFAULT` = 0x4 //Set the first format to be the default for the format family (when registering more than one in the same family). Only use in Encoder add-ons.
}

## BMediaEventLooper

Declared in: media/MediaEventLooper.h

### ControlThread()

`thread_id` `ControlThread` ()

Protected function to return the id of the thread running this BMediaEventLooper.

## BMediaFile

Declared in: media/MediaFile.h

### BMediaFile()

Two new constructors for read-only access to files:

`BMediaFile`(`const entry_ref *` ref, `int32` flags);
`BMediaFile`(`BDataIO *` source, `int32` flags);

## BMediaRoster

Declared in: media/mediaRoster.h

### GetAudioOutput() , SetAudioOuput()

New versions of these functions.

`status_t` `GetAudioOutput`(`media_node *` out_node, `int32 *` out_input_id, `BString *` out_input_name)
`status_t` `SetAudioOuput`(`const media_input &` input_to_output)

### GetAllInputsFor() , GetAllOutputFor()

`status_t` `GetAllInputsFor`(`const media_node &` node, `media_input *` out_inputs, `int32` buf_num_inputs, `int32 *` out_total_count)
`status_t` `GetAllOutputsFor`(`const media_node &` node, `media_output *` out_outputs, `int32` buf_num_outputs, `int32 *` out_total_count)

### GetFormatFor()

`status_t` `GetFormatFor`(`const media_output &` output, `media_format *` io_format, `uint32` flags = 0)
`status_t` `GetFormatFor`(`const media_input &` input, `media_format *` io_format, `uint32` flags = 0)
`status_t` `GetFormatFor`(`const media_node &` node, `media_format *` io_format, `float` quality = B_MEDIA_ANY_QUALITY)

### NodeIDFor()

`media_node_id` `NodeIDFor`(`port_id` source_or_destination_port)

Use to find the media node associated with a given port.

### GetInstancesFor()

`status_t` `GetInstancesFor`(`media_addon_id` addon, `int32` flavor, `media_node_id *` out_id, int32 * io_count = 0)

## BMediaTrack

Declared in: media/MediaTrack.h

- `media_seek_type` enum has been extended with `B_MEDIA_SEEK_DIRECTION_MASK`.

### ReadFrames()

New version of ReadFrames()

`status_t` `ReadFrames`(`void *`out_buffer, `int64 *`out_frameCount, `media_header *`mh, `media_decode_info *`info);

### FindKeyFrameForTime() , FindKeyFrameForFrame()

`status_t` `FindKeyFrameForTime`(`bigtime_t *`inout_time, `int32` flags=0) `const`;
`status_t` `FindKeyFrameForFrame`(`int64 *`inout_frame, `int32` flags=0) `const`;

### WriteFrames()

`status_t` `WriteFrames`(`const void *`data, `int64` num_frames, `media_encode_info *`info);
`status_t` `WriteFrames`(`const void *`data, `int64` num_frames, `media_encode_info *`info);

### GetEncodeParameters() , GetEncodeParameters()

`status_t` `GetEncodeParameters`(`encode_parameters *`parameters) `const`;
`status_t` `SetEncodeParameters`(`encode_parameters *`parameters);

## BSoundPlayer

Declared in: media/SoundPlayer.h

### BSoundPlayer()

`BSoundPlayer`(`const media_node &` toNode, `const media_multi_audio_format *` format = NULL, `const char *` name = NULL, `const media_input *` input = NULL, void (*PlayBuffer)(void *, void * buffer, size_t size, const media_raw_audio_format & format) = NULL, void (*Notifier)(void *, sound_player_notification what, ...) = NULL, void * cookie = NULL)

New constructor to support the new `media_multi_audio_format` type.

### GetVolumeInfo()

`status_t` `GetVolumeInfo(media_node *` out_node, `int32 *` out_parameter, `float *` out_min_dB, `float *` out_max_dB)

### SetVolumeDB() , VolumeDB()

`float` `VolumeDB(bool` forcePoll = `false``) `
`void` `SetVolumeDB(float` volume_dB`) `

## BTimedEventQueue

Declared in: media/TimedEventQueue.h

`int32` `EventCount`() `const `

How many events in the queue?

## Media Kit Miscellanea

### suggestion_quality

Declared in: media/BufferProducer.h

`enum` `suggestion_quality` {

B_ANY_QUALITY = 0,
B_LOW_QUALITY = 10,
B_MEDIUM_QUALITY = 50,
B_HIGH_QUALITY = 100
};

### rtm_realloc

Declared in: media/RealtimeAlloc.h

`status_t` `rtm_realloc(void **` data, `size_t` new_size`) `

New realtime memory reallocation function.

### Constants and Types

Declared in: media/MediaDefs.h

- new `B_MEDIA_FLAVORS_CHANGED` value for use as >what> field of messages.

- new `media_multi_channels` and `media_multi_matrix` enumerations for use with multiple audio channels.

- changes to `media_raw_audio_format` enumeration.

- `media_raw_audio_format` is deprecated. Please use `media_multi_audio_format` instead. `media_format.u.raw_audio` and `media_raw_audio_format::wildcard` have changed to a `media_multi_audio_format` struct, which is upwards compatible.

- new `media_multi_audio_info` struct (used for a new field in `media_encoded_audio_format`)

- new `media_display_flags` struct

- new `media_format_flags` enumeration

- changes to the `media_format` struct, including these new inline functions: `Width()`, `Height()`, and `Encoding()`.

  plus changes in constness of existing functions.

- new `B_AVR_FORMAT_FAMILY` in the `media_format_family` typedef

- new structs for use by encoders and file writers: `media_encode_info`, `encode_parameters`, `media_decode_info`

Release Notes Table of Contents | Release Notes Index

The Be Book,
...in lovely HTML...
for BeOS Release 5.

Copyright © 2000 Be, Inc. All rights reserved..