X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=video_encoder.cpp;h=25765291a890a3de3eb294ed236d4ff01d160899;hb=3f34da3ebb9a6fd1ed267f9186d17433321a9214;hp=0df3b4ffe66c2bf8019be319233faa010c3796f8;hpb=f6ba0b7586dfbdbee665a541ae5f5297063fedcc;p=nageru diff --git a/video_encoder.cpp b/video_encoder.cpp index 0df3b4f..2576529 100644 --- a/video_encoder.cpp +++ b/video_encoder.cpp @@ -9,6 +9,7 @@ #include "httpd.h" #include "timebase.h" #include "quicksync_encoder.h" +#include "x264_encoder.h" using namespace std; @@ -45,8 +46,12 @@ VideoEncoder::VideoEncoder(QSurface *surface, const std::string &va_display, int } stream_audio_encoder->add_mux(stream_mux.get()); + if (global_flags.x264_video_to_http) { + x264_encoder.reset(new X264Encoder(stream_mux.get())); + } + string filename = generate_local_dump_filename(/*frame=*/0); - quicksync_encoder.reset(new QuickSyncEncoder(filename, surface, va_display, width, height, stream_mux.get(), stream_audio_encoder.get())); + quicksync_encoder.reset(new QuickSyncEncoder(filename, surface, va_display, width, height, stream_mux.get(), stream_audio_encoder.get(), x264_encoder.get())); } VideoEncoder::~VideoEncoder() @@ -60,7 +65,7 @@ void VideoEncoder::do_cut(int frame) string filename = generate_local_dump_filename(frame); printf("Starting new recording: %s\n", filename.c_str()); quicksync_encoder->shutdown(); - quicksync_encoder.reset(new QuickSyncEncoder(filename, surface, va_display, width, height, stream_mux.get(), stream_audio_encoder.get())); + quicksync_encoder.reset(new QuickSyncEncoder(filename, surface, va_display, width, height, stream_mux.get(), stream_audio_encoder.get(), x264_encoder.get())); } void VideoEncoder::add_audio(int64_t pts, std::vector audio)