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

本文介绍了一个名为CMXFBaseTable的类,该类继承自CMXFBaseFun,主要用于解析MXF文件的各种组件,包括标识、前言、序列、实际数据、源片段等。提供了多个解析方法针对不同类型的MXF数据包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);

03-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值