#include <QCryptographicHash>
+#include <cstdio>
+
DocClipBase::DocClipBase(ClipManager *clipManager, QDomElement xml, const QString &id) :
QObject(),
m_audioFrameCache(),
m_baseTrackProducers(),
m_audioTrackProducers(),
m_videoOnlyProducer(NULL),
- m_snapMarkers(),
+ m_snapMarkers(QList < CommentedTime >()),
m_duration(),
m_audioTimer(NULL),
m_thumbProd(NULL),
return m_snapMarkers;
}
-void DocClipBase::setSnapMarkers(QList < CommentedTime > markers)
-{
- m_snapMarkers = markers;
-}
void DocClipBase::addSnapMarker(const GenTime & time, QString comment)
{
void DocClipBase::setProducer(Mlt::Producer *producer, bool reset)
{
- if (producer == NULL) return;
+ if (producer == NULL || m_placeHolder) return;
if (reset) {
// Clear all previous producers
kDebug() << "/+++++++++++++++ DELETE ALL PRODS " << producer->get("id");
return m_cutZones;
}
+bool DocClipBase::hasVideoCodec(const QString &codec) const
+{
+ Mlt::Producer *prod = NULL;
+ if (m_baseTrackProducers.count() == 0) return false;
+ for (int i = 0; i < m_baseTrackProducers.count(); i++) {
+ if (m_baseTrackProducers.at(i) != NULL) {
+ prod = m_baseTrackProducers.at(i);
+ break;
+ }
+ }
+
+ if (!prod) return false;
+ int default_video = prod->get_int("video_index");
+ char property[200];
+ snprintf(property, sizeof(property), "meta.media.%d.codec.name", default_video);
+ return prod->get(property) == codec;
+}
+
+bool DocClipBase::hasAudioCodec(const QString &codec) const
+{
+ Mlt::Producer *prod = NULL;
+ if (m_baseTrackProducers.count() == 0) return false;
+ for (int i = 0; i < m_baseTrackProducers.count(); i++) {
+ if (m_baseTrackProducers.at(i) != NULL) {
+ prod = m_baseTrackProducers.at(i);
+ break;
+ }
+ }
+ if (!prod) return false;
+ int default_video = prod->get_int("audio_index");
+ char property[200];
+ snprintf(property, sizeof(property), "meta.media.%d.codec.name", default_video);
+ return prod->get(property) == codec;
+}
+