Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4450)

Unified Diff: chrome/renderer/gpu_video_decoder_host.h

Issue 3020077: Revert 55405 - Special thanks for in-ming cheng's MFT hardware decodering cod... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/renderer/gpu_channel_host.cc ('k') | chrome/renderer/gpu_video_decoder_host.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/gpu_video_decoder_host.h
===================================================================
--- chrome/renderer/gpu_video_decoder_host.h (revision 55418)
+++ chrome/renderer/gpu_video_decoder_host.h (working copy)
@@ -1,126 +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_RENDERER_GPU_VIDEO_DECODER_HOST_H_
-#define CHROME_RENDERER_GPU_VIDEO_DECODER_HOST_H_
-
-#include <deque>
-
-#include "base/singleton.h"
-#include "chrome/common/gpu_video_common.h"
-#include "chrome/renderer/gpu_channel_host.h"
-#include "ipc/ipc_channel_proxy.h"
-#include "media/base/buffers.h"
-#include "media/base/video_frame.h"
-
-using media::VideoFrame;
-using media::Buffer;
-
-class GpuVideoServiceHost;
-
-class GpuVideoDecoderHost
- : public base::RefCountedThreadSafe<GpuVideoDecoderHost>,
- public IPC::Channel::Listener {
- public:
- class EventHandler {
- public:
- virtual void OnInitializeDone(
- bool success,
- const GpuVideoDecoderInitDoneParam& param) = 0;
- virtual void OnUninitializeDone() = 0;
- virtual void OnFlushDone() = 0;
- virtual void OnEmptyBufferDone(scoped_refptr<Buffer> buffer) = 0;
- virtual void OnFillBufferDone(scoped_refptr<VideoFrame> frame) = 0;
- virtual void OnDeviceError() = 0;
- };
-
- typedef enum {
- kStateUninitialized,
- kStateNormal,
- kStateError,
- kStateFlushing,
- } GpuVideoDecoderHostState;
-
- // IPC::Channel::Listener.
- virtual void OnChannelConnected(int32 peer_pid) {}
- virtual void OnChannelError();
- virtual void OnMessageReceived(const IPC::Message& message);
-
- bool Initialize(const GpuVideoDecoderInitParam& param);
- bool Uninitialize();
- void EmptyThisBuffer(scoped_refptr<Buffer> buffer);
- void FillThisBuffer(scoped_refptr<VideoFrame> frame);
- bool Flush();
-
- int32 decoder_id() { return decoder_info_.decoder_id_; }
- int32 route_id() { return decoder_info_.decoder_route_id_; }
- int32 my_route_id() { return decoder_info_.decoder_host_route_id_; }
-
- virtual ~GpuVideoDecoderHost() {}
-
- private:
- GpuVideoDecoderHost(GpuVideoServiceHost* service_host,
- GpuChannelHost* channel_host,
- EventHandler* event_handler,
- GpuVideoDecoderInfoParam decoder_info)
- : gpu_video_service_host_(service_host),
- channel_host_(channel_host),
- event_handler_(event_handler),
- decoder_info_(decoder_info),
- buffer_id_serial_(0),
- state_(kStateUninitialized),
- input_buffer_busy_(false) {}
- friend class GpuVideoServiceHost;
-
- // Input message handler.
- void OnInitializeDone(const GpuVideoDecoderInitDoneParam& param);
- void OnUninitializeDone();
- void OnFlushDone();
- void OnEmptyThisBufferDone();
- void OnFillThisBufferDone(const GpuVideoDecoderOutputBufferParam& param);
- void OnEmptyThisBufferACK();
-
- // Helper function.
- void SendInputBufferToGpu();
-
- // We expect that GpuVideoServiceHost's always available during our life span.
- GpuVideoServiceHost* gpu_video_service_host_;
-
- scoped_refptr<GpuChannelHost> channel_host_;
-
- // We expect that the client of us will always available during our life span.
- EventHandler* event_handler_;
-
- // Globally identify this decoder in the GPU process.
- GpuVideoDecoderInfoParam decoder_info_;
-
- // Input buffer id serial number generator.
- int32 buffer_id_serial_;
-
- // Hold information about GpuVideoDecoder configuration.
- GpuVideoDecoderInitParam init_param_;
-
- // Hold information about output surface format, etc.
- GpuVideoDecoderInitDoneParam done_param_;
-
- // Current state of video decoder.
- GpuVideoDecoderHostState state_;
-
- // We are not able to push all received buffer to gpu process at once.
- std::deque<scoped_refptr<Buffer> > input_buffer_queue_;
-
- // Currently we do not use ring buffer in input buffer, therefore before
- // GPU process had finished access it, we should not touch it.
- bool input_buffer_busy_;
-
- // Transfer buffers for both input and output.
- // TODO(jiesun): remove output buffer when hardware composition is ready.
- scoped_ptr<base::SharedMemory> input_transfer_buffer_;
- scoped_ptr<base::SharedMemory> output_transfer_buffer_;
-
- DISALLOW_COPY_AND_ASSIGN(GpuVideoDecoderHost);
-};
-
-#endif // CHROME_RENDERER_GPU_VIDEO_DECODER_HOST_H_
-
« no previous file with comments | « chrome/renderer/gpu_channel_host.cc ('k') | chrome/renderer/gpu_video_decoder_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698