📄 umc_muxer.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_MUXER_H__#define __UMC_MUXER_H__#include "umc_media_data.h"#include "umc_structures.h"namespace UMC{// forward declaration(s)class DataWriter;class MuxerParams{ DYNAMIC_CAST_DECL_BASE(MuxerParams)public: // Default constructor MuxerParams() { m_SystemType = UNDEF_STREAM; m_lFlags = 0; m_lChankSizeLimit = 0; m_lVideoBitRate = 0; m_lAudioBitRate = 0; m_dFrameRate = 0.0; m_lpDataWriter = NULL; } // Destructor virtual ~MuxerParams(){} SystemStreamType m_SystemType; // (SystemStreamType) subtype of media stream vm_var32 m_lFlags; // (vm_var32) muxer flag(s) vm_var32 m_lChankSizeLimit; // (vm_var32) max size of data chunk vm_var32 m_lVideoBitRate; // (vm_var32) bitrate of encoded video vm_var32 m_lAudioBitRate; // (vm_var32) bitrate of encoded audio double m_dFrameRate; // (double) framerate of video stream DataWriter *m_lpDataWriter; // (DataWriter *) pointer to using data writer};class MuxerInfo{ DYNAMIC_CAST_DECL_BASE(MuxerInfo)public: // Default constructor MuxerInfo(void) { m_lMuxerFlags = 0; memset(&m_AudioInfo, 0, sizeof(m_AudioInfo)); memset(&m_VideoInfo, 0, sizeof(m_VideoInfo)); memset(&m_SystemInfo, 0, sizeof(m_SystemInfo)); } // Destructor virtual ~MuxerInfo(void){} vm_var32 m_lMuxerFlags; // (vm_var32) muxer flag(s) AudioStreamInfo m_AudioInfo; // (AudioStreamInfo) encoded audio stream info VideoStreamInfo m_VideoInfo; // (VideoStreamInfo) encoded video stream info SystemStreamInfo m_SystemInfo; // (SystemStreamInfo) resulted stream info};enum MuxerProcessStatus{ PROCESSING_NOT_STARTED = -1, PROCESSING_FINISHED = 0, PROCESSING_IN_PROGRESS = 1};class Muxer{ DYNAMIC_CAST_DECL_BASE(Muxer)public: // Default constructor Muxer() { m_lpDataWriter = NULL; m_lInternalProcStatus = -1; } // Destructor virtual ~Muxer(){} // Get stream type static SystemStreamType GetStreamType(DataWriter * /* lpWriter */) { return MPEG2_PROGRAMM_STREAM;} // Close muxer and release all resources virtual Status Close(void) = 0; // Initialize muxer virtual Status Init(MuxerParams *lpInit) = 0; // Add new video potion virtual Status PutVideoData(MediaData *lpData, Status StreamStatus = UMC_OK) = 0; // Add new audio potion virtual Status PutAudioData(MediaData *lpData, Status StreamStatus = UMC_OK) = 0; // Get muxer info virtual Status GetInfo(MuxerInfo *lpInfo) = 0; //must return MuxerProcessStatus value virtual Status GetMuxerStatus(vm_var32 & /*sts*/) { return UMC::UMC_OK; };protected: DataWriter *m_lpDataWriter; // (DataWriter *) pointer to using data writer MuxerInfo m_Info; // (MuxerInfo) current muxer info signed int m_lInternalProcStatus; // UTA};} // end namespace UMC#endif // __UMC_MUXER_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -