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

📄 fssapmp4parser_audioop.h

📁 6410BSP1
💻 H
字号:
//------------------------------------------------------------------------------
// File: fSsapMp4Parser_AudioOp.h
//
// Desc: define CMP4ParserAudioOp class
//
// Copyright (c) 2008, Samsung Electronics S.LSI.  All rights reserved.
//------------------------------------------------------------------------------

#if !defined(_SYSLSI_FSSAP_MP4_PARSER_AUDIO_OP_H_)
#define _SYSLSI_FSSAP_MP4_PARSER_AUDIO_OP_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


class CMP4ParserAudioOp : public CSourceStream, public CSourceSeeking
{
public:
    CMP4ParserAudioOp(HRESULT *phr, CMP4ParserFilter *pParent, LPCWSTR pPinName);
    virtual ~CMP4ParserAudioOp(void);

// Attributes
public:

// Operations
public:

// Overrides
protected:
    // Override CSourceStream methods.
    virtual HRESULT GetMediaType(CMediaType *pMediaType);
    virtual HRESULT DecideBufferSize(IMemAllocator *pMemAlloc, ALLOCATOR_PROPERTIES *pProperties);
    virtual HRESULT FillBuffer(IMediaSample *pSample);

    virtual HRESULT OnThreadCreate(void);
    virtual HRESULT OnThreadDestroy(void);
#if 1
    // The following methods support seeking.
    virtual HRESULT OnThreadStartPlay(void);
    virtual HRESULT ChangeStart();    // Inherited from CSourceSeeking
    virtual HRESULT ChangeStop();    // Inherited from CSourceSeeking
    virtual HRESULT ChangeRate();    // Inherited from CSourceSeeking


    STDMETHODIMP SetTimeFormat(const GUID* pFormat);
    STDMETHODIMP GetTimeFormat(GUID* pFormat);
    STDMETHODIMP IsUsingTimeFormat(const GUID* pFormat);
    STDMETHODIMP IsFormatSupported(const GUID* pFormat);
    STDMETHODIMP QueryPreferredFormat(GUID* pFormat);
    STDMETHODIMP ConvertTimeFormat(LONGLONG* pTarget, const GUID* pTargetFormat, LONGLONG Source, const GUID* pSourceFormat);
    STDMETHODIMP SetPositions(LONGLONG* pCurrent, DWORD dwCurrentFlags, LONGLONG* pStop, DWORD dwStopFlags);
    STDMETHODIMP GetDuration(LONGLONG* pDuration);
/*
    STDMETHODIMP GetStopPosition(LONGLONG* pStop);


    STDMETHODIMP GetCurrentPosition(LONGLONG* pCurrent);
*/
    STDMETHODIMP GetPositions(LONGLONG* pCurrent, LONGLONG* pStop);
/*
    STDMETHODIMP GetAvailable(LONGLONG* pEarliest, LONGLONG* pLatest);
    STDMETHODIMP SetRate(double dRate);
    STDMETHODIMP GetRate(double* pdRate);
*/

    STDMETHODIMP SetRate(double dRate);
    STDMETHODIMP GetCapabilities(DWORD* pCapabilities);

    STDMETHODIMP Notify(IBaseFilter *pSender, Quality q) { return E_FAIL; }


// Implementations
protected:
    // IUnknown interface
    STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void **ppv)
    {
        if (riid == IID_IMediaSeeking) 
            return CSourceSeeking::NonDelegatingQueryInterface(riid, ppv);
        else
            return CSourceStream::NonDelegatingQueryInterface(riid, ppv);
    }

    void UpdateFromSeek();
#endif

// member variables
private:
    CCritSec        m_cSharedState;

    bool            m_bDiscontinuity;

    REFERENCE_TIME    m_rtMediaTime;
    REFERENCE_TIME    m_rtSampleTime;
    REFERENCE_TIME    m_rtRepeatTime;

    int             m_nSampleId;
};


#endif // !defined(_SYSLSI_FSSAP_MP4_PARSER_AUDIO_OP_H_)

⌨️ 快捷键说明

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