summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-08-15 00:17:58 +0100
committerCarl Hetherington <cth@carlh.net>2016-08-15 00:17:58 +0100
commitceeb74f2059005f604d00d955c68cb5be4ded284 (patch)
treefb1bc4e98823a07f595d3c1a5cf175acac2af092
parenta46dc9818f2d244023fbc0a8362db7203ff610ce (diff)
Fix loading of some old metadata versions.
-rw-r--r--src/lib/dcp_content.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc
index 44c7ce578..d866a6b86 100644
--- a/src/lib/dcp_content.cc
+++ b/src/lib/dcp_content.cc
@@ -85,7 +85,10 @@ DCPContent::DCPContent (shared_ptr<const Film> film, cxml::ConstNodePtr node, in
AudioStreamPtr (
new AudioStream (
node->number_child<int> ("AudioFrameRate"),
- node->number_child<Frame> ("AudioLength"),
+ /* AudioLength was not present in some old metadata versions */
+ node->optional_number_child<Frame>("AudioLength").get_value_or (
+ video->length() * node->number_child<int>("AudioFrameRate") / video_frame_rate().get()
+ ),
AudioMapping (node->node_child ("AudioMapping"), version)
)
)