Remove film player, DVD ripping, alignment, screen configs; never finished and not...
[dcpomatic.git] / src / lib / film.cc
index cacd307643363657b180ef348c0b37bc9a7b0682..902306fb84f277c34de864a7c30eb892506139e7 100644 (file)
@@ -40,7 +40,6 @@
 #include "ab_transcode_job.h"
 #include "transcode_job.h"
 #include "scp_dcp_job.h"
-#include "copy_from_dvd_job.h"
 #include "make_dcp_job.h"
 #include "log.h"
 #include "options.h"
@@ -63,6 +62,7 @@ using std::ifstream;
 using std::ofstream;
 using std::setfill;
 using std::min;
+using std::make_pair;
 using boost::shared_ptr;
 using boost::lexical_cast;
 using boost::to_upper_copy;
@@ -257,6 +257,14 @@ Film::make_dcp (bool transcode)
        o->out_size = format()->dcp_size ();
        o->padding = format()->dcp_padding (shared_from_this ());
        o->ratio = format()->ratio_as_float (shared_from_this ());
+       if (dcp_length ()) {
+               o->video_decode_range = make_pair (dcp_trim_start(), dcp_trim_start() + dcp_length().get());
+               o->audio_decode_range = make_pair (
+                       video_frames_to_audio_frames (o->video_decode_range.get().first, audio_sample_rate(), frames_per_second()),
+                       video_frames_to_audio_frames (o->video_decode_range.get().second, audio_sample_rate(), frames_per_second())
+                       );
+                       
+       }
        o->decode_subtitles = with_subtitles ();
        o->decode_video_skip = dcp_frame_rate (frames_per_second()).skip;
 
@@ -319,13 +327,6 @@ Film::send_dcp_to_tms ()
        JobManager::instance()->add (j);
 }
 
-void
-Film::copy_from_dvd ()
-{
-       shared_ptr<Job> j (new CopyFromDVDJob (shared_from_this(), shared_ptr<Job> ()));
-       JobManager::instance()->add (j);
-}
-
 /** Count the number of frames that have been encoded for this film.
  *  @return frame count.
  */
@@ -759,19 +760,21 @@ Film::dci_name () const
                d << "_";
        }
 
-       switch (_audio_streams[_audio_stream].channels()) {
-       case 1:
-               d << "10_";
-               break;
-       case 2:
-               d << "20_";
-               break;
-       case 6:
-               d << "51_";
-               break;
-       case 8:
-               d << "71_";
-               break;
+       if (_audio_stream != -1) {
+               switch (_audio_streams[_audio_stream].channels()) {
+               case 1:
+                       d << "10_";
+                       break;
+               case 2:
+                       d << "20_";
+                       break;
+               case 6:
+                       d << "51_";
+                       break;
+               case 8:
+                       d << "71_";
+                       break;
+               }
        }
 
        d << "2K_";
@@ -877,7 +880,7 @@ Film::set_content (string c)
                shared_ptr<Options> o (new Options ("", "", ""));
                o->out_size = Size (1024, 1024);
                
-               shared_ptr<Decoder> d = decoder_factory (shared_from_this(), o, 0, 0);
+               shared_ptr<Decoder> d = decoder_factory (shared_from_this(), o, 0);
                
                set_size (d->native_size ());
                set_frames_per_second (d->frames_per_second ());
@@ -1324,3 +1327,4 @@ Film::set_dci_date_today ()
 {
        _dci_date = boost::gregorian::day_clock::local_day ();
 }
+