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

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

Issue 1930703003: vdatest: Initialize weak decoder pointer and factory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2704
Patch Set: Created 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/GLES2,GLX/GL} or 7 // - RenderingHelper is charged with interacting with X11/{EGL/GLES2,GLX/GL} or
8 // Win/EGL. 8 // Win/EGL.
9 // - ClientState is an enum for the state of the decode client used by the test. 9 // - ClientState is an enum for the state of the decode client used by the test.
10 // - ClientStateNotification is a barrier abstraction that allows the test code 10 // - ClientStateNotification is a barrier abstraction that allows the test code
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 VideoDecodeAccelerator::Config config(profile_); 533 VideoDecodeAccelerator::Config config(profile_);
534 gpu::GpuPreferences gpu_preferences; 534 gpu::GpuPreferences gpu_preferences;
535 decoder_ = vda_factory_->CreateVDA(this, config, gpu_preferences); 535 decoder_ = vda_factory_->CreateVDA(this, config, gpu_preferences);
536 } 536 }
537 537
538 LOG_ASSERT(decoder_) << "Failed creating a VDA"; 538 LOG_ASSERT(decoder_) << "Failed creating a VDA";
539 539
540 decoder_->TryToSetupDecodeOnSeparateThread( 540 decoder_->TryToSetupDecodeOnSeparateThread(
541 weak_this_, base::ThreadTaskRunnerHandle::Get()); 541 weak_this_, base::ThreadTaskRunnerHandle::Get());
542 542
543 weak_vda_ptr_factory_.reset(
544 new base::WeakPtrFactory<VideoDecodeAccelerator>(decoder_.get()));
545 weak_vda_ = weak_vda_ptr_factory_->GetWeakPtr();
546
543 SetState(CS_DECODER_SET); 547 SetState(CS_DECODER_SET);
544 FinishInitialization(); 548 FinishInitialization();
545 } 549 }
546 550
547 void GLRenderingVDAClient::ProvidePictureBuffers( 551 void GLRenderingVDAClient::ProvidePictureBuffers(
548 uint32_t requested_num_of_buffers, 552 uint32_t requested_num_of_buffers,
549 uint32_t textures_per_buffer, 553 uint32_t textures_per_buffer,
550 const gfx::Size& dimensions, 554 const gfx::Size& dimensions,
551 uint32_t texture_target) { 555 uint32_t texture_target) {
552 if (decoder_deleted()) 556 if (decoder_deleted())
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 } 768 }
765 769
766 for (int i = 0; i < num_in_flight_decodes_; ++i) 770 for (int i = 0; i < num_in_flight_decodes_; ++i)
767 DecodeNextFragment(); 771 DecodeNextFragment();
768 DCHECK_EQ(outstanding_decodes_, num_in_flight_decodes_); 772 DCHECK_EQ(outstanding_decodes_, num_in_flight_decodes_);
769 } 773 }
770 774
771 void GLRenderingVDAClient::DeleteDecoder() { 775 void GLRenderingVDAClient::DeleteDecoder() {
772 if (decoder_deleted()) 776 if (decoder_deleted())
773 return; 777 return;
774 weak_vda_ptr_factory_.reset(); 778 weak_vda_ptr_factory_->InvalidateWeakPtrs();
775 decoder_.reset(); 779 decoder_.reset();
776 STLClearObject(&encoded_data_); 780 STLClearObject(&encoded_data_);
777 active_textures_.clear(); 781 active_textures_.clear();
778 782
779 // Cascade through the rest of the states to simplify test code below. 783 // Cascade through the rest of the states to simplify test code below.
780 for (int i = state_ + 1; i < CS_MAX; ++i) 784 for (int i = state_ + 1; i < CS_MAX; ++i)
781 SetState(static_cast<ClientState>(i)); 785 SetState(static_cast<ClientState>(i));
782 } 786 }
783 787
784 std::string GLRenderingVDAClient::GetBytesForFirstFragment( 788 std::string GLRenderingVDAClient::GetBytesForFirstFragment(
(...skipping 794 matching lines...) Expand 10 before | Expand all | Expand 10 after
1579 content::VaapiWrapper::PreSandboxInitialization(); 1583 content::VaapiWrapper::PreSandboxInitialization();
1580 #endif 1584 #endif
1581 1585
1582 content::g_env = 1586 content::g_env =
1583 reinterpret_cast<content::VideoDecodeAcceleratorTestEnvironment*>( 1587 reinterpret_cast<content::VideoDecodeAcceleratorTestEnvironment*>(
1584 testing::AddGlobalTestEnvironment( 1588 testing::AddGlobalTestEnvironment(
1585 new content::VideoDecodeAcceleratorTestEnvironment())); 1589 new content::VideoDecodeAcceleratorTestEnvironment()));
1586 1590
1587 return RUN_ALL_TESTS(); 1591 return RUN_ALL_TESTS();
1588 } 1592 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698