Merge branch 'master' into speed-up
authorCarl Hetherington <cth@carlh.net>
Sat, 15 Dec 2012 01:01:12 +0000 (01:01 +0000)
committerCarl Hetherington <cth@carlh.net>
Sat, 15 Dec 2012 01:01:12 +0000 (01:01 +0000)
1  2 
ChangeLog
src/lib/ffmpeg_decoder.cc

diff --combined ChangeLog
index 716a130d7f0f783adf2d873640d1e031ca9ec2dc,6524aa3ed51afa6f731b72df8bc6dd0f91534fa1..e463d17c8dd53f27e9bdcfa3ab2c9aebf57f357b
+++ b/ChangeLog
@@@ -1,12 -1,45 +1,54 @@@
+ 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.
index fd522a5ac374bc10116bbd916c6a27dce0f611ea,46e851e372439a232169b77f1e0a229559dc831a..acaf149f43ade599dff78d95c109d36c86133097
@@@ -120,11 -120,21 +120,21 @@@ FFmpegDecoder::setup_general (
                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> (
@@@ -154,7 -164,14 +164,7 @@@ FFmpegDecoder::setup_video (
                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");
        }
  }
@@@ -179,14 -196,6 +189,6 @@@ FFmpegDecoder::setup_audio (
        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
@@@ -629,9 -638,3 +631,9 @@@ FFmpegAudioStream::to_string () cons
        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();
 +}