Interface IMediaDescriptorFactory
interface IMediaDescriptorFactory
Extends com.amazon.apmf.IStandard
MediaDescriptor Module Factory Interface
Methods
createMediaConfigForVideoDecoder()
Creates anIMediaConfig*createMediaConfigForVideoDecoder()
IMediaConfig configuration object for the Video Decoder.
After getting object IMediaConfig, applications need to query below
interfaces to get the interfaces object for setting formats and features.
Supported interfaces for Video Decoder usecase are:-
IMediaFormat, IMediaCodecFeatures,
IMediaFormatProfileLevel, IVideoFormat,
IVideoHdrFormat,IDecoderFeatures,
IVideoCodecFeatures, IVideoDecoderFeatures
Various usecases of this configuration.
- To set the required configuration using setter APIs.
- check capabilities for the configuration using queryMediaCapabilities API.
Returns
IMediaConfig*
IMediaConfig configuration instance.
createMediaConfigForVideoEncoder()
Creates anIMediaConfig*createMediaConfigForVideoEncoder()
IMediaConfig configuration object for the Video Encoder.
After getting object IMediaConfig, applications need to query below
interfaces to get the interfaces object for setting formats and features.
Supported interfaces for Video Encoder usecase are:-
IMediaFormat, IMediaCodecFeatures,
IMediaFormatProfileLevel, IVideoFormat,
IEncoderFeatures,IVideoEncoderFormat,
IEncoderFeatures, IVideoCodecFeatures,
IVideoEncoderFeatures
Various usecases of this configuration.
- To set the required configuration using setter APIs.
- check capabilities for the configuration using queryMediaCapabilities API.
Returns
IMediaConfig*
IMediaConfig configuration instance.
createMediaConfigForAudioDecoder()
Creates anIMediaConfig*createMediaConfigForAudioDecoder()
IMediaConfig configuration object for the Audio Decoder.
After getting object IMediaConfig, applications need to query below
interfaces to get the interfaces object for setting formats and features.
Supported interfaces for Audio Decoder usecase are:-
IMediaFormat, IMediaCodecFeatures,
IMediaFormatProfileLevel, IAudioFormat
IDecoderFeatures, IAudioDecoderFeatures
Various usecases of this configuration.
- To set the required configuration using setter APIs.
- check capabilities for the configuration using queryMediaCapabilities API.
Returns
IMediaConfig*
IMediaConfig configuration instance.
createMediaConfigForAudioEncoder()
Creates anIMediaConfig*createMediaConfigForAudioEncoder()
IMediaConfig configuration object for the Audio Encoder.
After getting object IMediaConfig, applications need to query below
interfaces to get the interfaces object for setting formats and features.
Supported interfaces for Audio Encoder usecase are:-
IMediaFormat, IMediaCodecFeatures,
IMediaFormatProfileLevel, IAudioFormat,
IEncoderFeatures
Various usecases of this configuration.
- To set the required configuration using setter APIs
- check capabilities for the configuration using queryMediaCapabilities API.
Returns
IMediaConfig*
IMediaConfig configuration instance.
queryMediaCapabilities()
Fetches the list of codecs supported by the required configuration. After getting the array ofIMediaCapabilities*[]queryMediaCapabilities(IMediaConfig*config)
IMediaCapabilities’s pointer, applications
may want to query available interfaces through TryQueryInterface
to get all capabilities for supported codec.
Supported interfaces are based on the IMediaConfig passed as argument.
IMediaConfig created from createMediaConfigForVideoDecoder() and passed as
an argument to queryMediaCapabilities implements TryQueryInterface
on the following interfaces:
IMediaFormatCapabilities, IMediaCodecFeaturesCapabilities,
IMediaFormatProfileLevelCapabilities, IDecoderFeaturesCapabilities,
IVideoCodecFeaturesCapabilities, IVideoDecoderFeaturesCapabilities
IMediaConfig created from createMediaConfigForAudioDecoder() and passed as
an argument to queryMediaCapabilities implements TryQueryInterface
on the following interfaces:
IMediaFormatCapabilities, IMediaCodecFeaturesCapabilities,
IMediaFormatProfileLevelCapabilities, IAudioDecoderFeaturesCapabilities,
IAudioFormatCapabilities, IDecoderFeaturesCapabilities
IMediaConfig created from createMediaConfigForVideoEncoder() and passed as
an argument to queryMediaCapabilities implements TryQueryInterface
on the following interfaces:
IMediaFormatCapabilities, IMediaCodecFeaturesCapabilities,
IMediaFormatProfileLevelCapabilities, IVideoCodecFeaturesCapabilities,
IVideoEncoderFeaturesCapabilities, IVideoFormatCapabilities
IMediaConfig created from createMediaConfigForAudioEncoder() and passed as
an argument to queryMediaCapabilities implements TryQueryInterface
on the following interfaces:
IMediaFormatCapabilities, IMediaCodecFeaturesCapabilities,
IMediaFormatProfileLevelCapabilities
IMediaConfig created from createMediaConfigForAudioDecryptor() (created
using IMediaDescriptorFactory2) and passed as an argument to queryMediaCapabilities
implements TryQueryInterface on the following interfaces:
IAudioDecryptorFormatCapabilities, IAudioFormatCapabilities
Various usecases of query media capabilities.
- check if the configuration is supported or not. if returned array size is > 0.
- get list of all the supported video decoder, video encoders, audio decoders or audio encoders.
- iterate over the list and check for particular format/feature capabilities, like hardware backed, 4k resolution support etc.
- saves system resources/network bandwidth by checking the capabilities prior to streaming any content.
Parameters
config
IMediaConfig* — Required
The IMediaConfig configuration object,
Returns
IMediaCapabilities*[]
Array of IMediaCapabilities capabilities objects.

