]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.cpp
Merge branch 'master' of git://anongit.kde.org/kdenlive
[kdenlive] / src / renderer.cpp
index 3343bd52a6c6e90014e9d7889e49c750ef4fc80d..3f423aea0abea9df85844024a25e224c353cf9d1 100644 (file)
@@ -1707,8 +1707,9 @@ void Render::showAudio(Mlt::Frame& frame)
         return;
     }
     mlt_audio_format audio_format = mlt_audio_s16;
-    int freq = 0;
-    int num_channels = 0;
+    //FIXME: should not be hardcoded..
+    int freq = 48000;
+    int num_channels = 2;
     int samples = 0;
     int16_t* data = (int16_t*)frame.get_audio(audio_format, freq, num_channels, samples);
 
@@ -2870,7 +2871,7 @@ bool Render::mltEditEffect(int track, GenTime position, EffectsParameterList par
     }
 
     for (int j = 0; j < params.count(); j++) {
-        filter->set((params.at(j).name()).toUtf8().constData(), params.at(j).value().toUtf8().constData());
+        filter->set(params.at(j).name().toUtf8().constData(), params.at(j).value().toUtf8().constData());
     }
     
     for (int j = 0; j < filtersList.count(); j++) {
@@ -3288,10 +3289,10 @@ void Render::fixAudioMixing(Mlt::Tractor tractor)
     mlt_service_unlock(serv);
 }
 
-bool Render::mltResizeClipCrop(ItemInfo info, GenTime diff)
+bool Render::mltResizeClipCrop(ItemInfo info, GenTime newCropStart)
 {
     Mlt::Service service(m_mltProducer->parent().get_service());
-    int frameOffset = (int) diff.frames(m_fps);
+    int newCropFrame = (int) newCropStart.frames(m_fps);
     Mlt::Tractor tractor(service);
     Mlt::Producer trackProducer(tractor.track(info.track));
     Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service());
@@ -3310,7 +3311,13 @@ bool Render::mltResizeClipCrop(ItemInfo info, GenTime diff)
     int previousStart = clip->get_in();
     int previousOut = clip->get_out();
     delete clip;
-    trackPlaylist.resize_clip(clipIndex, previousStart + frameOffset, previousOut + frameOffset);
+    if (previousStart == newCropFrame) {
+       kDebug() << "////////  No ReSIZING Required";
+        service.unlock();
+        return true;
+    }
+    int frameOffset = newCropFrame - previousStart;
+    trackPlaylist.resize_clip(clipIndex, newCropFrame, previousOut + frameOffset);
     service.unlock();
     m_mltConsumer->set("refresh", 1);
     return true;
@@ -4397,6 +4404,7 @@ const QString Render::activeClipId()
 //static 
 bool Render::getBlackMagicDeviceList(KComboBox *devicelist)
 {
+    if (!KdenliveSettings::decklink_device_found()) return false;
     Mlt::Profile profile;
     Mlt::Producer bm(profile, "decklink");
     int found_devices = 0;
@@ -4404,6 +4412,7 @@ bool Render::getBlackMagicDeviceList(KComboBox *devicelist)
        bm.set("list_devices", 1);
        found_devices = bm.get_int("devices");
     }
+    else KdenliveSettings::setDecklink_device_found(false);
     if (found_devices <= 0) {
        devicelist->setEnabled(false);
        return false;
@@ -4418,6 +4427,7 @@ bool Render::getBlackMagicDeviceList(KComboBox *devicelist)
 
 bool Render::getBlackMagicOutputDeviceList(KComboBox *devicelist)
 {
+    if (!KdenliveSettings::decklink_device_found()) return false;
     Mlt::Profile profile;
     Mlt::Consumer bm(profile, "decklink");
     int found_devices = 0;
@@ -4425,6 +4435,7 @@ bool Render::getBlackMagicOutputDeviceList(KComboBox *devicelist)
        bm.set("list_devices", 1);
        found_devices = bm.get_int("devices");
     }
+    else KdenliveSettings::setDecklink_device_found(false);
     if (found_devices <= 0) {
        devicelist->setEnabled(false);
        return false;