using std::string;
using std::cout;
using std::vector;
-using std::stringstream;
using std::fixed;
using std::list;
using std::pair;
}
shared_ptr<AudioContent>
-AudioContent::from_xml (Content* parent, cxml::ConstNodePtr node)
+AudioContent::from_xml (Content* parent, cxml::ConstNodePtr node, int version)
{
+ if (version < 34) {
+ /* With old metadata FFmpeg content has the audio-related tags even with no
+ audio streams, so check for that.
+ */
+ if (node->string_child("Type") == "FFmpeg" && node->node_children("AudioStream").empty()) {
+ return shared_ptr<AudioContent> ();
+ }
+
+ /* Otherwise we can drop through to the newer logic */
+ }
+
if (!node->optional_number_child<double> ("AudioGain")) {
return shared_ptr<AudioContent> ();
}
}
if (stream) {
- p.push_back (UserProperty (_("Audio"), _("Channels"), stream->channels ()));
- p.push_back (UserProperty (_("Audio"), _("Content audio sample rate"), stream->frame_rate(), _("Hz")));
+ p.push_back (UserProperty (UserProperty::AUDIO, _("Channels"), stream->channels ()));
+ p.push_back (UserProperty (UserProperty::AUDIO, _("Content audio sample rate"), stream->frame_rate(), _("Hz")));
}
FrameRateChange const frc (_parent->active_video_frame_rate(), _parent->film()->video_frame_rate());
ContentTime const c (_parent->full_length(), frc);
p.push_back (
- UserProperty (_("Length"), _("Full length in video frames at content rate"), c.frames_round(frc.source))
+ UserProperty (UserProperty::LENGTH, _("Full length in video frames at content rate"), c.frames_round(frc.source))
);
if (stream) {
p.push_back (
UserProperty (
- _("Length"),
+ UserProperty::LENGTH,
_("Full length in audio samples at content rate"),
c.frames_round (stream->frame_rate ())
)
);
}
- p.push_back (UserProperty (_("Audio"), _("DCP frame rate"), resampled_frame_rate (), _("Hz")));
- p.push_back (UserProperty (_("Length"), _("Full length in video frames at DCP rate"), c.frames_round (frc.dcp)));
+ p.push_back (UserProperty (UserProperty::AUDIO, _("DCP sample rate"), resampled_frame_rate (), _("Hz")));
+ p.push_back (UserProperty (UserProperty::LENGTH, _("Full length in video frames at DCP rate"), c.frames_round (frc.dcp)));
if (stream) {
p.push_back (
UserProperty (
- _("Length"),
+ UserProperty::LENGTH,
_("Full length in audio samples at DCP rate"),
c.frames_round (resampled_frame_rate ())
)