Prevent empty <LabelText> in <ContentVersion> (#2594).
authorCarl Hetherington <cth@carlh.net>
Fri, 11 Aug 2023 22:13:08 +0000 (00:13 +0200)
committerCarl Hetherington <cth@carlh.net>
Fri, 11 Aug 2023 22:13:08 +0000 (00:13 +0200)
src/lib/writer.cc
src/wx/interop_metadata_dialog.cc

index 8b8ab89deb9540bb72453dcfc3d072ab85d2273b..1ccf7c7596fd2aa7b15f9ff4559d2fa38c481146 100644 (file)
@@ -616,7 +616,10 @@ Writer::finish (boost::filesystem::path output_dcp)
 
        vector<dcp::ContentVersion> cv;
        for (auto i: film()->content_versions()) {
-               cv.push_back (dcp::ContentVersion(i));
+               /* Make sure we don't end up writing an empty <LabelText> node as some validators
+                * complain about that.
+                */
+               cv.push_back(!i.empty() ? dcp::ContentVersion(i) : dcp::ContentVersion("1"));
        }
        if (cv.empty()) {
                cv = { dcp::ContentVersion("1") };
index 0258f9ca514b39fc7d99ca32774d73f7beb136f6..a3e236691ed4f74afd65e8863f5efb83621a0bd3 100644 (file)
@@ -76,5 +76,10 @@ InteropMetadataDialog::setup_standard (wxPanel* panel, wxSizer* sizer)
 void
 InteropMetadataDialog::content_version_changed ()
 {
-       film()->set_content_versions ({ wx_to_std(_content_version->GetValue()) });
+       auto version = wx_to_std(_content_version->GetValue());
+       if (version.empty()) {
+               film()->set_content_versions({});
+       } else {
+               film()->set_content_versions({version});
+       }
 }