summaryrefslogtreecommitdiff
path: root/src/lib/decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-11-04 14:52:43 +0000
committerCarl Hetherington <cth@carlh.net>2012-11-04 14:52:43 +0000
commitd9f9938c2ca2a1f9b27a85bf64a50d7f480f969b (patch)
tree5a3c0abf1813983324e57c896deff490055d311e /src/lib/decoder.cc
parentb4dd5979b6c1d48b0af4fefd9d1df4e9947da402 (diff)
parentc366d41af080b9ac37117a9b27a249722c77f74e (diff)
Merge master.
Diffstat (limited to 'src/lib/decoder.cc')
-rw-r--r--src/lib/decoder.cc15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc
index 783d54010..a8da1ae67 100644
--- a/src/lib/decoder.cc
+++ b/src/lib/decoder.cc
@@ -61,9 +61,7 @@ Decoder::Decoder (boost::shared_ptr<Film> f, boost::shared_ptr<const Options> o,
, _delay_in_bytes (0)
, _audio_frames_processed (0)
{
- if (_opt->decode_video_frequency != 0 && !_film->length()) {
- throw DecodeError ("cannot do a partial decode if length is unknown");
- }
+
}
Decoder::~Decoder ()
@@ -101,7 +99,7 @@ Decoder::process_end ()
int64_t const audio_short_by_frames = video_length_in_audio_frames - _audio_frames_processed;
_film->log()->log (
- String::compose ("DCP length is %1 (%2 audio frames); %3 frames of audio processed.",
+ String::compose ("Source length is %1 (%2 audio frames); %3 frames of audio processed.",
video_frame_index(),
video_length_in_audio_frames,
_audio_frames_processed)
@@ -109,7 +107,7 @@ Decoder::process_end ()
if (audio_short_by_frames >= 0 && _opt->decode_audio) {
- _film->log()->log (String::compose ("DCP length is %1; %2 frames of audio processed.", video_frame_index(), _audio_frames_processed));
+ _film->log()->log (String::compose ("Source length is %1; %2 frames of audio processed.", video_frame_index(), _audio_frames_processed));
_film->log()->log (String::compose ("Adding %1 frames of silence to the end.", audio_short_by_frames));
/* XXX: this is slightly questionable; does memset () give silence with all
@@ -260,12 +258,7 @@ Decoder::process_video (AVFrame* frame)
/* Use Film::length here as our one may be wrong */
- int gap = 0;
- if (_opt->decode_video_frequency != 0) {
- gap = _film->length().get() / _opt->decode_video_frequency;
- }
-
- if (_opt->decode_video_frequency != 0 && gap != 0 && (_video_frame_index % gap) != 0) {
+ if (_opt->decode_video_skip != 0 && (_video_frame_index % _opt->decode_video_skip) != 0) {
++_video_frame_index;
return;
}