Don't bother decoding video frames when we're seeking around trying to find subtitles.
[dcpomatic.git] / src / tools / server_test.cc
index ba16697564705fe25afe03dc2458522e4de9899a..f27e25fde3dab9ac53d19409a89dd0163970abfe 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #include "lib/film.h"
 #include "lib/filter.h"
 #include "lib/util.h"
-#include "lib/scaler.h"
 #include "lib/server.h"
-#include "lib/dcp_video_frame.h"
+#include "lib/dcp_video.h"
 #include "lib/decoder.h"
 #include "lib/exceptions.h"
-#include "lib/scaler.h"
 #include "lib/log.h"
 #include "lib/video_decoder.h"
 #include "lib/player.h"
-#include "lib/dcp_video.h"
+#include "lib/player_video.h"
+#include "lib/encoded_data.h"
 
 using std::cout;
 using std::cerr;
@@ -48,26 +47,17 @@ static shared_ptr<FileLog> log_ (new FileLog ("servomatictest.log"));
 static int frame_count = 0;
 
 void
-process_video (shared_ptr<DCPVideo> frame)
+process_video (shared_ptr<PlayerVideo> pvf)
 {
-       shared_ptr<DCPVideoFrame> local  (
-               new DCPVideoFrame (
-                       frame->image (PIX_FMT_RGB24, false), frame_count, frame->eyes(), frame->conversion(), film->video_frame_rate(), 250000000, RESOLUTION_2K, log_
-                       )
-               );
-       
-       shared_ptr<DCPVideoFrame> remote (
-               new DCPVideoFrame (
-                       frame->image (PIX_FMT_RGB24, false), frame_count, frame->eyes(), frame->conversion(), film->video_frame_rate(), 250000000, RESOLUTION_2K, log_
-                       )
-               );
+       shared_ptr<DCPVideo> local  (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, RESOLUTION_2K, true, log_));
+       shared_ptr<DCPVideo> remote (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, RESOLUTION_2K, true, log_));
 
        cout << "Frame " << frame_count << ": ";
        cout.flush ();
 
        ++frame_count;
 
-       shared_ptr<EncodedData> local_encoded = local->encode_locally ();
+       shared_ptr<EncodedData> local_encoded = local->encode_locally (boost::bind (&Log::dcp_log, log_.get(), _1, _2));
        shared_ptr<EncodedData> remote_encoded;
 
        string remote_error;
@@ -112,7 +102,7 @@ main (int argc, char* argv[])
        string film_dir;
        string server_host;
 
-       while (1) {
+       while (true) {
                static struct option long_options[] = {
                        { "help", no_argument, 0, 'h'},
                        { "server", required_argument, 0, 's'},