| OLD | NEW |
| 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 // 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 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 549 | 549 |
| 550 // VideoDecodeAccelerator::Client implementation. | 550 // VideoDecodeAccelerator::Client implementation. |
| 551 // The heart of the Client. | 551 // The heart of the Client. |
| 552 virtual void ProvidePictureBuffers( | 552 virtual void ProvidePictureBuffers( |
| 553 uint32 requested_num_of_buffers, | 553 uint32 requested_num_of_buffers, |
| 554 const gfx::Size& dimensions); | 554 const gfx::Size& dimensions); |
| 555 virtual void DismissPictureBuffer(int32 picture_buffer_id); | 555 virtual void DismissPictureBuffer(int32 picture_buffer_id); |
| 556 virtual void PictureReady(const media::Picture& picture); | 556 virtual void PictureReady(const media::Picture& picture); |
| 557 // Simple state changes. | 557 // Simple state changes. |
| 558 virtual void NotifyInitializeDone(); | 558 virtual void NotifyInitializeDone(); |
| 559 virtual void NotifyEndOfStream(); | |
| 560 virtual void NotifyEndOfBitstreamBuffer(int32 bitstream_buffer_id); | 559 virtual void NotifyEndOfBitstreamBuffer(int32 bitstream_buffer_id); |
| 561 virtual void NotifyFlushDone(); | 560 virtual void NotifyFlushDone(); |
| 562 virtual void NotifyResetDone(); | 561 virtual void NotifyResetDone(); |
| 563 virtual void NotifyError(VideoDecodeAccelerator::Error error); | 562 virtual void NotifyError(VideoDecodeAccelerator::Error error); |
| 564 | 563 |
| 565 // Simple getters for inspecting the state of the Client. | 564 // Simple getters for inspecting the state of the Client. |
| 566 ClientState state() { return state_; } | 565 ClientState state() { return state_; } |
| 567 int num_done_bitstream_buffers() { return num_done_bitstream_buffers_; } | 566 int num_done_bitstream_buffers() { return num_done_bitstream_buffers_; } |
| 568 int num_decoded_frames() { return num_decoded_frames_; } | 567 int num_decoded_frames() { return num_decoded_frames_; } |
| 569 EGLDisplay egl_display() { return rendering_helper_->egl_display(); } | 568 EGLDisplay egl_display() { return rendering_helper_->egl_display(); } |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 727 decoder_->ReusePictureBuffer(picture.picture_buffer_id()); | 726 decoder_->ReusePictureBuffer(picture.picture_buffer_id()); |
| 728 } | 727 } |
| 729 | 728 |
| 730 void EglRenderingVDAClient::NotifyInitializeDone() { | 729 void EglRenderingVDAClient::NotifyInitializeDone() { |
| 731 SetState(CS_INITIALIZED); | 730 SetState(CS_INITIALIZED); |
| 732 initialize_done_ticks_ = base::TimeTicks::Now(); | 731 initialize_done_ticks_ = base::TimeTicks::Now(); |
| 733 for (int i = 0; i < num_in_flight_decodes_; ++i) | 732 for (int i = 0; i < num_in_flight_decodes_; ++i) |
| 734 DecodeNextNALUs(); | 733 DecodeNextNALUs(); |
| 735 } | 734 } |
| 736 | 735 |
| 737 void EglRenderingVDAClient::NotifyEndOfStream() { | |
| 738 SetState(CS_DONE); | |
| 739 } | |
| 740 | |
| 741 void EglRenderingVDAClient::NotifyEndOfBitstreamBuffer( | 736 void EglRenderingVDAClient::NotifyEndOfBitstreamBuffer( |
| 742 int32 bitstream_buffer_id) { | 737 int32 bitstream_buffer_id) { |
| 743 ++num_done_bitstream_buffers_; | 738 ++num_done_bitstream_buffers_; |
| 744 --outstanding_decodes_; | 739 --outstanding_decodes_; |
| 745 DecodeNextNALUs(); | 740 DecodeNextNALUs(); |
| 746 } | 741 } |
| 747 | 742 |
| 748 void EglRenderingVDAClient::NotifyFlushDone() { | 743 void EglRenderingVDAClient::NotifyFlushDone() { |
| 749 if (decoder_deleted()) | 744 if (decoder_deleted()) |
| 750 return; | 745 return; |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1110 } | 1105 } |
| 1111 LOG(FATAL) << "Unexpected switch: " << it->first << ":" << it->second; | 1106 LOG(FATAL) << "Unexpected switch: " << it->first << ":" << it->second; |
| 1112 } | 1107 } |
| 1113 #if defined(OS_WIN) | 1108 #if defined(OS_WIN) |
| 1114 base::ShadowingAtExitManager at_exit_manager; | 1109 base::ShadowingAtExitManager at_exit_manager; |
| 1115 gfx::InitializeGLBindings(gfx::kGLImplementationEGLGLES2); | 1110 gfx::InitializeGLBindings(gfx::kGLImplementationEGLGLES2); |
| 1116 DXVAVideoDecodeAccelerator::PreSandboxInitialization(); | 1111 DXVAVideoDecodeAccelerator::PreSandboxInitialization(); |
| 1117 #endif // OS_WIN | 1112 #endif // OS_WIN |
| 1118 return RUN_ALL_TESTS(); | 1113 return RUN_ALL_TESTS(); |
| 1119 } | 1114 } |
| OLD | NEW |