| Anonymous | Login | Signup for a new account | 2013-05-26 00:13 CEST | ![]() |
| Main | My View | View Issues | Change Log | Roadmap |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
| ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
| 0001397 | Kdenlive | User Interface | public | 2010-01-24 02:24 | 2012-09-19 09:58 | ||||||||
| Reporter | falkTX | ||||||||||||
| Assigned To | eddrog | ||||||||||||
| Priority | normal | Severity | feature | Reproducibility | always | ||||||||
| Status | assigned | Resolution | open | ||||||||||
| Platform | 64 bit | OS | Kubuntu Linux | OS Version | 9.10 | ||||||||
| Product Version | Recent git | ||||||||||||
| Target Version | future version | Fixed in Version | |||||||||||
| Summary | 0001397: Jack Transport support | ||||||||||||
| Description | Kdenlive should support (sync with) Jack Transport. I'm not talking about audio output, but Transport as timeline frames synced to Jack frames. This should be an option, but not be enabled by default (I can guess most of the users will not use this). When enabled, kdenlive timeline will be synced to Jack, which means: - kdenlive will report the current timeline frame and sync Jack to that, - once the timeline play/pauses/stops, same will happen in Jack Transport - kdenlive should receive and sync Jack frames to the timeline I believe that the best way to get this done is: 1 - add a new option to kdenlive settings: --> "Enable Jack Transport" (with subsettings:) --- --> "[x] kdenlive controls time" (a checkbox) --- --> "[ ] Jack controls time" 2 - Implement basic code (testing), which makes kdenlive controlling Jack Transport. 3 - Implement Jack controlling kdenlive 4 - Bugfix and merge code Please tell me what you think | ||||||||||||
| Tags | No tags attached. | ||||||||||||
| Build/Install Method | Not Applicable | ||||||||||||
| Attached Files | |||||||||||||
Notes |
|
|
(0004583) falkTX (reporter) 2010-01-26 10:45 edited on: 2010-01-26 10:46 |
Please note that, in the "gui.tar.gz", the actuall GUI will not work right (the lineedits and state buttons). I'm mostly a python dev, I'm not used to convert QString->char->int, etc (it's much easier in python...) However, the code shows how to do implement basic Jack Transport. The file "shared.h" are global variables; we first do 'jack_client_open' to get access Jack, then there are some actions: play/pause/locate. The refresh function will get the current Transport frame and time 'k_frame' and 'k_time'. (Those values are not properly set in the lineedits, please fix it if you know how) |
|
(0004584) falkTX (reporter) 2010-01-26 10:51 |
Also, we should discuss whatever the implementation will be done in Kdenlive or MLT. I don't know how deeply kdenlive depends on MLT. Does MLT "controls" the timeline? |
|
(0004635) falkTX (reporter) 2010-02-04 13:44 |
Just added new code "jackit-cmd". This one is a very basic CLI app. It can do: - start jack transport - stop (pause) - go to a specific jack frame - go to a specific time (miliseconds) - get current jack frame - get current jack time I put a lot of comments in the code so it's easy to understand. To compile, type "make" (you just need the basic Qt libs and jack) |
|
(0004637) ddennedy (developer) 2010-02-04 19:21 |
Hi. I know jbm said that he believes this might be more proper in MLT. As the primary MLT dev, I am not quite in agreement yet. Currently, services (e.g. filters) are not supposed to affect seeking - they are like slaves. You will see some things like the framebuffer producer that encapsulate another producer and makes it seek , but this is still a slave to the application. I will keep thinking about this. Thanks for the code and the effort. I might have a play around with integrating it into melt. While I am quite interested in this, I am also extremely busy over the next couple of months with a commercial (i.e. commitment) MLT project. |
|
(0004638) falkTX (reporter) 2010-02-04 19:26 |
In my opinion, Jack Transport should be implemented in Kdenlive rather then in MLT. It's about controlling the timeline, which I guess Kdenlive does, while using MLT for processing (like mlt is the slave). |
|
(0004647) falkTX (reporter) 2010-02-05 10:17 |
Good news! I've successfully coded some of the stuff to get this done (kdenlive syncing timeline to Jack time) I'll work on this on the weekend and then I'll make a patch. |
|
(0004663) falkTX (reporter) 2010-02-06 20:21 |
Just uploaded the patch (diff) to make this baby work. Kdenlive gets sync from Jack using a QTimer (each 200ms). Kdenlive also sends Jack transport back when needed. You'll need to add "-ljack" to the build process to make it compile, or just edit "build/src/cmake_bindir/CMakeFiles/kdenlive.dir/link.txt" and add it to the end of the file. Please test! |
|
(0005623) ttill (developer) 2010-08-13 23:53 |
Are you still willing to help to get this done? At that time all of us developers were really busy (and are still ;)), I hope you are not to frustrated. If you still want to continue I will try to assist (although I'm not known to jack (yet)). Will setup jack then on my machine and test your code. |
|
(0005634) falkTX (reporter) 2010-08-16 10:45 |
Of course I am! I now know a lot more about C++ and Jack, so I should be able to get this done shortly. I'll let you know how it goes |
|
(0005700) ttill (developer) 2010-08-29 10:27 |
We plan to release Kdenlive 0.7.8 on 13th September with string freeze on 1st September. So jack support won't make it into this release. Could you please give me a short update about the current status? |
|
(0005705) falkTX (reporter) 2010-08-30 17:42 |
Just uploaded a new patch of my current work. as you will see, it kinda sucks... it still need lots of work to get this done |
|
(0006598) ddennedy (developer) 2011-03-18 19:57 |
I started working on this with MLT in a private branch. It already works quite well. With this approach, MLT outputs directly to Jack without needing an ALSA or PulseAudio shim. The way it works with the UI/frontend is that the MLT jackrack filter exposes MLT events. The frontend listens to events like jack-stopped and jack-synced and tells MLT to pause and play/seek. Also, the frontend, upon user input, fires events such as jack-start, jack-stop, and jack-seek to which the filter listens and relays as jack_transport functions. I have integrated it with melt, and already it works very well. However, I need to do additional work to tighten the time synchronization between MLT and Jack. Then, the MLT events will need to be integrated into Kdenlive (looking for volunteer). |
|
(0006612) falkTX (reporter) 2011-03-20 03:54 |
hey ddennedy, that is great news! but... do this apply to audio too? (using jack as audio driver) |
|
(0006613) falkTX (reporter) 2011-03-20 03:58 |
a little off-topic, but I'm working on a small multi-plugin host (LADSPA and DSSI are working fine) http://repo.or.cz/w/cadence.git/tree/master:/src/carla [^] Part of my jack related tools, maybe useful in some way... |
|
(0007266) gnaag (reporter) 2011-09-03 23:25 |
Can I ask what is the support of jack now? Is it available in kdenlive 0.8? |
|
(0007267) ddennedy (developer) 2011-09-03 23:38 |
not in 0.8 and necessary kdenlive changes not even started AFAIK |
|
(0008114) eddrog (developer) 2012-06-05 13:44 |
For some month I'm working on the jack (mlt jackrack filter) integration in kdenlive. The basic work is done but there are some issues yet that has to be fixed in mlt before I can contribute the code to kdenlive. Probably this feature will be available first in the refactored kdenlive. If the issues can be fixed quick perhaps we can add it in the 0.9 tree but I think this can be discussed later. @j-b-m can you assign to me this issue? |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2010-01-24 02:24 | falkTX | New Issue | |
| 2010-01-25 15:38 | j-b-m | File Added: gui.tar.gz | |
| 2010-01-26 10:45 | falkTX | Note Added: 0004583 | |
| 2010-01-26 10:46 | falkTX | Note Edited: 0004583 | View Revisions |
| 2010-01-26 10:51 | falkTX | Note Added: 0004584 | |
| 2010-02-04 13:40 | falkTX | File Added: jackit-cmd.tar.gz | |
| 2010-02-04 13:44 | falkTX | Note Added: 0004635 | |
| 2010-02-04 19:21 | ddennedy | Note Added: 0004637 | |
| 2010-02-04 19:26 | falkTX | Note Added: 0004638 | |
| 2010-02-05 10:17 | falkTX | Note Added: 0004647 | |
| 2010-02-06 20:19 | falkTX | File Added: jacktrans_rcs.diff.tar.gz | |
| 2010-02-06 20:21 | falkTX | Note Added: 0004663 | |
| 2010-08-13 23:53 | ttill | Note Added: 0005623 | |
| 2010-08-13 23:54 | ttill | Status | new => feedback |
| 2010-08-16 10:45 | falkTX | Note Added: 0005634 | |
| 2010-08-16 10:45 | falkTX | Status | feedback => new |
| 2010-08-29 10:27 | ttill | Note Added: 0005700 | |
| 2010-08-29 10:27 | ttill | Status | new => feedback |
| 2010-08-29 10:27 | ttill | Target Version | => future version |
| 2010-08-30 17:40 | falkTX | File Added: kdenlive_jacktransport_v02.patch.gz | |
| 2010-08-30 17:42 | falkTX | Note Added: 0005705 | |
| 2010-08-30 17:42 | falkTX | Status | feedback => new |
| 2010-09-06 22:05 | ttill | Status | new => acknowledged |
| 2011-03-18 19:57 | ddennedy | Note Added: 0006598 | |
| 2011-03-20 03:54 | falkTX | Note Added: 0006612 | |
| 2011-03-20 03:58 | falkTX | Note Added: 0006613 | |
| 2011-09-03 23:25 | gnaag | Note Added: 0007266 | |
| 2011-09-03 23:38 | ddennedy | Note Added: 0007267 | |
| 2012-06-05 13:44 | eddrog | Note Added: 0008114 | |
| 2012-06-05 18:25 | j-b-m | Assigned To | => eddrog |
| 2012-06-05 18:25 | j-b-m | Status | acknowledged => assigned |
| 2012-09-10 15:48 | eddrog | Status | assigned => acknowledged |
| 2012-09-10 16:46 | j-b-m | Status | acknowledged => assigned |
| 2012-09-19 09:58 | eddrog | Relationship added | has duplicate 0001355 |
| Copyright © 2000 - 2013 MantisBT Team |