projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Speed up hints tests by not running a pointless audio analysis.
[dcpomatic.git]
/
src
/
lib
/
hints.h
diff --git
a/src/lib/hints.h
b/src/lib/hints.h
index b8a8313014c34ebd18855ef0cbf89f87d36b48ff..6553593a06e761da7b908ce1949f5dc3fc06fa58 100644
(file)
--- a/
src/lib/hints.h
+++ b/
src/lib/hints.h
@@
-1,5
+1,5
@@
/*
/*
- Copyright (C) 2016-202
0
Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016-202
1
Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
This file is part of DCP-o-matic.
@@
-18,24
+18,28
@@
*/
*/
+
+#include "audio_analyser.h"
#include "signaller.h"
#include "player_text.h"
#include "types.h"
#include "dcp_text_track.h"
#include "dcpomatic_time.h"
#include "weak_film.h"
#include "signaller.h"
#include "player_text.h"
#include "types.h"
#include "dcp_text_track.h"
#include "dcpomatic_time.h"
#include "weak_film.h"
-#include <boost/weak_ptr.hpp>
#include <boost/signals2.hpp>
#include <boost/atomic.hpp>
#include <vector>
#include <string>
#include <boost/signals2.hpp>
#include <boost/atomic.hpp>
#include <vector>
#include <string>
+
class Film;
class Film;
+class Writer;
+
class Hints : public Signaller, public ExceptionStore, public WeakConstFilm
{
public:
class Hints : public Signaller, public ExceptionStore, public WeakConstFilm
{
public:
- explicit Hints (
boost
::weak_ptr<const Film> film);
+ explicit Hints (
std
::weak_ptr<const Film> film);
~Hints ();
void start ();
~Hints ();
void start ();
@@
-47,16
+51,21
@@
public:
/* For tests only */
void join ();
/* For tests only */
void join ();
+ void disable_audio_analysis () {
+ _disable_audio_analysis = true;
+ }
private:
friend struct hint_subtitle_too_early;
void thread ();
void hint (std::string h);
private:
friend struct hint_subtitle_too_early;
void thread ();
void hint (std::string h);
- void text (PlayerText text, TextType type, dcpomatic::DCPTimePeriod period);
+ void audio (std::shared_ptr<AudioBuffers> audio, dcpomatic::DCPTime time);
+ void text (PlayerText text, TextType type, boost::optional<DCPTextTrack> track, dcpomatic::DCPTimePeriod period);
void closed_caption (PlayerText text, dcpomatic::DCPTimePeriod period);
void open_subtitle (PlayerText text, dcpomatic::DCPTimePeriod period);
void closed_caption (PlayerText text, dcpomatic::DCPTimePeriod period);
void open_subtitle (PlayerText text, dcpomatic::DCPTimePeriod period);
+ void check_interop ();
void check_big_font_files ();
void check_few_audio_channels ();
void check_upmixers ();
void check_big_font_files ();
void check_few_audio_channels ();
void check_upmixers ();
@@
-64,25
+73,39
@@
private:
void check_unusual_container ();
void check_high_j2k_bandwidth ();
void check_frame_rate ();
void check_unusual_container ();
void check_high_j2k_bandwidth ();
void check_frame_rate ();
+ void check_4k_3d ();
void check_speed_up ();
void check_vob ();
void check_3d_in_2d ();
void check_speed_up ();
void check_vob ();
void check_3d_in_2d ();
-
void
check_loudness ();
+
bool
check_loudness ();
void check_ffec_and_ffmc_in_smpte_feature ();
void check_ffec_and_ffmc_in_smpte_feature ();
+ void check_out_of_range_markers ();
+ void check_text_languages ();
+ void check_audio_language ();
boost::thread _thread;
boost::thread _thread;
+ /** This is used to make a partial DCP containing only the subtitles and closed captions that
+ * our final DCP will have. This means we can see how big the files will be and warn if they
+ * will be too big.
+ */
+ std::shared_ptr<Writer> _writer;
- bool _long_ccap;
- bool _overlap_ccap;
- bool _too_many_ccap_lines;
+ AudioAnalyser _analyser;
+
+ bool _long_ccap = false;
+ bool _overlap_ccap = false;
+ bool _too_many_ccap_lines = false;
boost::optional<dcpomatic::DCPTimePeriod> _last_ccap;
boost::optional<dcpomatic::DCPTimePeriod> _last_ccap;
- bool _early_subtitle;
- bool _short_subtitle;
- bool _subtitles_too_close;
- bool _too_many_subtitle_lines;
- bool _long_subtitle;
+ bool _early_subtitle = false;
+ bool _short_subtitle = false;
+ bool _subtitles_too_close = false;
+ bool _too_many_subtitle_lines = false;
+ bool _long_subtitle = false;
+ bool _very_long_subtitle = false;
boost::optional<dcpomatic::DCPTimePeriod> _last_subtitle;
boost::atomic<bool> _stop;
boost::optional<dcpomatic::DCPTimePeriod> _last_subtitle;
boost::atomic<bool> _stop;
+
+ bool _disable_audio_analysis = false;
};
};