| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include <inttypes.h> | 5 #include <inttypes.h> |
| 6 #include <stddef.h> | 6 #include <stddef.h> |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 | 723 |
| 724 private: | 724 private: |
| 725 void InitializeCB(bool success); | 725 void InitializeCB(bool success); |
| 726 void DecodeDone(DecodeStatus status); | 726 void DecodeDone(DecodeStatus status); |
| 727 void FlushDone(DecodeStatus status); | 727 void FlushDone(DecodeStatus status); |
| 728 void VerifyOutputFrame(const scoped_refptr<VideoFrame>& output_frame); | 728 void VerifyOutputFrame(const scoped_refptr<VideoFrame>& output_frame); |
| 729 void Decode(); | 729 void Decode(); |
| 730 | 730 |
| 731 enum State { UNINITIALIZED, INITIALIZED, DECODING, DECODER_ERROR }; | 731 enum State { UNINITIALIZED, INITIALIZED, DECODING, DECODER_ERROR }; |
| 732 | 732 |
| 733 MediaLog media_log_; |
| 733 const VideoCodecProfile profile_; | 734 const VideoCodecProfile profile_; |
| 734 std::unique_ptr<FFmpegVideoDecoder> decoder_; | 735 std::unique_ptr<FFmpegVideoDecoder> decoder_; |
| 735 VideoDecoder::DecodeCB decode_cb_; | 736 VideoDecoder::DecodeCB decode_cb_; |
| 736 // Decode callback of an EOS buffer. | 737 // Decode callback of an EOS buffer. |
| 737 VideoDecoder::DecodeCB eos_decode_cb_; | 738 VideoDecoder::DecodeCB eos_decode_cb_; |
| 738 // Callback of Flush(). Called after all frames are decoded. | 739 // Callback of Flush(). Called after all frames are decoded. |
| 739 const base::Closure flush_complete_cb_; | 740 const base::Closure flush_complete_cb_; |
| 740 const base::Closure decode_error_cb_; | 741 const base::Closure decode_error_cb_; |
| 741 State decoder_state_; | 742 State decoder_state_; |
| 742 std::queue<scoped_refptr<VideoFrame>> original_frames_; | 743 std::queue<scoped_refptr<VideoFrame>> original_frames_; |
| 743 std::queue<scoped_refptr<DecoderBuffer>> decode_buffers_; | 744 std::queue<scoped_refptr<DecoderBuffer>> decode_buffers_; |
| 744 base::ThreadChecker thread_checker_; | 745 base::ThreadChecker thread_checker_; |
| 745 }; | 746 }; |
| 746 | 747 |
| 747 VideoFrameQualityValidator::VideoFrameQualityValidator( | 748 VideoFrameQualityValidator::VideoFrameQualityValidator( |
| 748 const VideoCodecProfile profile, | 749 const VideoCodecProfile profile, |
| 749 const base::Closure& flush_complete_cb, | 750 const base::Closure& flush_complete_cb, |
| 750 const base::Closure& decode_error_cb) | 751 const base::Closure& decode_error_cb) |
| 751 : profile_(profile), | 752 : profile_(profile), |
| 752 decoder_(new FFmpegVideoDecoder(make_scoped_refptr(new MediaLog()))), | 753 decoder_(new FFmpegVideoDecoder(&media_log_)), |
| 753 decode_cb_( | 754 decode_cb_( |
| 754 base::Bind(&VideoFrameQualityValidator::DecodeDone, AsWeakPtr())), | 755 base::Bind(&VideoFrameQualityValidator::DecodeDone, AsWeakPtr())), |
| 755 eos_decode_cb_( | 756 eos_decode_cb_( |
| 756 base::Bind(&VideoFrameQualityValidator::FlushDone, AsWeakPtr())), | 757 base::Bind(&VideoFrameQualityValidator::FlushDone, AsWeakPtr())), |
| 757 flush_complete_cb_(flush_complete_cb), | 758 flush_complete_cb_(flush_complete_cb), |
| 758 decode_error_cb_(decode_error_cb), | 759 decode_error_cb_(decode_error_cb), |
| 759 decoder_state_(UNINITIALIZED) { | 760 decoder_state_(UNINITIALIZED) { |
| 760 // Allow decoding of individual NALU. Entire frames are required by default. | 761 // Allow decoding of individual NALU. Entire frames are required by default. |
| 761 decoder_->set_decode_nalus(true); | 762 decoder_->set_decode_nalus(true); |
| 762 } | 763 } |
| (...skipping 1614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2377 | 2378 |
| 2378 media::g_env = | 2379 media::g_env = |
| 2379 reinterpret_cast<media::VideoEncodeAcceleratorTestEnvironment*>( | 2380 reinterpret_cast<media::VideoEncodeAcceleratorTestEnvironment*>( |
| 2380 testing::AddGlobalTestEnvironment( | 2381 testing::AddGlobalTestEnvironment( |
| 2381 new media::VideoEncodeAcceleratorTestEnvironment( | 2382 new media::VideoEncodeAcceleratorTestEnvironment( |
| 2382 std::move(test_stream_data), log_path, run_at_fps, | 2383 std::move(test_stream_data), log_path, run_at_fps, |
| 2383 needs_encode_latency, verify_all_output))); | 2384 needs_encode_latency, verify_all_output))); |
| 2384 | 2385 |
| 2385 return RUN_ALL_TESTS(); | 2386 return RUN_ALL_TESTS(); |
| 2386 } | 2387 } |
| OLD | NEW |