现在的位置: 首页 > 综合 > 正文

MXF 文件解析,MXF Parse, MXF code. MXF文件格式

2013年12月11日 ⁄ 综合 ⁄ 共 2307字 ⁄ 字号 评论关闭

http://www.cnitblog.com/dvb-dvb/archive/2009/03/20/55573.html

 

class CMXFBaseTable :
    public CMXFBaseFun
{
public:
    CMXFBaseTable(void);
    ~CMXFBaseTable(void);
    BOOL Init();

    int Prase_Identification(BYTE *pBuf,DWORD PayloadLen);
    int Prase_Preface(BYTE *pBuf,DWORD PayloadLen);
    int Prase_sequence(BYTE *pBuf,DWORD PayloadLen);
    int Prase_RealData(BYTE *pBuf,DWORD PayloadLen);
    int Prase_SourceClip(BYTE *pBuf,DWORD PayloadLen);
    int Prase_TimeCode_Component(BYTE *pBuf,DWORD PayloadLen);
    int Prase_Content_storage(BYTE *pBuf,DWORD PayloadLen);
    int Prase_Material_pack(BYTE *pBuf,DWORD PayloadLen);
    int Prase_Track(BYTE *pBuf,DWORD PayloadLen,CString strPackageName);
    int PraseEssence_Container_data(BYTE *pBuf,DWORD PayloadLen);
    int PraseMetadata_CDCI_Essence_Desc(BYTE *pBuf,DWORD PayloadLen,BYTE nMpeg_desc = 0);
    int Prase_SourcePack(BYTE *pBuf,DWORD PayloadLen);
    int PraseSound_Essence_desc(BYTE *pBuf,DWORD PayloadLen,BYTE nIsPbuf47 = 0);
    int Prase_Multiple_desc(BYTE *pBuf,DWORD PayloadLen);
    int Prase_Generic_pack(BYTE *pBuf,DWORD PayloadLen,CString strPackageName,DWORD &CurOffset,BOOL ISMaterial_pack);
   int Prase_File_Descriptor(BYTE *pBuf,DWORD PayloadLen,CStringstrPackageName,DWORD &CurOffset,CMXF_Base_Descriptor*pMulti_desc,BOOL bDefaultIsError = TRUE);
    intPrase_Generic_Picture(BYTE *pBuf,DWORD PayloadLen,CStringstrPackageName,DWORD &CurOffset,BOOL bDefaultIsError = TRUE);
   int CDCIEssenceDescriptorType(BYTE *pBuf,DWORD PayloadLen,CStringstrPackageName,DWORD &CurOffset,BOOL bDefaultIsError = TRUE);
   int Prase_Generic_Sound(BYTE *pBuf,DWORD PayloadLen,CStringstrPackageName,DWORD &CurOffset,BOOL bDefaultIsError = TRUE);

    int Prase_Unknow_Sound(BYTE *pBuf,DWORD PayloadLen,CString strPackageName,DWORD &CurOffset,BOOL bDefaultIsError = TRUE);
   int Mpeg_Video_Descriptor(BYTE *pBuf,DWORD PayloadLen,CStringstrPackageName,DWORD &CurOffset,BOOL bDefaultIsErro = TRUE);

    int Prase_DM_Segment(BYTE *pBuf,DWORD PayloadLen);
    int Prase_DM_SourceClip(BYTE *pBuf,DWORD PayloadLen);

    void Release_all_list();
public:
    
    TracksMap *m_pTracksMap;
protected:
    CMXF_Preface *m_pPreface;

    //For previous package,It is not parsed.
    MXF_SEQUENCE_LIST m_Unknow_seqList;

    //For previous package,Its ID not found.
    MXF_SOURCECLIP_LIST m_Unknow_SourClipList;

    MXF_SUB_DESCRIPTOR_LIST m_Unknow_SubDescList;

private:
    int    CheckGeneration_UID(CString strLogName,BYTE *pBuf,DWORD PayloadLen);

抱歉!评论已关闭.