projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '2.0' of ssh://main.carlh.net/home/carl/git/dcpomatic into 2.0
[dcpomatic.git]
/
src
/
lib
/
ffmpeg_examiner.cc
diff --git
a/src/lib/ffmpeg_examiner.cc
b/src/lib/ffmpeg_examiner.cc
index 62b909b1d65f3708293ca8dcbe91fe4a371d4608..46e93b16c322e9d469635b9d5e82cee11f366f3c 100644
(file)
--- a/
src/lib/ffmpeg_examiner.cc
+++ b/
src/lib/ffmpeg_examiner.cc
@@
-26,13
+26,13
@@
extern "C" {
#include "ffmpeg_audio_stream.h"
#include "ffmpeg_subtitle_stream.h"
#include "util.h"
#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;
#include "i18n.h"
using std::string;
using std::cout;
using std::max;
-using std::stringstream;
using boost::shared_ptr;
using boost::optional;
using boost::shared_ptr;
using boost::optional;
@@
-176,14
+176,21
@@
FFmpegExaminer::video_size () const
ContentTime
FFmpegExaminer::video_length () const
{
ContentTime
FFmpegExaminer::video_length () const
{
- ContentTime const length = ContentTime::from_seconds (double (_format_context->duration
- _format_context->start_time
) / AV_TIME_BASE);
+ ContentTime const length = ContentTime::from_seconds (double (_format_context->duration) / AV_TIME_BASE);
return ContentTime (max (ContentTime::Type (1), length.get ()));
}
return ContentTime (max (ContentTime::Type (1), length.get ()));
}
+optional<float>
+FFmpegExaminer::sample_aspect_ratio () const
+{
+ AVRational sar = av_guess_sample_aspect_ratio (_format_context, _format_context->streams[_video_stream], 0);
+ return float (sar.num) / sar.den;
+}
+
string
FFmpegExaminer::audio_stream_name (AVStream* s) const
{
string
FFmpegExaminer::audio_stream_name (AVStream* s) const
{
-
strings
tream n;
+
SafeStringS
tream n;
n << stream_name (s);
n << stream_name (s);
@@
-199,7
+206,7
@@
FFmpegExaminer::audio_stream_name (AVStream* s) const
string
FFmpegExaminer::subtitle_stream_name (AVStream* s) const
{
string
FFmpegExaminer::subtitle_stream_name (AVStream* s) const
{
-
strings
tream n;
+
SafeStringS
tream n;
n << stream_name (s);
n << stream_name (s);
@@
-213,7
+220,7
@@
FFmpegExaminer::subtitle_stream_name (AVStream* s) const
string
FFmpegExaminer::stream_name (AVStream* s) const
{
string
FFmpegExaminer::stream_name (AVStream* s) const
{
-
strings
tream n;
+
SafeStringS
tream n;
if (s->metadata) {
AVDictionaryEntry const * lang = av_dict_get (s->metadata, "language", 0, 0);
if (s->metadata) {
AVDictionaryEntry const * lang = av_dict_get (s->metadata, "language", 0, 0);