umc_vob_reader.h

来自「audio-video-codecs.rar语音编解码器」· C头文件 代码 · 共 66 行

H
66
字号
/*//////////////////////////////////////////////////////////////////////////////
//
//                  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 __UMC_VOB_READER_H__
#define __UMC_VOB_READER_H__

#include "vm_mmap.h"
#include "vm_types.h"
#include "ippdefs.h"
#include "umc_data_reader.h"
#include "umc_file_reader.h"

namespace UMC
{
    typedef struct _VobStruct {
        vm_char    vob_name[MAXIMUM_PATH];
        Ipp32s     vob_dig;
        Ipp64u     vob_size;
        _VobStruct *prevPtr;
    } VobStruct;

    class VobReader : public DataReader
    {
        DYNAMIC_CAST_DECL(VobReader, DataReader);
    public:
        virtual Status Init(DataReaderParams *InitParams);
        virtual Status Close();
        virtual Status Reset();
        virtual Status ReadData(void *data, Ipp32u *nsize);
        virtual Status MovePosition(Ipp64u npos);
        virtual Status CacheData(void *data, Ipp32u *nsize, Ipp32s how_far);
        virtual Status SetPosition(Ipp64f pos);

        // return position in the stream
        virtual Ipp64u GetPosition();

        // return Vob_size
        virtual Ipp64u GetSize();

        VobReader();
        virtual ~VobReader();

    protected:
        vm_char        **m_vob_list;
        Ipp32s         *m_vob_dig;
        Ipp32s         m_vob_current;
        Ipp32s         m_vob_num;
        Ipp64u         m_vob_size_sum;
        Ipp64u         *m_vob_size;

        Status         FindVobFiles(vm_char *file_name);

        UMC::FileReader FileReaderCur;
    };

} // namespace UMC

#endif /* __UMC_VOB_READER_H__ */

⌨️ 快捷键说明

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