Index: chrome/gpu/gpu_video_decoder_mft.h |
=================================================================== |
--- chrome/gpu/gpu_video_decoder_mft.h (revision 55418) |
+++ chrome/gpu/gpu_video_decoder_mft.h (working copy) |
@@ -1,98 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_GPU_GPU_VIDEO_DECODER_MFT_H_ |
-#define CHROME_GPU_GPU_VIDEO_DECODER_MFT_H_ |
- |
-#include "build/build_config.h" // For OS_WIN. |
- |
-#if defined(OS_WIN) |
- |
-#include <d3d9.h> |
-#include <dxva2api.h> |
-#include <evr.h> |
-#include <initguid.h> |
-#include <mfapi.h> |
-#include <mferror.h> |
-#include <mfidl.h> |
-#include <shlwapi.h> |
-#include <wmcodecdsp.h> |
- |
-#include <deque> |
- |
-#include "base/scoped_comptr_win.h" |
-#include "chrome/gpu/gpu_video_decoder.h" |
- |
-class GpuVideoDecoderMFT : public GpuVideoDecoder { |
- public: |
- virtual bool DoInitialize(const GpuVideoDecoderInitParam& init_param, |
- GpuVideoDecoderInitDoneParam* done_param); |
- virtual bool DoUninitialize(); |
- virtual void DoFlush(); |
- virtual void DoEmptyThisBuffer(const GpuVideoDecoderInputBufferParam& buffer); |
- virtual void DoFillThisBuffer(const GpuVideoDecoderOutputBufferParam& frame); |
- virtual void DoFillThisBufferDoneACK(); |
- |
- private: |
- GpuVideoDecoderMFT(const GpuVideoDecoderInfoParam* param, |
- GpuChannel* channel_, |
- base::ProcessHandle handle); |
- |
- friend class GpuVideoService; |
- |
- // TODO(jiesun): Find a way to move all these to GpuVideoService.. |
- static bool StartupComLibraries(); |
- static void ShutdownComLibraries(); |
- bool CreateD3DDevManager(HWND video_window); |
- |
- // helper. |
- bool InitMediaFoundation(); |
- bool InitDecoder(); |
- bool CheckDecoderDxvaSupport(); |
- |
- bool SetDecoderMediaTypes(); |
- bool SetDecoderInputMediaType(); |
- bool SetDecoderOutputMediaType(const GUID subtype); |
- bool SendMFTMessage(MFT_MESSAGE_TYPE msg); |
- bool GetStreamsInfoAndBufferReqs(); |
- |
- // Help function to create IMFSample* out of input buffer. |
- // data are copied into IMFSample's own IMFMediaBuffer. |
- // Client should Release() the IMFSample*. |
- static IMFSample* CreateInputSample(uint8* data, |
- int32 size, |
- int64 timestamp, |
- int64 duration, |
- int32 min_size); |
- |
- bool DoDecode(); |
- |
- ScopedComPtr<IDirect3D9> d3d9_; |
- ScopedComPtr<IDirect3DDevice9> device_; |
- ScopedComPtr<IDirect3DDeviceManager9> device_manager_; |
- ScopedComPtr<IMFTransform> decoder_; |
- |
- MFT_INPUT_STREAM_INFO input_stream_info_; |
- MFT_OUTPUT_STREAM_INFO output_stream_info_; |
- |
- std::deque<ScopedComPtr<IMFSample> > input_buffer_queue_; |
- bool output_transfer_buffer_busy_; |
- |
- typedef enum { |
- kNormal, // normal playing state. |
- kFlushing, // upon received Flush(), before FlushDone() |
- kEosFlush, // upon input EOS received. |
- kStopped, // upon output EOS received. |
- } State; |
- State state_; |
- |
- int32 pending_request_; |
- |
- DISALLOW_COPY_AND_ASSIGN(GpuVideoDecoderMFT); |
-}; |
- |
-#endif |
- |
-#endif // CHROME_GPU_GPU_VIDEO_DECODER_MFT_H_ |
- |