| Index: media/filters/omx_video_decode_engine.h
|
| diff --git a/media/filters/omx_video_decode_engine.h b/media/filters/omx_video_decode_engine.h
|
| index 273006cf2edf70e2c985bffaa67dcf11663dbd07..756ccc1ff145eef0721474f292beb7fa8d114caf 100644
|
| --- a/media/filters/omx_video_decode_engine.h
|
| +++ b/media/filters/omx_video_decode_engine.h
|
| @@ -25,8 +25,7 @@ namespace media {
|
|
|
| // TODO(hclam):
|
| // Extract the OmxOutputSink implementation to a strategy class.
|
| -class OmxVideoDecodeEngine : public VideoDecodeEngine,
|
| - public OmxOutputSink {
|
| +class OmxVideoDecodeEngine : public VideoDecodeEngine {
|
| public:
|
| OmxVideoDecodeEngine();
|
| virtual ~OmxVideoDecodeEngine();
|
| @@ -51,35 +50,7 @@ class OmxVideoDecodeEngine : public VideoDecodeEngine,
|
| message_loop_ = message_loop;
|
| };
|
|
|
| - // Implementation of OmxOutputSink interface.
|
| - virtual bool ProvidesEGLImages() const { return false; }
|
| - virtual bool AllocateEGLImages(int width, int height,
|
| - std::vector<EGLImageKHR>* images);
|
| - virtual void ReleaseEGLImages(const std::vector<EGLImageKHR>& images);
|
| - virtual void UseThisBuffer(int buffer_id, OMX_BUFFERHEADERTYPE* buffer);
|
| - virtual void StopUsingThisBuffer(int id);
|
| - virtual void BufferReady(int buffer_id, BufferUsedCallback* callback);
|
| -
|
| private:
|
| - typedef std::pair<int, OMX_BUFFERHEADERTYPE*> OmxOutputUnit;
|
| - typedef std::vector<OmxOutputUnit> OmxBufferList;
|
| -
|
| - struct YuvFrame {
|
| - // TODO(ajwong): Please avoid ever using this class anywhere else until
|
| - // we've consolidated the buffer struct.
|
| - YuvFrame(size_t c) {
|
| - size = 0;
|
| - capacity = c;
|
| - data = new unsigned char[capacity];
|
| - }
|
| - ~YuvFrame() {
|
| - delete [] data;
|
| - }
|
| - size_t size;
|
| - size_t capacity;
|
| - unsigned char* data;
|
| - };
|
| -
|
| // A struct to hold parameters of a decode request. Objects pointed by
|
| // these parameters are owned by the caller.
|
| struct DecodeRequest {
|
| @@ -96,38 +67,25 @@ class OmxVideoDecodeEngine : public VideoDecodeEngine,
|
|
|
| virtual void OnFeedDone(Buffer* buffer);
|
| virtual void OnHardwareError();
|
| - virtual void OnReadComplete(
|
| - int buffer_id, OmxOutputSink::BufferUsedCallback* callback);
|
| + virtual void OnReadComplete(OMX_BUFFERHEADERTYPE* buffer);
|
| virtual void OnFormatChange(
|
| const OmxConfigurator::MediaFormat& input_format,
|
| const OmxConfigurator::MediaFormat& output_format);
|
|
|
| - virtual bool DecodedFrameAvailable();
|
| - virtual void MergeBytesFrameQueue(uint8* buffer, int size);
|
| - virtual bool IsFrameComplete(const YuvFrame* frame);
|
| - virtual OmxBufferList::iterator FindBuffer(int buffer_id);
|
| -
|
| State state_;
|
| - size_t frame_bytes_;
|
| size_t width_;
|
| size_t height_;
|
| - scoped_array<uint8> y_buffer_;
|
| - scoped_array<uint8> u_buffer_;
|
| - scoped_array<uint8> v_buffer_;
|
|
|
| // TODO(hclam): We should let OmxCodec handle this case.
|
| bool has_fed_on_eos_; // Used to avoid sending an end of stream to
|
| // OpenMax twice since OpenMax does not always
|
| // handle this nicely.
|
| - std::list<YuvFrame*> yuv_frame_queue_;
|
| std::list<DecodeRequest> decode_request_queue_;
|
|
|
| scoped_refptr<media::OmxCodec> omx_codec_;
|
| scoped_ptr<media::OmxConfigurator> omx_configurator_;
|
| MessageLoop* message_loop_;
|
|
|
| - OmxBufferList omx_buffers_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(OmxVideoDecodeEngine);
|
| };
|
|
|
|
|