Fix loading of some old metadata versions.
authorCarl Hetherington <cth@carlh.net>
Sun, 14 Aug 2016 23:17:58 +0000 (00:17 +0100)
committerCarl Hetherington <cth@carlh.net>
Sun, 14 Aug 2016 23:17:58 +0000 (00:17 +0100)
src/lib/dcp_content.cc

index 44c7ce5784b2ec08a52a6be888d3f8abce6433e7..d866a6b86c69f03a9593d04b94d8ec1b2a5bca1c 100644 (file)
@@ -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)
                                )
                        )