}
#include "chroma_subsampler.h"
-#include "shared/context.h"
#include "flags.h"
#include "flow.h"
-#include "shared/httpd.h"
#include "jpeg_frame_view.h"
#include "movit/util.h"
-#include "shared/mux.h"
#include "player.h"
+#include "shared/context.h"
+#include "shared/httpd.h"
+#include "shared/mux.h"
#include "util.h"
#include "ycbcr_converter.h"
size_t width = global_flags.width, height = global_flags.height; // Doesn't matter for MJPEG.
mux.reset(new Mux(avctx, width, height, Mux::CODEC_MJPEG, /*video_extradata=*/"", /*audio_codec_parameters=*/nullptr,
- AVCOL_SPC_BT709, COARSE_TIMEBASE, /*write_callback=*/nullptr, Mux::WRITE_FOREGROUND, {}));
+ AVCOL_SPC_BT709, COARSE_TIMEBASE, /*write_callback=*/nullptr, Mux::WRITE_FOREGROUND, {}));
encode_thread = thread(&VideoStream::encode_thread_func, this);
}
deque<QueuedFrame> q;
{
- unique_lock<mutex> lock(queue_lock);
+ lock_guard<mutex> lock(queue_lock);
q = move(frame_queue);
}
qf.display_func = move(display_func);
qf.queue_spot_holder = move(queue_spot_holder);
- unique_lock<mutex> lock(queue_lock);
+ lock_guard<mutex> lock(queue_lock);
frame_queue.push_back(move(qf));
queue_changed.notify_all();
}
// separate pools around.)
BorrowedInterpolatedFrameResources resources;
{
- unique_lock<mutex> lock(queue_lock);
+ lock_guard<mutex> lock(queue_lock);
if (interpolate_resources.empty()) {
fprintf(stderr, "WARNING: Too many interpolated frames already in transit; dropping one.\n");
return;
qf.resources = move(resources);
qf.local_pts = local_pts;
- unique_lock<mutex> lock(queue_lock);
+ lock_guard<mutex> lock(queue_lock);
frame_queue.push_back(move(qf));
queue_changed.notify_all();
}
// Get the temporary OpenGL resources we need for doing the interpolation.
BorrowedInterpolatedFrameResources resources;
{
- unique_lock<mutex> lock(queue_lock);
+ lock_guard<mutex> lock(queue_lock);
if (interpolate_resources.empty()) {
fprintf(stderr, "WARNING: Too many interpolated frames already in transit; dropping one.\n");
return;
check_error();
qf.resources = move(resources);
- unique_lock<mutex> lock(queue_lock);
+ lock_guard<mutex> lock(queue_lock);
frame_queue.push_back(move(qf));
queue_changed.notify_all();
}
qf.display_func = move(display_func);
qf.queue_spot_holder = move(queue_spot_holder);
- unique_lock<mutex> lock(queue_lock);
+ lock_guard<mutex> lock(queue_lock);
frame_queue.push_back(move(qf));
queue_changed.notify_all();
}
unique_lock<mutex> lock(queue_lock);
// Wait until we have a frame to play.
- queue_changed.wait(lock, [this]{
+ queue_changed.wait(lock, [this] {
return !frame_queue.empty() || should_quit;
});
if (should_quit) {
if (output_fast_forward) {
aborted = frame_queue.empty() || frame_queue.front().local_pts != frame_start;
} else {
- aborted = queue_changed.wait_until(lock, frame_start, [this, frame_start]{
+ aborted = queue_changed.wait_until(lock, frame_start, [this, frame_start] {
return frame_queue.empty() || frame_queue.front().local_pts != frame_start;
});
}