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

Side by Side Diff: content/common/gpu/media/video_decode_accelerator_unittest.cc

Issue 10392141: Plumb texture target to VideoDecodeAccelerator::Client (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win build Created 8 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // The bulk of this file is support code; sorry about that. Here's an overview 5 // The bulk of this file is support code; sorry about that. Here's an overview
6 // to hopefully help readers of this code: 6 // to hopefully help readers of this code:
7 // - RenderingHelper is charged with interacting with X11, EGL, and GLES2. 7 // - RenderingHelper is charged with interacting with X11, EGL, and GLES2.
8 // - ClientState is an enum for the state of the decode client used by the test. 8 // - ClientState is an enum for the state of the decode client used by the test.
9 // - ClientStateNotification is a barrier abstraction that allows the test code 9 // - ClientStateNotification is a barrier abstraction that allows the test code
10 // to be written sequentially and wait for the decode client to see certain 10 // to be written sequentially and wait for the decode client to see certain
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 int reset_after_frame_num, 197 int reset_after_frame_num,
198 int delete_decoder_state, 198 int delete_decoder_state,
199 int frame_width, 199 int frame_width,
200 int frame_height, 200 int frame_height,
201 int profile); 201 int profile);
202 virtual ~EglRenderingVDAClient(); 202 virtual ~EglRenderingVDAClient();
203 void CreateDecoder(); 203 void CreateDecoder();
204 204
205 // VideoDecodeAccelerator::Client implementation. 205 // VideoDecodeAccelerator::Client implementation.
206 // The heart of the Client. 206 // The heart of the Client.
207 virtual void ProvidePictureBuffers( 207 virtual void ProvidePictureBuffers(uint32 requested_num_of_buffers,
208 uint32 requested_num_of_buffers, 208 const gfx::Size& dimensions,
209 const gfx::Size& dimensions); 209 uint32 texture_target);
210 virtual void DismissPictureBuffer(int32 picture_buffer_id); 210 virtual void DismissPictureBuffer(int32 picture_buffer_id);
211 virtual void PictureReady(const media::Picture& picture); 211 virtual void PictureReady(const media::Picture& picture);
212 // Simple state changes. 212 // Simple state changes.
213 virtual void NotifyInitializeDone(); 213 virtual void NotifyInitializeDone();
214 virtual void NotifyEndOfBitstreamBuffer(int32 bitstream_buffer_id); 214 virtual void NotifyEndOfBitstreamBuffer(int32 bitstream_buffer_id);
215 virtual void NotifyFlushDone(); 215 virtual void NotifyFlushDone();
216 virtual void NotifyResetDone(); 216 virtual void NotifyResetDone();
217 virtual void NotifyError(VideoDecodeAccelerator::Error error); 217 virtual void NotifyError(VideoDecodeAccelerator::Error error);
218 218
219 // Simple getters for inspecting the state of the Client. 219 // Simple getters for inspecting the state of the Client.
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 326
327 // Configure the decoder. 327 // Configure the decoder.
328 media::VideoCodecProfile profile = media::H264PROFILE_BASELINE; 328 media::VideoCodecProfile profile = media::H264PROFILE_BASELINE;
329 if (profile_ != -1) 329 if (profile_ != -1)
330 profile = static_cast<media::VideoCodecProfile>(profile_); 330 profile = static_cast<media::VideoCodecProfile>(profile_);
331 CHECK(decoder_->Initialize(profile)); 331 CHECK(decoder_->Initialize(profile));
332 } 332 }
333 333
334 void EglRenderingVDAClient::ProvidePictureBuffers( 334 void EglRenderingVDAClient::ProvidePictureBuffers(
335 uint32 requested_num_of_buffers, 335 uint32 requested_num_of_buffers,
336 const gfx::Size& dimensions) { 336 const gfx::Size& dimensions,
337 uint32 texture_target) {
337 if (decoder_deleted()) 338 if (decoder_deleted())
338 return; 339 return;
339 std::vector<media::PictureBuffer> buffers; 340 std::vector<media::PictureBuffer> buffers;
340 341
341 for (uint32 i = 0; i < requested_num_of_buffers; ++i) { 342 for (uint32 i = 0; i < requested_num_of_buffers; ++i) {
342 uint32 id = picture_buffers_by_id_.size(); 343 uint32 id = picture_buffers_by_id_.size();
343 uint32 texture_id; 344 uint32 texture_id;
344 base::WaitableEvent done(false, false); 345 base::WaitableEvent done(false, false);
345 rendering_helper_->CreateTexture(rendering_window_id_, &texture_id, &done); 346 rendering_helper_->CreateTexture(
347 rendering_window_id_, texture_target, &texture_id, &done);
346 done.Wait(); 348 done.Wait();
347 CHECK(outstanding_texture_ids_.insert(texture_id).second); 349 CHECK(outstanding_texture_ids_.insert(texture_id).second);
348 media::PictureBuffer* buffer = 350 media::PictureBuffer* buffer =
349 new media::PictureBuffer(id, dimensions, texture_id); 351 new media::PictureBuffer(id, dimensions, texture_id);
350 CHECK(picture_buffers_by_id_.insert(std::make_pair(id, buffer)).second); 352 CHECK(picture_buffers_by_id_.insert(std::make_pair(id, buffer)).second);
351 buffers.push_back(*buffer); 353 buffers.push_back(*buffer);
352 } 354 }
353 decoder_->AssignPictureBuffers(buffers); 355 decoder_->AssignPictureBuffers(buffers);
354 } 356 }
355 357
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 816
815 base::ShadowingAtExitManager at_exit_manager; 817 base::ShadowingAtExitManager at_exit_manager;
816 RenderingHelper::InitializePlatform(); 818 RenderingHelper::InitializePlatform();
817 819
818 #if defined(OS_WIN) 820 #if defined(OS_WIN)
819 DXVAVideoDecodeAccelerator::PreSandboxInitialization(); 821 DXVAVideoDecodeAccelerator::PreSandboxInitialization();
820 #endif 822 #endif
821 823
822 return RUN_ALL_TESTS(); 824 return RUN_ALL_TESTS();
823 } 825 }
OLDNEW
« no previous file with comments | « content/common/gpu/media/rendering_helper_mac.mm ('k') | content/renderer/media/pepper_platform_video_decoder_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698