projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.
[dcpomatic.git]
/
src
/
lib
/
writer.cc
diff --git
a/src/lib/writer.cc
b/src/lib/writer.cc
index 2d7ee9ba317f32d1246142064b09890bb25cadb5..8e771a5e239e73044de2456310e754d042d0ff90 100644
(file)
--- a/
src/lib/writer.cc
+++ b/
src/lib/writer.cc
@@
-22,12
+22,16
@@
#include <libdcp/sound_asset.h>
#include <libdcp/picture_frame.h>
#include <libdcp/reel.h>
#include <libdcp/sound_asset.h>
#include <libdcp/picture_frame.h>
#include <libdcp/reel.h>
+#include <libdcp/dcp.h>
#include "writer.h"
#include "compose.hpp"
#include "film.h"
#include "format.h"
#include "log.h"
#include "dcp_video_frame.h"
#include "writer.h"
#include "compose.hpp"
#include "film.h"
#include "format.h"
#include "log.h"
#include "dcp_video_frame.h"
+#include "dcp_content_type.h"
+#include "player.h"
+#include "audio_mapping.h"
#include "i18n.h"
#include "i18n.h"
@@
-65,8
+69,8
@@
Writer::Writer (shared_ptr<Film> f)
_picture_asset.reset (
new libdcp::MonoPictureAsset (
_picture_asset.reset (
new libdcp::MonoPictureAsset (
- _film->video_mxf_dir (),
- _film->video_mxf_filename (),
+ _film->
internal_
video_mxf_dir (),
+ _film->
internal_
video_mxf_filename (),
_film->dcp_frame_rate (),
_film->format()->dcp_size ()
)
_film->dcp_frame_rate (),
_film->format()->dcp_size ()
)
@@
-74,16
+78,14
@@
Writer::Writer (shared_ptr<Film> f)
_picture_asset_writer = _picture_asset->start_write (_first_nonexistant_frame > 0);
_picture_asset_writer = _picture_asset->start_write (_first_nonexistant_frame > 0);
- AudioMapping m (_film->audio_channels ());
-
- if (m.dcp_channels() > 0) {
+ if (_film->audio_channels() > 0) {
_sound_asset.reset (
new libdcp::SoundAsset (
_film->dir (_film->dcp_name()),
_sound_asset.reset (
new libdcp::SoundAsset (
_film->dir (_film->dcp_name()),
-
N_("audio.mxf"
),
+
_film->dcp_audio_mxf_filename (
),
_film->dcp_frame_rate (),
_film->dcp_frame_rate (),
-
m
.dcp_channels (),
- dcp_audio_sample_rate (_film->audio_
stream()->sampl
e_rate())
+
_film->audio_mapping()
.dcp_channels (),
+ dcp_audio_sample_rate (_film->audio_
fram
e_rate())
)
);
)
);
@@
-259,20
+261,25
@@
Writer::finish ()
}
int const frames = _last_written_frame + 1;
}
int const frames = _last_written_frame + 1;
- int const duration = frames - _film->trim_start() - _film->trim_end();
+ int duration = 0;
+ if (_film->trim_type() == Film::CPL) {
+ duration = frames - _film->trim_start() - _film->trim_end();
+ _picture_asset->set_entry_point (_film->trim_start ());
+ } else {
+ duration = frames;
+ }
- _picture_asset->set_entry_point (_film->trim_start ());
_picture_asset->set_duration (duration);
/* Hard-link the video MXF into the DCP */
boost::filesystem::path from;
_picture_asset->set_duration (duration);
/* Hard-link the video MXF into the DCP */
boost::filesystem::path from;
- from /= _film->video_mxf_dir();
- from /= _film->video_mxf_filename();
+ from /= _film->
internal_
video_mxf_dir();
+ from /= _film->
internal_
video_mxf_filename();
boost::filesystem::path to;
to /= _film->dir (_film->dcp_name());
boost::filesystem::path to;
to /= _film->dir (_film->dcp_name());
- to /=
N_("video.mxf"
);
+ to /=
_film->dcp_video_mxf_filename (
);
boost::system::error_code ec;
boost::filesystem::create_hard_link (from, to, ec);
boost::system::error_code ec;
boost::filesystem::create_hard_link (from, to, ec);
@@
-285,10
+292,12
@@
Writer::finish ()
/* And update the asset */
_picture_asset->set_directory (_film->dir (_film->dcp_name ()));
/* And update the asset */
_picture_asset->set_directory (_film->dir (_film->dcp_name ()));
- _picture_asset->set_file_name (
N_("video.mxf"
));
+ _picture_asset->set_file_name (
_film->dcp_video_mxf_filename (
));
if (_sound_asset) {
if (_sound_asset) {
- _sound_asset->set_entry_point (_film->trim_start ());
+ if (_film->trim_type() == Film::CPL) {
+ _sound_asset->set_entry_point (_film->trim_start ());
+ }
_sound_asset->set_duration (duration);
}
_sound_asset->set_duration (duration);
}
@@
-339,8
+348,8
@@
Writer::check_existing_picture_mxf ()
{
/* Try to open the existing MXF */
boost::filesystem::path p;
{
/* Try to open the existing MXF */
boost::filesystem::path p;
- p /= _film->video_mxf_dir ();
- p /= _film->video_mxf_filename ();
+ p /= _film->
internal_
video_mxf_dir ();
+ p /= _film->
internal_
video_mxf_filename ();
FILE* mxf = fopen (p.string().c_str(), N_("rb"));
if (!mxf) {
return;
FILE* mxf = fopen (p.string().c_str(), N_("rb"));
if (!mxf) {
return;