⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 codec_pipeline.h

📁 audio-video-codecs.rar语音编解码器
💻 H
字号:
/* /////////////////////////////////////////////////////////////////////////////
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2003-2007 Intel Corporation. All Rights Reserved.
//
//
*/

#ifndef __CODEC_PIPELINE_H__
#define __CODEC_PIPELINE_H__

#include "umc_base_codecs.h"
#include "umc_media_data_ex.h"
#include "umc_source_types.h"

enum
{
    DEF_DATA_READER = 0,
    FILE_DATA_READER,
    VOB_DATA_READER,
    SOCKET_DATA_READER,
    HTTP_DATA_READER
};

class CodecPipeline
{
public:
    static UMC::Status SelectDataReader(UMC::ModuleContext& rContext,
                                        UMC::DataReader*&   rpDataReader,
                                        Ipp32u ulPrefferedReader);

    static UMC::Status SelectAudioRender(UMC::AudioRenderParams& rAudioRenderInit,
                                         UMC::AudioRender*& rpRender,
                                         Ipp32u ulPrefferedRender = UMC::DEF_AUDIO_RENDER);

    static UMC::Status SelectAudioRender(UMC::sAudioStreamInfo& rAudioInfo,
                                         UMC::ModuleContext& rContext,
                                         UMC::AudioRender*& rpAudioRender,
                                         Ipp32u ulPrefferedRender = UMC::DEF_AUDIO_RENDER,
                                         vm_char*  szOutPutAudio=0);

    static UMC::Status SelectAudioDecoder(UMC::sAudioStreamInfo& rAudioInfo,
                                          UMC::BaseCodec*& rpAudioDecoder);

    static UMC::Status SelectDTAudioDecoder(UMC::sAudioStreamInfo& rAudioInfo,
                                            UMC::BaseCodec*& rpAudioDecoder,
                                            UMC::DualThreadedCodec*& rpDSAudioCodec,
                                            UMC::MediaBuffer*& rpMediaBuffer,
                                            UMC::MediaData*);

    // select splitter for various media source(s)
    static UMC::Status SelectSplitter(UMC::SourceInfo *lpSourceInfo,
                                      Ipp32u uiSplitterFlags,
                                      UMC::Splitter*& rpSplitter,
                                      Ipp32u uiSelectedVideoPID = UMC::SELECT_ANY_VIDEO_PID,
                                      Ipp32u uiSelectedAudioPID = UMC::SELECT_ANY_AUDIO_PID);

    // select splitter for media file
    static UMC::Status SelectSplitter(UMC::DataReader* pDataReader,
                                      Ipp32u uiSplitterFlags,
                                      UMC::Splitter*& rpSplitter,
                                      Ipp32u uiSelectedVideoPID = UMC::SELECT_ANY_VIDEO_PID,
                                      Ipp32u uiSelectedAudioPID = UMC::SELECT_ANY_AUDIO_PID);

    static UMC::Status SelectVideoDecoder(UMC::sVideoStreamInfo& rVideoInfo,
                                          UMC::MediaData*        pDecSpecInfo,
                                          Ipp32u                 lInterpolation,
                                          Ipp32u                 lDeinterlacing,
                                          Ipp32u                 numThreads,
                                          Ipp32u                 ulVideoDecoderFlags,
                                          UMC::BaseCodec&        rColorConverter,
                                          UMC::VideoDecoder*&    rpVideoDecoder);

    static UMC::Status SelectVideoRender(UMC::ModuleContext& rContext,
                                         UMC::sClipInfo ClipInfo,
                                         UMC::RECT rectDisp,
                                         UMC::RECT rectRange,
                                         UMC::ColorFormat RenderCFormat,
                                         Ipp32u ulVideoRenderFlags,
                                         UMC::VideoRender*& rpVideoRender,
                                         Ipp32u ulPrefferedRender = UMC::DEF_VIDEO_RENDER,
                                         vm_char * szOutputVideo=0);

    static UMC::Status SelectVideoRender(UMC::VideoRenderParams& rVideoRenderParams,
                                         UMC::ModuleContext& rContext,
                                         UMC::VideoRender*& rpRender,
                                         Ipp32u ulPrefferedRender = UMC::DEF_VIDEO_RENDER);
};

#endif // __CODEC_PIPELINE_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -