/** @param f Film.
* @param o Options.
* @param j Job that we are running within, or 0
- * @param minimal true to do the bare minimum of work; just run through the content. Useful for acquiring
- * accurate frame counts as quickly as possible. This generates no video or audio output.
*/
-Decoder::Decoder (boost::shared_ptr<Film> f, boost::shared_ptr<const Options> o, Job* j, bool minimal)
+Decoder::Decoder (boost::shared_ptr<Film> f, boost::shared_ptr<const Options> o, Job* j)
: _film (f)
, _opt (o)
, _job (j)
- , _minimal (minimal)
, _video_frame_index (0)
, _delay_line (0)
, _delay_in_bytes (0)
{
assert (_film->length());
- if (_minimal) {
- ++_video_frame_index;
- return;
- }
-
/* Use Film::length here as our one may be wrong */
if (_opt->decode_video_skip != 0 && (_video_frame_index % _opt->decode_video_skip) != 0) {
class Decoder
{
public:
- Decoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *, bool);
+ Decoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *);
virtual ~Decoder ();
/* Methods to query our input video */
/** associated Job, or 0 */
Job* _job;
- /** true to do the bare minimum of work; just run through the content. Useful for acquiring
- * accurate frame counts as quickly as possible. This generates no video or audio output.
- */
- bool _minimal;
-
private:
void emit_audio (uint8_t* data, int size);
using boost::shared_ptr;
shared_ptr<Decoder>
-decoder_factory (
- shared_ptr<Film> f, shared_ptr<const Options> o, Job* j, bool minimal = false
- )
+decoder_factory (shared_ptr<Film> f, shared_ptr<const Options> o, Job* j)
{
if (boost::filesystem::is_directory (f->content_path ())) {
/* Assume a directory contains TIFFs */
- return shared_ptr<Decoder> (new TIFFDecoder (f, o, j, minimal));
+ return shared_ptr<Decoder> (new TIFFDecoder (f, o, j));
}
if (f->content_type() == STILL) {
- return shared_ptr<Decoder> (new ImageMagickDecoder (f, o, j, minimal));
+ return shared_ptr<Decoder> (new ImageMagickDecoder (f, o, j));
}
- return shared_ptr<Decoder> (new FFmpegDecoder (f, o, j, minimal));
+ return shared_ptr<Decoder> (new FFmpegDecoder (f, o, j));
}
class Film;
class Options;
class Job;
-class Log;
-extern boost::shared_ptr<Decoder> decoder_factory (
- boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *, bool minimal = false
- );
+extern boost::shared_ptr<Decoder> decoder_factory (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *);
descend (0.5);
- _decoder = decoder_factory (_film, o, this, true);
+ _decoder = decoder_factory (_film, o, this);
_decoder->go ();
_film->set_length (_decoder->video_frame_index());
using std::stringstream;
using boost::shared_ptr;
-FFmpegDecoder::FFmpegDecoder (shared_ptr<Film> f, shared_ptr<const Options> o, Job* j, bool minimal)
- : Decoder (f, o, j, minimal)
+FFmpegDecoder::FFmpegDecoder (shared_ptr<Film> f, shared_ptr<const Options> o, Job* j)
+ : Decoder (f, o, j)
, _format_context (0)
, _video_stream (-1)
, _audio_stream (-1)
class FFmpegDecoder : public Decoder
{
public:
- FFmpegDecoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *, bool);
+ FFmpegDecoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *);
~FFmpegDecoder ();
/* Methods to query our input video */
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 ());
using namespace boost;
ImageMagickDecoder::ImageMagickDecoder (
- boost::shared_ptr<Film> f, boost::shared_ptr<const Options> o, Job* j, bool minimal)
- : Decoder (f, o, j, minimal)
+ boost::shared_ptr<Film> f, boost::shared_ptr<const Options> o, Job* j)
+ : Decoder (f, o, j)
, _done (false)
{
_magick_image = new Magick::Image (_film->content_path ());
class ImageMagickDecoder : public Decoder
{
public:
- ImageMagickDecoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *, bool);
+ ImageMagickDecoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *);
float frames_per_second () const {
return static_frames_per_second ();
/** @param f Our Film.
* @param o Options.
* @param j Job that we are associated with, or 0.
- * @param minimal true to do the bare minimum of work; just run through the content. Useful for acquiring
- * accurate frame counts as quickly as possible. This generates no video or audio output.
*/
-TIFFDecoder::TIFFDecoder (boost::shared_ptr<Film> f, boost::shared_ptr<const Options> o, Job* j, bool minimal)
- : Decoder (f, o, j, minimal)
+TIFFDecoder::TIFFDecoder (boost::shared_ptr<Film> f, boost::shared_ptr<const Options> o, Job* j)
+ : Decoder (f, o, j)
{
string const dir = _film->content_path ();
class TIFFDecoder : public Decoder
{
public:
- TIFFDecoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *, bool);
+ TIFFDecoder (boost::shared_ptr<Film>, boost::shared_ptr<const Options>, Job *);
/* Methods to query our input video */
float frames_per_second () const;