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

📄 umc_splitter.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 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-2005 Intel Corporation. All Rights Reserved.//*/#ifndef __UMC_SPLITTER_H__#define __UMC_SPLITTER_H__#include "umc_structures.h"#include "umc_data_reader.h"#include "umc_dynamic_cast.h"namespace UMC{class MediaData;class SplitterParams{    DYNAMIC_CAST_DECL_BASE(SplitterParams)public:    // Default constructor    SplitterParams();    // Destructor    virtual ~SplitterParams();    vm_var32 m_lFlags;                                          // (vm_var32) splitter's flags    DataReader *m_pDataReader;                                  // (DataReader *) pointer to data reader    vm_var32    m_uiSelectedVideoPID;                           // ID for video stream chosen by user    vm_var32    m_uiSelectedAudioPID;                           // ID for audio stream chosen by user};class SplitterInfo{    DYNAMIC_CAST_DECL_BASE(SplitterInfo)public:    // Default constructor    SplitterInfo();    // Destructor    virtual ~SplitterInfo();    // common fields    vm_var32 m_splitter_flags;    AudioStreamInfo m_audio_info;                               // (AudioStreamInfo) audio track 0 info    VideoStreamInfo m_video_info;                               // (VideoStreamInfo) video track 0 info    SystemStreamInfo m_system_info;                             // (SystemStreamInfo) media stream info    // memory for auxilary tracks will be allocated inside    // GetInfo method user should free it then    AudioStreamInfo *m_audio_info_aux; // auxilary audio tracks 1..    VideoStreamInfo *m_video_info_aux; // auxilary video tracks 1..    int number_audio_tracks;                                    // (int) number of available audio tracks    int number_video_tracks;                                    // (int) number of available video tracks};/*//  Class:       Splitter////  Notes:       Base abstract class of splitter. Class describes//               the high level interface of abstract splitter of media stream.//               All specific ( avi, mpeg2, mpeg4 etc ) must be implemented in//               derevied classes.//               Splitter uses this class to obtain data//*/class Splitter{    DYNAMIC_CAST_DECL_BASE(Splitter)public:    Splitter():m_pDataReader(NULL) {}    // Destructor    virtual ~Splitter() {}    // Get media data type    static SystemStreamType GetStreamType(DataReader *dr);    // Initialize splitter    virtual Status Init(SplitterParams& rInit) = 0;    // Close splitter and free all resources    virtual Status Close() = 0;    // Start reading media data    virtual Status Run() { return UMC_OK; }    // Stop reading media data    virtual Status Stop() = 0;    // Get next video data from track    virtual Status GetNextVideoData(MediaData* data, vm_var32 /*track_idx*/) = 0;    // Get next audio data from track    virtual Status GetNextAudioData(MediaData* data, vm_var32 /*track_idx*/) = 0;    // Get next video data    Status GetNextVideoData(MediaData* data)    { return GetNextVideoData(data, 0); }    // Get next audio data    Status GetNextAudioData(MediaData* data)    { return GetNextAudioData(data, 0); }    // Check next video data    virtual Status CheckNextVideoData(MediaData* /*data*/, vm_var32 /*track_idx*/)    {return UMC_NOT_IMPLEMENTED;}    // Check next audio data    virtual Status CheckNextAudioData(MediaData* /*data*/, vm_var32 /*track_idx*/)    {return UMC_NOT_IMPLEMENTED;}    // Get next video data    Status CheckNextVideoData(MediaData* data)    { return CheckNextVideoData(data, 0); }    // Get next audio data    Status CheckNextAudioData(MediaData* data)    { return CheckNextAudioData(data, 0); }    // Set position    virtual Status SetPosition(double pos) = 0;    // Get position    virtual Status GetPosition(double &pos) = 0;    // Get splitter info    virtual Status GetInfo(SplitterInfo* pInfo) = 0;    // Set playback rate    virtual Status SetRate(double /*play_rate*/) { return UMC_NOT_IMPLEMENTED; }protected:    DataReader *m_pDataReader;                                  // (DataReader *) pointer to data reader    SplitterInfo m_info;                                        // (SplitterInfo) splitter info};} // namespace UMC#endif /* __UMC_SPLITTER_H__ */

⌨️ 快捷键说明

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