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

Side by Side Diff: content/common/gpu/media/omx_video_decode_accelerator.h

Issue 7260008: Implement proper synchronization between HW video decode IPC and CommandBuffer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_COMMON_GPU_MEDIA_OMX_VIDEO_DECODE_ACCELERATOR_H_ 5 #ifndef CONTENT_COMMON_GPU_MEDIA_OMX_VIDEO_DECODE_ACCELERATOR_H_
6 #define CONTENT_COMMON_GPU_MEDIA_OMX_VIDEO_DECODE_ACCELERATOR_H_ 6 #define CONTENT_COMMON_GPU_MEDIA_OMX_VIDEO_DECODE_ACCELERATOR_H_
7 7
8 #include <dlfcn.h> 8 #include <dlfcn.h>
9 #include <map> 9 #include <map>
10 #include <queue> 10 #include <queue>
(...skipping 19 matching lines...) Expand all
30 class OmxVideoDecodeAccelerator : public media::VideoDecodeAccelerator { 30 class OmxVideoDecodeAccelerator : public media::VideoDecodeAccelerator {
31 public: 31 public:
32 OmxVideoDecodeAccelerator(media::VideoDecodeAccelerator::Client* client, 32 OmxVideoDecodeAccelerator(media::VideoDecodeAccelerator::Client* client,
33 MessageLoop* message_loop); 33 MessageLoop* message_loop);
34 virtual ~OmxVideoDecodeAccelerator(); 34 virtual ~OmxVideoDecodeAccelerator();
35 35
36 // media::VideoDecodeAccelerator implementation. 36 // media::VideoDecodeAccelerator implementation.
37 bool GetConfigs(const std::vector<uint32>& requested_configs, 37 bool GetConfigs(const std::vector<uint32>& requested_configs,
38 std::vector<uint32>* matched_configs) OVERRIDE; 38 std::vector<uint32>* matched_configs) OVERRIDE;
39 bool Initialize(const std::vector<uint32>& config) OVERRIDE; 39 bool Initialize(const std::vector<uint32>& config) OVERRIDE;
40 bool Decode(const media::BitstreamBuffer& bitstream_buffer) OVERRIDE; 40 void Decode(const media::BitstreamBuffer& bitstream_buffer) OVERRIDE;
41 virtual void AssignGLESBuffers( 41 virtual void AssignGLESBuffers(
42 const std::vector<media::GLESBuffer>& buffers) OVERRIDE; 42 const std::vector<media::GLESBuffer>& buffers) OVERRIDE;
43 virtual void AssignSysmemBuffers( 43 virtual void AssignSysmemBuffers(
44 const std::vector<media::SysmemBuffer>& buffers) OVERRIDE; 44 const std::vector<media::SysmemBuffer>& buffers) OVERRIDE;
45 void ReusePictureBuffer(int32 picture_buffer_id) OVERRIDE; 45 void ReusePictureBuffer(int32 picture_buffer_id) OVERRIDE;
46 bool Flush() OVERRIDE; 46 void Flush() OVERRIDE;
47 bool Abort() OVERRIDE; 47 void Abort() OVERRIDE;
48 48
49 void SetEglState(EGLDisplay egl_display, EGLContext egl_context); 49 void SetEglState(EGLDisplay egl_display, EGLContext egl_context);
50 50
51 private: 51 private:
52 // Helper struct for keeping track of the relationship between an OMX output 52 // Helper struct for keeping track of the relationship between an OMX output
53 // buffer and the GLESBuffer it points to. 53 // buffer and the GLESBuffer it points to.
54 struct OutputPicture { 54 struct OutputPicture {
55 OutputPicture(media::GLESBuffer g_b, OMX_BUFFERHEADERTYPE* o_b_h) 55 OutputPicture(media::GLESBuffer g_b, OMX_BUFFERHEADERTYPE* o_b_h)
56 : gles_buffer(g_b), omx_buffer_header(o_b_h) {} 56 : gles_buffer(g_b), omx_buffer_header(o_b_h) {}
57 media::GLESBuffer gles_buffer; 57 media::GLESBuffer gles_buffer;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 OMX_PTR event_data); 168 OMX_PTR event_data);
169 static OMX_ERRORTYPE EmptyBufferCallback(OMX_HANDLETYPE component, 169 static OMX_ERRORTYPE EmptyBufferCallback(OMX_HANDLETYPE component,
170 OMX_PTR priv_data, 170 OMX_PTR priv_data,
171 OMX_BUFFERHEADERTYPE* buffer); 171 OMX_BUFFERHEADERTYPE* buffer);
172 static OMX_ERRORTYPE FillBufferCallback(OMX_HANDLETYPE component, 172 static OMX_ERRORTYPE FillBufferCallback(OMX_HANDLETYPE component,
173 OMX_PTR priv_data, 173 OMX_PTR priv_data,
174 OMX_BUFFERHEADERTYPE* buffer); 174 OMX_BUFFERHEADERTYPE* buffer);
175 }; 175 };
176 176
177 #endif // CONTENT_COMMON_GPU_MEDIA_OMX_VIDEO_DECODE_ACCELERATOR_H_ 177 #endif // CONTENT_COMMON_GPU_MEDIA_OMX_VIDEO_DECODE_ACCELERATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698