struct CCL::IAudioCodecFactory

Overview

Creates IAudioSource/IAudioSink instances for decoding/encoding an IStream. More…

#include <iaudioservice.h>

struct IAudioCodecFactory: public CCL::IUnknown
{
    // methods

    virtual int CCL_API getCodecCount () const = 0;

    virtual tresult CCL_API getCodecDescription (
        AudioCodecDesc& description,
        int index
    ) const = 0;

    virtual tresult CCL_API createDecoderInstance (
        IAudioSource*& source,
        IStream& stream,
        StringRef contentType,
        const AudioContentFormat& format
    ) = 0;

    virtual tresult CCL_API createEncoderInstance (
        IAudioSink*& sink,
        IStream& stream,
        StringRef contentType,
        const AudioContentFormat& format
    ) = 0;
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

Detailed Documentation

Creates IAudioSource/IAudioSink instances for decoding/encoding an IStream.

Methods

virtual int CCL_API getCodecCount () const = 0

Get number of built-in codecs.

virtual tresult CCL_API getCodecDescription (
    AudioCodecDesc& description,
    int index
) const = 0

Get description of built-in codec at given index.

virtual tresult CCL_API createDecoderInstance (
    IAudioSource*& source,
    IStream& stream,
    StringRef contentType,
    const AudioContentFormat& format
) = 0

Create new IAudioSource for decoding from the given stream.

The stream is retained for the lifetime of the source.

virtual tresult CCL_API createEncoderInstance (
    IAudioSink*& sink,
    IStream& stream,
    StringRef contentType,
    const AudioContentFormat& format
) = 0

Create new IAudioSink for encoding into the given stream.

The stream is retained for the lifetime of the sink.