
/*---------------------------------------------------------------------------*/
/* video_transcoder.h                                                        */
/* copyright (c) innovaphone 2015                                            */
/*                                                                           */
/*---------------------------------------------------------------------------*/

class IMediaTranscoder
{
public:
    static class IMediaTranscoder * Create(class IIoMux * const iomux, class UMediaTranscoder * const user, class IInstanceLog * log, enum VideoCoder from, enum VideoCoder to);
    virtual ~IMediaTranscoder() {};
    virtual void Transcode(const void * buf, int len, dword timestamp, dword duration, short sequenceDiff, int width, int height, int stride, dword flags) = 0;
    virtual void Close() = 0;
};

class UMediaTranscoder
{
public:
    virtual void TranscodeResult(class IMediaTranscoder * transcoder, const void * buf, int len, dword timestamp, dword duration, short sequenceDiff, int width, int height, int stride, dword flags) = 0;
    virtual void MediaTranscoderCloseResult(class IMediaTranscoder * transcoder) = 0;
};


/*---------------------------------------------------------------------------*/
