 5b97b1216f
			
		
	
	5b97b1216f
	
	
	
		
			
			Fixed unit tests so they don't use ASSERT_DEATH since that doesn't work with Valgrind. Fixed all Valgrind warnings except the one caused by CriticalSectionWrapper in system_wrappers. Reworked all includes and GYP include paths to use full directory paths. Removed util.h for logging, since it rendered warnings in Valgrind because of gflags. Replaced it with a verbose flag and a new function in video_quality_measurement.cc BUG= TEST=Passed test_support_unittests and video_codecs_test_framework_unittests on Linux, Mac and Windows. Review URL: http://webrtc-codereview.appspot.com/311001 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1126 4adac7df-926f-26a2-2b94-8c16560cd09d
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
 | |
|  *
 | |
|  *  Use of this source code is governed by a BSD-style license
 | |
|  *  that can be found in the LICENSE file in the root of the source
 | |
|  *  tree. An additional intellectual property rights grant can be found
 | |
|  *  in the file PATENTS.  All contributing project authors may
 | |
|  *  be found in the AUTHORS file in the root of the source tree.
 | |
|  */
 | |
| 
 | |
| #ifndef WEBRTC_TEST_TESTSUPPORT_FRAME_READER_H_
 | |
| #define WEBRTC_TEST_TESTSUPPORT_FRAME_READER_H_
 | |
| 
 | |
| #include <cstdio>
 | |
| #include <string>
 | |
| 
 | |
| #include "typedefs.h"
 | |
| 
 | |
| namespace webrtc {
 | |
| namespace test {
 | |
| 
 | |
| // Handles reading of frames from video files.
 | |
| class FrameReader {
 | |
|  public:
 | |
|   virtual ~FrameReader() {}
 | |
| 
 | |
|   // Initializes the frame reader, i.e. opens the input file.
 | |
|   // This must be called before reading of frames has started.
 | |
|   // Returns false if an error has occurred, in addition to printing to stderr.
 | |
|   virtual bool Init() = 0;
 | |
| 
 | |
|   // Reads a frame into the supplied buffer, which must contain enough space
 | |
|   // for the frame size.
 | |
|   // Returns true if there are more frames to read, false if we've already
 | |
|   // read the last frame (in the previous call).
 | |
|   virtual bool ReadFrame(WebRtc_UWord8* source_buffer) = 0;
 | |
| 
 | |
|   // Closes the input file if open. Essentially makes this class impossible
 | |
|   // to use anymore. Will also be invoked by the destructor.
 | |
|   virtual void Close() = 0;
 | |
| 
 | |
|   // Frame length in bytes of a single frame image.
 | |
|   virtual int FrameLength() = 0;
 | |
|   // Total number of frames in the input video source.
 | |
|   virtual int NumberOfFrames() = 0;
 | |
| };
 | |
| 
 | |
| class FrameReaderImpl : public FrameReader {
 | |
|  public:
 | |
|   // Creates a file handler. The input file is assumed to exist and be readable.
 | |
|   // Parameters:
 | |
|   //   input_filename          The file to read from.
 | |
|   //   frame_length_in_bytes   The size of each frame.
 | |
|   //                           For YUV this is 3 * width * height / 2
 | |
|   FrameReaderImpl(std::string input_filename, int frame_length_in_bytes);
 | |
|   virtual ~FrameReaderImpl();
 | |
|   bool Init();
 | |
|   bool ReadFrame(WebRtc_UWord8* source_buffer);
 | |
|   void Close();
 | |
|   int FrameLength() { return frame_length_in_bytes_; }
 | |
|   int NumberOfFrames() { return number_of_frames_; }
 | |
| 
 | |
|  private:
 | |
|   std::string input_filename_;
 | |
|   int frame_length_in_bytes_;
 | |
|   int number_of_frames_;
 | |
|   FILE* input_file_;
 | |
| };
 | |
| 
 | |
| }  // namespace test
 | |
| }  // namespace webrtc
 | |
| 
 | |
| #endif  // WEBRTC_TEST_TESTSUPPORT_FRAME_READER_H_
 |