projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix problems with FFmpeg files that have all-zero stream IDs.
[dcpomatic.git]
/
src
/
lib
/
writer.cc
diff --git
a/src/lib/writer.cc
b/src/lib/writer.cc
index 5386efd9d200b0cadd734ba7d643c876fe4fbbbb..60b2a47ab13b265fe1f5ca288ef576912db0ea12 100644
(file)
--- a/
src/lib/writer.cc
+++ b/
src/lib/writer.cc
@@
-36,13
+36,13
@@
#include "audio_mapping.h"
#include "config.h"
#include "job.h"
#include "audio_mapping.h"
#include "config.h"
#include "job.h"
+#include "cross.h"
#include "i18n.h"
using std::make_pair;
using std::pair;
using std::string;
#include "i18n.h"
using std::make_pair;
using std::pair;
using std::string;
-using std::ifstream;
using std::list;
using std::cout;
using boost::shared_ptr;
using std::list;
using std::cout;
using boost::shared_ptr;
@@
-68,6
+68,7
@@
Writer::Writer (shared_ptr<const Film> f, weak_ptr<Job> j)
boost::filesystem::remove_all (_film->dir (_film->dcp_name ()));
shared_ptr<Job> job = _job.lock ();
boost::filesystem::remove_all (_film->dir (_film->dcp_name ()));
shared_ptr<Job> job = _job.lock ();
+ assert (job);
job->sub (_("Checking existing image data"));
check_existing_picture_mxf ();
job->sub (_("Checking existing image data"));
check_existing_picture_mxf ();
@@
-140,8
+141,9
@@
Writer::fake_write (int frame, Eyes eyes)
{
boost::mutex::scoped_lock lock (_mutex);
{
boost::mutex::scoped_lock lock (_mutex);
-
ifstream ifi (_film->info_path (frame, eyes).string().c_str()
);
+
FILE* ifi = fopen_boost (_film->info_path (frame, eyes), "r"
);
libdcp::FrameInfo info (ifi);
libdcp::FrameInfo info (ifi);
+ fclose (ifi);
QueueItem qi;
qi.type = QueueItem::FAKE;
QueueItem qi;
qi.type = QueueItem::FAKE;
@@
-429,8
+431,14
@@
bool
Writer::check_existing_picture_mxf_frame (FILE* mxf, int f, Eyes eyes)
{
/* Read the frame info as written */
Writer::check_existing_picture_mxf_frame (FILE* mxf, int f, Eyes eyes)
{
/* Read the frame info as written */
- ifstream ifi (_film->info_path (f, eyes).string().c_str());
+ FILE* ifi = fopen_boost (_film->info_path (f, eyes), "r");
+ if (!ifi) {
+ _film->log()->log (String::compose ("Existing frame %1 has no info file", f));
+ return false;
+ }
+
libdcp::FrameInfo info (ifi);
libdcp::FrameInfo info (ifi);
+ fclose (ifi);
if (info.size == 0) {
_film->log()->log (String::compose ("Existing frame %1 has no info file", f));
return false;
if (info.size == 0) {
_film->log()->log (String::compose ("Existing frame %1 has no info file", f));
return false;