Merge master.
[dcpomatic.git] / src / lib / ffmpeg_examiner.cc
index df12830f819eb182c2c04db9838e71f550e236ff..48d85da6f11113cb6cabc83215505c8df766110a 100644 (file)
@@ -26,13 +26,13 @@ extern "C" {
 #include "ffmpeg_audio_stream.h"
 #include "ffmpeg_subtitle_stream.h"
 #include "util.h"
+#include "safe_stringstream.h"
 
 #include "i18n.h"
 
 using std::string;
 using std::cout;
 using std::max;
-using std::stringstream;
 using boost::shared_ptr;
 using boost::optional;
 
@@ -73,7 +73,7 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr<const FFmpegContent> c)
         * where we should look for subtitles (video and audio are always present,
         * so they are ok).
         */
-       while (1) {
+       while (true) {
                int r = av_read_frame (_format_context, &_packet);
                if (r < 0) {
                        break;
@@ -177,13 +177,13 @@ ContentTime
 FFmpegExaminer::video_length () const
 {
        ContentTime const length = ContentTime::from_seconds (double (_format_context->duration) / AV_TIME_BASE);
-       return ContentTime (max (int64_t (1), length.get ()));
+       return ContentTime (max (ContentTime::Type (1), length.get ()));
 }
 
 string
 FFmpegExaminer::audio_stream_name (AVStream* s) const
 {
-       stringstream n;
+       SafeStringStream n;
 
        n << stream_name (s);
 
@@ -199,7 +199,7 @@ FFmpegExaminer::audio_stream_name (AVStream* s) const
 string
 FFmpegExaminer::subtitle_stream_name (AVStream* s) const
 {
-       stringstream n;
+       SafeStringStream n;
 
        n << stream_name (s);
 
@@ -213,7 +213,7 @@ FFmpegExaminer::subtitle_stream_name (AVStream* s) const
 string
 FFmpegExaminer::stream_name (AVStream* s) const
 {
-       stringstream n;
+       SafeStringStream n;
 
        if (s->metadata) {
                AVDictionaryEntry const * lang = av_dict_get (s->metadata, "language", 0, 0);