blob: 5c9855e0a3190eb2b5dfb65d975ef8c0fdae4c13 [file]
// Copyright (c) 2010 The WebM project authors. All Rights Reserved.
//
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file in the root of the source
// tree. An additional intellectual property rights grant can be found
// in the file PATENTS. All contributing project authors may
// be found in the AUTHORS file in the root of the source tree.
#pragma once
#include "webmsplitpin.h"
//#include "graphutil.h"
#include "mkvreader.h"
namespace MkvParser
{
class Segment;
}
namespace WebmSplit
{
class Inpin : public Pin
{
Inpin(const Inpin&);
Inpin& operator=(const Inpin&);
public:
explicit Inpin(Filter*);
//IUnknown interface:
HRESULT STDMETHODCALLTYPE QueryInterface(const IID&, void**);
ULONG STDMETHODCALLTYPE AddRef();
ULONG STDMETHODCALLTYPE Release();
//IPin interface:
HRESULT STDMETHODCALLTYPE QueryAccept(const AM_MEDIA_TYPE*);
HRESULT STDMETHODCALLTYPE Connect(IPin*, const AM_MEDIA_TYPE*);
//HRESULT STDMETHODCALLTYPE Disconnect();
HRESULT STDMETHODCALLTYPE ReceiveConnection(
IPin*,
const AM_MEDIA_TYPE*);
HRESULT STDMETHODCALLTYPE QueryInternalConnections(
IPin**,
ULONG*);
HRESULT STDMETHODCALLTYPE EndOfStream();
HRESULT STDMETHODCALLTYPE BeginFlush();
HRESULT STDMETHODCALLTYPE EndFlush();
HRESULT STDMETHODCALLTYPE NewSegment(
REFERENCE_TIME,
REFERENCE_TIME,
double);
protected:
HRESULT GetName(PIN_INFO&) const;
HRESULT OnDisconnect();
public:
MkvReader m_reader;
};
} //end namespace WebmSplit