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

Unified Diff: media/video/omx_video_decode_engine.h

Issue 7066071: Removing defunct OpenMAX code. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: removed tab Created 9 years, 7 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 | « media/tools/player_x11/player_x11.cc ('k') | media/video/omx_video_decode_engine.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/video/omx_video_decode_engine.h
diff --git a/media/video/omx_video_decode_engine.h b/media/video/omx_video_decode_engine.h
deleted file mode 100644
index e9cc756ecfe278a2d2805609fe36dd700317a365..0000000000000000000000000000000000000000
--- a/media/video/omx_video_decode_engine.h
+++ /dev/null
@@ -1,246 +0,0 @@
-// Copyright (c) 2011 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 MEDIA_VIDEO_OMX_VIDEO_DECODE_ENGINE_H_
-#define MEDIA_VIDEO_OMX_VIDEO_DECODE_ENGINE_H_
-
-#include <queue>
-#include <utility>
-#include <vector>
-
-#include "base/callback_old.h"
-#include "base/memory/scoped_ptr.h"
-#include "media/omx/omx_configurator.h"
-#include "media/video/video_decode_engine.h"
-#include "third_party/openmax/il/OMX_Component.h"
-#include "third_party/openmax/il/OMX_Core.h"
-#include "third_party/openmax/il/OMX_Video.h"
-
-namespace media {
-
-class OmxVideoDecodeEngine : public VideoDecodeEngine {
- public:
- OmxVideoDecodeEngine();
- virtual ~OmxVideoDecodeEngine();
-
- // Implementation of the VideoDecodeEngine Interface.
- virtual void Initialize(MessageLoop* message_loop,
- VideoDecodeEngine::EventHandler* event_handler,
- VideoDecodeContext* context,
- const VideoDecoderConfig& config);
- virtual void ConsumeVideoSample(scoped_refptr<Buffer> buffer);
- virtual void ProduceVideoFrame(scoped_refptr<VideoFrame> frame);
- virtual void Uninitialize();
- virtual void Flush();
- virtual void Seek();
-
- // Subclass can provide a different value.
- virtual int current_omx_spec_version() const;
-
- private:
- enum OmxIlState {
- kIlNone,
- kIlLoaded,
- kIlIdle,
- kIlExecuting,
- kIlPause,
- kIlInvalid,
- kIlUnknown,
- };
-
- enum OmxIlClientState {
- kClientNotInitialized,
- kClientInitializing,
- kClientRunning,
- kClientStopping,
- kClientStopped,
- kClientPausing,
- kClientFlushing,
- kClientError,
- };
-
- enum OmxIlPortState {
- kPortDisabled,
- kPortEnabling,
- kPortEnabled,
- kPortDisabling,
- };
-
- typedef Callback0::Type Callback;
-
- // calls into other classes
- void FinishEmptyBuffer(scoped_refptr<Buffer> buffer);
- void FinishFillBuffer(OMX_BUFFERHEADERTYPE* buffer);
- // Helper method to perform tasks when this object is stopped.
- void OnStopDone();
-
- // Transition method sequence for initialization
- bool CreateComponent();
- void DoneSetStateIdle(OMX_STATETYPE state);
- void DoneSetStateExecuting(OMX_STATETYPE state);
- void OnPortSettingsChangedRun(int port, OMX_INDEXTYPE index);
- void OnPortDisableEventRun(int port);
- void SetupOutputPort();
- void OnPortEnableEventRun(int port);
-
- // Transition methods for shutdown
- void DeinitFromExecuting(OMX_STATETYPE state);
- void DeinitFromIdle(OMX_STATETYPE state);
- void DeinitFromLoaded(OMX_STATETYPE state);
- void PauseFromExecuting(OMX_STATETYPE state);
- void StartFlush();
- void PortFlushDone(int port);
- void ComponentFlushDone();
-
- void StopOnError();
-
- void InitializeTask();
-
- // Methods to free input and output buffers.
- bool AllocateInputBuffers();
- bool AllocateOutputBuffers();
- void FreeInputBuffers();
- void FreeOutputBuffers();
- void FreeInputQueue();
-
- // Helper method to configure port format at LOADED state.
- bool ConfigureIOPorts();
-
- // Determine whether we can issue fill buffer or empty buffer
- // to the decoder based on the current state and port state.
- bool CanEmptyBuffer();
- bool CanFillBuffer();
-
- // Determine whether we can use |input_queue_| and |output_queue_|
- // based on the current state.
- bool CanAcceptInput();
- bool CanAcceptOutput();
-
- bool InputPortFlushed();
- bool OutputPortFlushed();
-
- // Method to send input buffers to component
- void EmptyBufferTask();
-
- // Method doing initial reads to get bit stream from demuxer.
- void InitialReadBuffer();
-
- // Method doing initial fills to kick start the decoding process.
- void InitialFillBuffer();
-
- // helper functions
- void ChangePort(OMX_COMMANDTYPE cmd, int port_index);
- OMX_BUFFERHEADERTYPE* FindOmxBuffer(scoped_refptr<VideoFrame> video_frame);
- OMX_STATETYPE GetComponentState();
- void SendOutputBufferToComponent(OMX_BUFFERHEADERTYPE *omx_buffer);
- bool TransitionToState(OMX_STATETYPE new_state);
- virtual VideoFrame::Format GetSurfaceFormat() const;
-
- // Method to handle events
- void EventHandlerCompleteTask(OMX_EVENTTYPE event,
- OMX_U32 data1,
- OMX_U32 data2);
-
- // Method to receive buffers from component's input port
- void EmptyBufferDoneTask(OMX_BUFFERHEADERTYPE* buffer);
-
- // Method to receive buffers from component's output port
- void FillBufferDoneTask(OMX_BUFFERHEADERTYPE* buffer);
-
- // The following three methods are static callback methods
- // for the OMX component. When these callbacks are received, the
- // call is delegated to the three internal methods above.
- static OMX_ERRORTYPE EventHandler(OMX_HANDLETYPE component,
- OMX_PTR priv_data,
- OMX_EVENTTYPE event,
- OMX_U32 data1, OMX_U32 data2,
- OMX_PTR event_data);
-
- static OMX_ERRORTYPE EmptyBufferCallback(OMX_HANDLETYPE component,
- OMX_PTR priv_data,
- OMX_BUFFERHEADERTYPE* buffer);
-
- static OMX_ERRORTYPE FillBufferCallback(OMX_HANDLETYPE component,
- OMX_PTR priv_data,
- OMX_BUFFERHEADERTYPE* buffer);
-
- // Member function pointers to respond to events
- void (OmxVideoDecodeEngine::*OnPortDisableEventFunc)(int port);
- void (OmxVideoDecodeEngine::*OnPortEnableEventFunc)(int port);
- void (OmxVideoDecodeEngine::*OnStateSetEventFunc)(OMX_STATETYPE state);
- void (OmxVideoDecodeEngine::*OnFlushEventFunc)(int port);
-
- // Helper function
- scoped_refptr<VideoFrame> CreateOmxBufferVideoFrame(
- OMX_BUFFERHEADERTYPE* omx_buffer);
-
- int width_;
- int height_;
-
- MessageLoop* message_loop_;
-
- std::vector<OMX_BUFFERHEADERTYPE*> input_buffers_;
- int input_buffer_count_;
- int input_buffer_size_;
- int input_port_;
- int input_buffers_at_component_;
- int input_pending_request_;
- bool input_queue_has_eos_;
- bool input_has_fed_eos_;
- bool input_port_flushed_;
-
- int output_buffer_count_;
- int output_buffer_size_;
- int output_port_;
- int output_buffers_at_component_;
- int output_pending_request_;
- bool output_eos_;
- bool output_port_flushed_;
- bool uses_egl_image_;
- base::TimeDelta last_pts_;
-
- // |il_state_| records the current component state. During state transition
- // |expected_il_state_| is the next state that the component will transition
- // to. After a state transition is completed, |il_state_| equals
- // |expected_il_state_|. Inequality can be used to detect a state transition.
- // These two members are read and written only on |message_loop_|.
- OmxIlState il_state_;
- OmxIlState expected_il_state_;
- OmxIlClientState client_state_;
-
- OMX_HANDLETYPE component_handle_;
- scoped_ptr<media::OmxConfigurator> configurator_;
-
- // Free input OpenMAX buffers that can be used to take input bitstream from
- // demuxer.
- std::queue<OMX_BUFFERHEADERTYPE*> free_input_buffers_;
-
- // Available input OpenMAX buffers that we can use to issue
- // OMX_EmptyThisBuffer() call.
- std::queue<OMX_BUFFERHEADERTYPE*> available_input_buffers_;
-
- // flag for freeing input/output buffers
- bool need_free_input_buffers_;
- bool need_free_output_buffers_;
-
- // for calling flush callback only once.
- bool flush_pending_;
-
- // For output buffer recycling cases.
- typedef std::pair<scoped_refptr<VideoFrame>,
- OMX_BUFFERHEADERTYPE*> OutputFrame;
- std::vector<OutputFrame> output_frames_;
- bool output_frames_allocated_;
-
- // port related
- bool need_setup_output_port_;
- OmxIlPortState output_port_state_;
- VideoDecodeEngine::EventHandler* event_handler_;
-
- DISALLOW_COPY_AND_ASSIGN(OmxVideoDecodeEngine);
-};
-
-} // namespace media
-
-#endif // MEDIA_VIDEO_OMX_VIDEO_DECODE_ENGINE_H_
« no previous file with comments | « media/tools/player_x11/player_x11.cc ('k') | media/video/omx_video_decode_engine.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698