+ 2012-12-13 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.64 released.
+
+ 2012-12-13 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.63 released.
+
+ 2012-12-13 Carl Hetherington <cth@carlh.net>
+
+ * Re-fix reports of zero audio channels
+ with soundtracks of some source files.
+
+ 2012-12-13 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.62 released.
+
+ 2012-12-13 Carl Hetherington <cth@carlh.net>
+
+ * Improve progress reporting during the final
+ DCP make job; should stop the bar sitting at 100%
+ for a while during digest creation.
+
+ 2012-12-11 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.61 released.
+
+ 2012-12-11 Carl Hetherington <cth@carlh.net>
+
+ * More .deb dep tweaks.
+
+ 2012-12-11 Carl Hetherington <cth@carlh.net>
+
+ * Version 0.60 released.
+
+ 2012-12-11 Carl Hetherington <cth@carlh.net>
+
+ * Hopefully fix utterly broken partially-static
+ builds for .debs.
+
+ * Fix specification of architecture in .debs.
+
+2012-12-10 Carl Hetherington <cth@carlh.net>
+
+ * Add a check-box (which defaults to on) which tells DVD-o-matic
+ not to scan new content files to work out their length, but instead
+ to trust the length from the header. This length only matters for
+ working out what thumbnails to generate, so it isn't critical.
+ Trusting the header will speed up the "Examine Content" job by
+ a factor of about 2, which is handy for large films.
+
2012-12-10 Carl Hetherington <cth@carlh.net>
* Version 0.59 released.
if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
_video_stream = i;
} else if (s->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
+
+ /* This is a hack; sometimes it seems that _audio_codec_context->channel_layout isn't set up,
+ so bodge it here. No idea why we should have to do this.
+ */
+
+ if (s->codec->channel_layout == 0) {
+ s->codec->channel_layout = av_get_default_channel_layout (s->codec->channels);
+ }
+
_audio_streams.push_back (
shared_ptr<AudioStream> (
new FFmpegAudioStream (stream_name (s), i, s->codec->sample_rate, s->codec->channel_layout)
)
);
+
} else if (s->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
_subtitle_streams.push_back (
shared_ptr<SubtitleStream> (
throw DecodeError ("could not find video decoder");
}
- /* I think this prevents problems with green hash on decodes and
- "changing frame properties on the fly is not supported by all filters"
- messages with some content. Although I'm not sure; needs checking.
- */
- AVDictionary* opts = 0;
- av_dict_set (&opts, "threads", "1", 0);
-
- if (avcodec_open2 (_video_codec_context, _video_codec, &opts) < 0) {
+ if (avcodec_open2 (_video_codec_context, _video_codec, 0) < 0) {
throw DecodeError ("could not open video decoder");
}
}
if (avcodec_open2 (_audio_codec_context, _audio_codec, 0) < 0) {
throw DecodeError ("could not open audio decoder");
}
-
- /* This is a hack; sometimes it seems that _audio_codec_context->channel_layout isn't set up,
- so bodge it here. No idea why we should have to do this.
- */
-
- if (_audio_codec_context->channel_layout == 0) {
- _audio_codec_context->channel_layout = av_get_default_channel_layout (ffa->channels());
- }
}
void
return String::compose ("ffmpeg %1 %2 %3 %4", _id, _sample_rate, _channel_layout, _name);
}
+/** @return Length (in video frames) according to our content's header */
+SourceFrame
+FFmpegDecoder::length () const
+{
+ return (double(_format_context->duration) / AV_TIME_BASE) * frames_per_second();
+}