diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-06-01 17:23:39 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-06-01 17:23:39 +0100 |
| commit | 97d25da42455d0ed93c2eebe023883767bb12d53 (patch) | |
| tree | 3fe2d7b795e61fcc084e3f556e6f1be2e95b0c1c /src/lib | |
| parent | bf1191b8c548903f7a7d0664a51d15611573d00b (diff) | |
Put codec name into the audio mapping view for each stream.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/content_factory.cc | 1 | ||||
| -rw-r--r-- | src/lib/ffmpeg_audio_stream.cc | 4 | ||||
| -rw-r--r-- | src/lib/ffmpeg_audio_stream.h | 7 | ||||
| -rw-r--r-- | src/lib/ffmpeg_examiner.cc | 3 |
4 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/content_factory.cc b/src/lib/content_factory.cc index 264cac325..7b02ee111 100644 --- a/src/lib/content_factory.cc +++ b/src/lib/content_factory.cc @@ -43,6 +43,7 @@ using std::string; using std::list; using boost::shared_ptr; +using boost::optional; #define LOG_GENERAL(...) film->log()->log (String::compose (__VA_ARGS__), LogEntry::TYPE_GENERAL); diff --git a/src/lib/ffmpeg_audio_stream.cc b/src/lib/ffmpeg_audio_stream.cc index e0c8cae4c..a81f69e65 100644 --- a/src/lib/ffmpeg_audio_stream.cc +++ b/src/lib/ffmpeg_audio_stream.cc @@ -38,6 +38,7 @@ FFmpegAudioStream::FFmpegAudioStream (cxml::ConstNodePtr node, int version) if (f) { first_audio = ContentTime (f.get ()); } + codec_name = node->optional_string_child("CodecName"); } void @@ -50,4 +51,7 @@ FFmpegAudioStream::as_xml (xmlpp::Node* root) const if (first_audio) { root->add_child("FirstAudio")->add_child_text (raw_convert<string> (first_audio.get().get ())); } + if (codec_name) { + root->add_child("CodecName")->add_child_text (codec_name.get()); + } } diff --git a/src/lib/ffmpeg_audio_stream.h b/src/lib/ffmpeg_audio_stream.h index 31ec9d125..a754ec574 100644 --- a/src/lib/ffmpeg_audio_stream.h +++ b/src/lib/ffmpeg_audio_stream.h @@ -32,6 +32,12 @@ public: , AudioStream (frame_rate, length, channels) {} + FFmpegAudioStream (std::string name, std::string codec_name_, int id, int frame_rate, Frame length, int channels) + : FFmpegStream (name, id) + , AudioStream (frame_rate, length, channels) + , codec_name (codec_name_) + {} + FFmpegAudioStream (std::string name, int id, int frame_rate, Frame length, AudioMapping mapping) : FFmpegStream (name, id) , AudioStream (frame_rate, length, mapping) @@ -44,6 +50,7 @@ public: /* XXX: should probably be locked */ boost::optional<ContentTime> first_audio; + boost::optional<std::string> codec_name; private: friend struct ffmpeg_pts_offset_test; diff --git a/src/lib/ffmpeg_examiner.cc b/src/lib/ffmpeg_examiner.cc index 06154cc8c..18a87f40e 100644 --- a/src/lib/ffmpeg_examiner.cc +++ b/src/lib/ffmpeg_examiner.cc @@ -63,11 +63,14 @@ FFmpegExaminer::FFmpegExaminer (shared_ptr<const FFmpegContent> c, shared_ptr<Jo } DCPOMATIC_ASSERT (_format_context->duration != AV_NOPTS_VALUE); + DCPOMATIC_ASSERT (s->codec->codec); + DCPOMATIC_ASSERT (s->codec->codec->name); _audio_streams.push_back ( shared_ptr<FFmpegAudioStream> ( new FFmpegAudioStream ( stream_name (s), + s->codec->codec->name, s->id, s->codec->sample_rate, (double (_format_context->duration) / AV_TIME_BASE) * s->codec->sample_rate, |
