summaryrefslogtreecommitdiffstats
path: root/media/video/mft_h264_decode_engine.h
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 05:46:50 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-08 05:46:50 +0000
commitd741b57d94f8d8ec49cc597588ca2780d38c06d9 (patch)
tree039cac25a8f85ca5d4da053fac22469d225a20e8 /media/video/mft_h264_decode_engine.h
parent1ffca254514b4da587e46d1367b217eca22d5932 (diff)
downloadchromium_src-d741b57d94f8d8ec49cc597588ca2780d38c06d9.zip
chromium_src-d741b57d94f8d8ec49cc597588ca2780d38c06d9.tar.gz
chromium_src-d741b57d94f8d8ec49cc597588ca2780d38c06d9.tar.bz2
Revert "Move MFT H264 video decoder implementation and connect it to GpuVideoDecoder"
This reverts commit 8462483619e253dca3717d51e340ed839a6cab1d. Revert "Fix build failure." This reverts commit 8dcd363637ac2e59f9472c0793a0b1fd3c2ad4c7. TBR=scherkus BUG=None TEST=None Review URL: http://codereview.chromium.org/3601019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61922 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/video/mft_h264_decode_engine.h')
-rw-r--r--media/video/mft_h264_decode_engine.h102
1 files changed, 0 insertions, 102 deletions
diff --git a/media/video/mft_h264_decode_engine.h b/media/video/mft_h264_decode_engine.h
deleted file mode 100644
index e13dce9..0000000
--- a/media/video/mft_h264_decode_engine.h
+++ /dev/null
@@ -1,102 +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.
-//
-// MFT H.264 decode engine.
-
-#ifndef MEDIA_VIDEO_MFT_H264_DECODE_ENGINE_H_
-#define MEDIA_VIDEO_MFT_H264_DECODE_ENGINE_H_
-
-// TODO(imcheng): Get rid of this header by:
-// - forward declaring IMFTransform and its IID as in
-// mft_h264_decode_engine_context.h
-// - turning the general SendMFTMessage method into specific methods
-// (SendFlushMessage, SendDrainMessage, etc.) to avoid having
-// MFT_MESSAGE_TYPE in here
-#include <mfidl.h>
-
-#include "base/gtest_prod_util.h"
-#include "base/scoped_comptr_win.h"
-#include "media/video/video_decode_engine.h"
-
-struct IDirect3DSurface9;
-extern "C" const GUID IID_IDirect3DSurface9;
-
-class MessageLoop;
-
-namespace media {
-
-class VideoDecodeContext;
-
-class MftH264DecodeEngine : public media::VideoDecodeEngine {
- public:
- typedef enum {
- kUninitialized, // un-initialized.
- kNormal, // normal playing state.
- kFlushing, // upon received Flush(), before FlushDone()
- kEosDrain, // upon input EOS received.
- kStopped, // upon output EOS received.
- } State;
-
- explicit MftH264DecodeEngine(bool use_dxva);
- virtual ~MftH264DecodeEngine();
-
- // VideoDecodeEngine implementation.
- virtual void Initialize(MessageLoop* message_loop,
- media::VideoDecodeEngine::EventHandler* event_handler,
- VideoDecodeContext* context,
- const VideoCodecConfig& config);
- virtual void Uninitialize();
- virtual void Flush();
- virtual void Seek();
- virtual void ConsumeVideoSample(scoped_refptr<Buffer> buffer);
- virtual void ProduceVideoFrame(scoped_refptr<VideoFrame> frame);
-
- bool use_dxva() const { return use_dxva_; }
- State state() const { return state_; }
-
- private:
- friend class MftH264DecodeEngineTest;
- FRIEND_TEST_ALL_PREFIXES(MftH264DecodeEngineTest, LibraryInit);
-
- // TODO(jiesun): Find a way to move all these to GpuVideoService..
- static bool StartupComLibraries();
- static void ShutdownComLibraries();
- bool EnableDxva();
-
- bool InitInternal();
- bool InitDecodeEngine();
- void AllocFramesFromContext();
- bool CheckDecodeEngineDxvaSupport();
- bool SetDecodeEngineMediaTypes();
- bool SetDecodeEngineInputMediaType();
- bool SetDecodeEngineOutputMediaType(const GUID subtype);
- bool SendMFTMessage(MFT_MESSAGE_TYPE msg);
- bool GetStreamsInfoAndBufferReqs();
- bool DoDecode();
- void OnAllocFramesDone();
- void OnUploadVideoFrameDone(
- ScopedComPtr<IDirect3DSurface9, &IID_IDirect3DSurface9> surface,
- scoped_refptr<media::VideoFrame> frame);
-
- bool use_dxva_;
- ScopedComPtr<IMFTransform> decode_engine_;
-
- MFT_INPUT_STREAM_INFO input_stream_info_;
- MFT_OUTPUT_STREAM_INFO output_stream_info_;
-
- State state_;
-
- VideoDecodeEngine::EventHandler* event_handler_;
- VideoCodecConfig config_;
- VideoCodecInfo info_;
-
- VideoDecodeContext* context_;
- std::vector<scoped_refptr<VideoFrame> > output_frames_;
-
- DISALLOW_COPY_AND_ASSIGN(MftH264DecodeEngine);
-};
-
-} // namespace media
-
-#endif // MEDIA_VIDEO_MFT_H264_DECODE_ENGINE_H_