X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fsndfile_content.cc;h=963abb58e0f63d3dc12e4f91859cc296a5b5f63f;hb=0c66eaeac227d6aeb63a7a36e202ef87081dc222;hp=539b0dfb586a4926c47e4e1f3e6678966e254ad9;hpb=c921cfe23b593d7c367ad76094308c5f08037374;p=dcpomatic.git diff --git a/src/lib/sndfile_content.cc b/src/lib/sndfile_content.cc index 539b0dfb5..963abb58e 100644 --- a/src/lib/sndfile_content.cc +++ b/src/lib/sndfile_content.cc @@ -1,3 +1,5 @@ +/* -*- c-basic-offset: 8; default-tab-width: 8; -*- */ + /* Copyright (C) 2013 Carl Hetherington @@ -48,6 +50,7 @@ SndfileContent::SndfileContent (shared_ptr node) _audio_channels = node->number_child ("AudioChannels"); _audio_length = node->number_child ("AudioLength"); _audio_frame_rate = node->number_child ("AudioFrameRate"); + _mapping = AudioMapping (node->node_child ("Mapping")); } string @@ -68,7 +71,7 @@ SndfileContent::information () const s << String::compose ( _("%1 channels, %2kHz, %3 samples"), audio_channels(), - audio_frame_rate() / 1000.0, + content_audio_frame_rate() / 1000.0, audio_length() ); @@ -103,6 +106,7 @@ SndfileContent::examine (shared_ptr film, shared_ptr job, bool quick) _audio_channels = dec.audio_channels (); _audio_length = dec.audio_length (); _audio_frame_rate = dec.audio_frame_rate (); + _mapping = AudioMapping (_audio_channels); } signal_changed (AudioContentProperty::AUDIO_CHANNELS); @@ -118,5 +122,18 @@ SndfileContent::as_xml (xmlpp::Node* node) const node->add_child("AudioChannels")->add_child_text (lexical_cast (_audio_channels)); node->add_child("AudioLength")->add_child_text (lexical_cast (_audio_length)); node->add_child("AudioFrameRate")->add_child_text (lexical_cast (_audio_frame_rate)); + _mapping.as_xml (node->add_child("Mapping")); +} + +int +SndfileContent::output_audio_frame_rate (shared_ptr) const +{ + /* Resample to a DCI-approved sample rate */ + return dcp_audio_frame_rate (content_audio_frame_rate ()); } +Time +SndfileContent::length (shared_ptr film) const +{ + return film->audio_frames_to_time (audio_length ()); +}