| 74 | #endif // USE_HW_ACCEL |
| 75 | |
| 76 | FFmpegWriter::FFmpegWriter(const std::string& path) : |
| 77 | path(path), oc(NULL), audio_st(NULL), video_st(NULL), samples(NULL), |
| 78 | audio_outbuf(NULL), audio_outbuf_size(0), audio_input_frame_size(0), audio_input_position(0), |
| 79 | initial_audio_input_frame_size(0), img_convert_ctx(NULL), |
| 80 | video_codec_ctx(NULL), audio_codec_ctx(NULL), is_writing(false), video_timestamp(0), audio_timestamp(0), |
| 81 | original_sample_rate(0), original_channels(0), avr(NULL), avr_planar(NULL), is_open(false), prepare_streams(false), |
| 82 | write_header(false), write_trailer(false), allow_b_frames(false), audio_encoder_buffer_size(0), audio_encoder_buffer(NULL) { |
| 83 | |
| 84 | // Disable audio & video (so they can be independently enabled) |
| 85 | info.has_audio = false; |
| 86 | info.has_video = false; |
| 87 | |
| 88 | // Initialize FFMpeg, and register all formats and codecs |
| 89 | AV_REGISTER_ALL |
| 90 | |
| 91 | // auto detect format |
| 92 | auto_detect_format(); |
| 93 | } |
| 94 | |
| 95 | // Open the writer |
| 96 | void FFmpegWriter::Open() { |
no outgoing calls
no test coverage detected