You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					44 lines
				
				844 B
			
		
		
			
		
	
	
					44 lines
				
				844 B
			| 
											6 years ago
										 | #ifndef FFV1LOGGER_H
 | ||
|  | #define FFV1LOGGER_H
 | ||
|  | 
 | ||
|  | #include <cstdio>
 | ||
|  | #include <cstdlib>
 | ||
|  | 
 | ||
|  | #include <string>
 | ||
|  | #include <vector>
 | ||
|  | #include <mutex>
 | ||
|  | #include <condition_variable>
 | ||
|  | 
 | ||
|  | extern "C" {
 | ||
|  | #include <libavutil/imgutils.h>
 | ||
|  | #include <libavcodec/avcodec.h>
 | ||
|  | #include <libavformat/avformat.h>
 | ||
|  | }
 | ||
|  | 
 | ||
|  | #include "frame_logger.h"
 | ||
|  | 
 | ||
|  | class RawLogger : public FrameLogger {
 | ||
|  | public:
 | ||
|  |   RawLogger(const std::string &filename, int awidth, int aheight, int afps);
 | ||
|  |   ~RawLogger();
 | ||
|  | 
 | ||
|  |   int ProcessFrame(uint64_t ts, const uint8_t *y_ptr, const uint8_t *u_ptr, const uint8_t *v_ptr);
 | ||
|  |   void Open(const std::string &path);
 | ||
|  |   void Close();
 | ||
|  | 
 | ||
|  | private:
 | ||
|  |   std::string filename;
 | ||
|  |   int width, height, fps;
 | ||
|  |   int counter = 0;
 | ||
|  | 
 | ||
|  |   AVCodec *codec = NULL;
 | ||
|  |   AVCodecContext *codec_ctx = NULL;
 | ||
|  | 
 | ||
|  |   AVStream *stream = NULL;
 | ||
|  |   AVFormatContext *format_ctx = NULL;
 | ||
|  | 
 | ||
|  |   AVFrame *frame = NULL;
 | ||
|  | };
 | ||
|  | 
 | ||
|  | #endif
 |