Author Topic: MLV App 1.13 - All in one MLV Video Post Processing App [Windows, Mac and Linux]  (Read 690388 times)

names_are_hard

  • Developer
  • Senior
  • *****
  • Posts: 385
  • 200D idiot
There are tools for finding file handle leaks.  Valgrind can do this, if you use --track-fds=yes (valgrind will make the code run *very* slow though).

ulimit -n is a per process file handle limit.  You can increase this, e.g., ulimit -n 2048.  Mac does set the default very low.  Note that changes to ulimit only work for the process you run the command in, and its children.  That means you must start MLV App from the same terminal you ran ulimit in, or it will keep using the 256 default.


masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
I tried to fix it. Here it works since hours now (macOS). Maybe someone else like to try it, also on other platforms. Download, compile, test.  8)
5D3.113 | EOSM.202

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7158
Send the tester your version. Not many users work with the darkframe function.

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
If I understood right he's on Windows. No Windows here.
5D3.113 | EOSM.202

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7158
Oh crap. Good fixing though...

bouncyball

  • Contributor
  • Hero Member
  • *****
  • Posts: 822
Hello guys!

I see some nasty hickups revealed in the darkframe code. Despite I wrote this part I use this feature very seldom myself so never noticed anything unusual.
Thanks for reporting it and thanks for the patch comited by @masc.

@masc: did that help with debug messages? (indeed handle leak)

regards
bb



masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
Hi bouncyball! Nice to have you here! Yes, the debug info gave me the initial idea.. after a long time of waiting for a bug  8) . Maybe you could have a look on my changes... you probably know better if that's a good fix or not.
5D3.113 | EOSM.202

bouncyball

  • Contributor
  • Hero Member
  • *****
  • Posts: 822
I already saw it. Patch looks OK! If this eliminates the issue - that's it! :D

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
I only made a theoretical analysis and called the unload before all possible returns in this function. No idea, if that problem could exist also on other places, and if all those places work correctly. I think it is nearly impossible to test all that.
5D3.113 | EOSM.202

MotherSoraka

  • New to the forum
  • *
  • Posts: 17
I tried installing qt5, but gave up in the middle of the installation.was taking years. maybe i'm doing something wrong. i don't have much experience in programing anyway

MotherSoraka

  • New to the forum
  • *
  • Posts: 17
I tried to fix it. Here it works since hours now (macOS). Maybe someone else like to try it, also on other platforms. Download, compile, test.  8)
Wow, that was quick.
I totally underestimated you guys. Should've reported the issue mounts ago. i almost age up on MLV App.
Thank you masc.
I guess i'll just wait until someone complies the new version for windows.

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
I tried installing qt5, but gave up in the middle of the installation.was taking years. maybe i'm doing something wrong. i don't have much experience in programing anyway
Maybe you try the wrong packages. You just need these packages, and then you should hopefully be able to compile as described on github:


Wow, that was quick.
I totally underestimated you guys. Should've reported the issue mounts ago. i almost age up on MLV App.
We just can fix the bugs we know ;)
5D3.113 | EOSM.202

MotherSoraka

  • New to the forum
  • *
  • Posts: 17
Maybe you try the wrong packages. You just need these packages, and then you should hopefully be able to compile as described on github:
This was very helpful!
Stupid me was trying to download all the packages.
Okay I successfully loaded the MLVApp.pro into QT Creator but wasn't quite sure how to compile it. I "Built" it as "Release" but got the "The Code Execution cannot proceed because QT5core.dll was not found..." message trying to run the generated exe file.
So i just ran it through QT itself and processed a few clips in batch with no issues.
Further help with the compiling process is welcomed. i think i should run some more tests.

Skinny

  • Freshman
  • **
  • Posts: 81
I encountered this problem with dark frames about a year ago, but completely forgot about it... It's great that this bug being fixed!

Ilia told me to register on github and report a bug, but I never did that... First, my laptop died, and I didn't shoot more stars then. But not because of a bug or anything, but because of a fact that stars don't look good in 3x3 mode - they disappear periodically. At that time I was experimenting with other things, another camera.. It was probably very unprofessional, for which I apologize.

Anyway, you guys are great, thank you for all the work you have done! Maybe more people will shoot stars now.

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
Stupid me was trying to download all the packages.
Okay I successfully loaded the MLVApp.pro into QT Creator but wasn't quite sure how to compile it. I "Built" it as "Release" but got the "The Code Execution cannot proceed because QT5core.dll was not found..." message trying to run the generated exe file.
So i just ran it through QT itself and processed a few clips in batch with no issues.
Yapp, you just need the package for your target, the compiler and QtCreator. If you are able to start from Creator, compilation was successful. What you need now to run from outside Creator is a "deployment". This collects all needed dlls and copies them to the release folder. But I also would have to search the Qt help to find out how this works on Windows...
5D3.113 | EOSM.202

tupp

  • Member
  • ***
  • Posts: 106
would it be possible to add the ability to remove jobs from the render list while rendering is underway?

when i am doing batch renders, splitting the jobs across multiple instances of mlvapp, invariably some finish earlier than others, and it would be nice to be able to have them take on clips from other instances without having the other one potentially redoing clips that were reassigned to other instances.

That's not possible in an easy way. There is currently no way to show/edit these internal data buffers, and they aren't made for this. So a huge change for a tiny feature.
What @70MM13 requests doesn't sound like a "tiny feature" -- it sounds like fundamental functionality that would be exceedingly useful to anyone doing batch renders.

If one could merely call from the command line MLV App along with a specific mlv file and recipe, the problem could likely be solved with a script (and that script function could be later incorporated into MLV App).  Such a command might read:
Code: [Select]
$  mlvapp -i your_camera_file.mlv  -s your_recipe.marxml  -o rendered_file.mp4
I don't know the function of MLV App's "Export Settings" feature, but if MLV App does everything through ffmpeg, perhaps the ffmpeg command flags/settings could be exported, and one could just run an ffmpeg batch script using those flags/settings.

Also, what is the function of "Open with External Application?"  Perhaps that feature could be utilized in this endeavor.

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
@tupp: for this you would need to write a new application which just uses the processing backend. The export command already now is very long and difficult - I doubt anybody would use this.

"Open with External Application" does how it is named: it opens the currently active clip in another external application, e.g. MlRawViewer, to be able to watch the clip unprocessed in realtime.
5D3.113 | EOSM.202

tupp

  • Member
  • ***
  • Posts: 106
@masc:  If the "Export Settings"  feature spits out all of the ffmpeg flags/variables, then it is easy enough to paste them into a command (or paste them into a file and then link the file).

Thanks for the explanation on the "Open with External Application" feature.

MotherSoraka

  • New to the forum
  • *
  • Posts: 17
Can we also get rid of this annoying warning message?

masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
Can we also get rid of this annoying warning message?
Sure. Just do what the message tells. Create an averaged MLV! See export settings. If you don't do it, MLVApp will just load the first frame. And one single frame of your original MLV won't help you at all... that's why the message exists.
https://github.com/ilia3101/MLV-App/wiki#darkframe-subtraction
5D3.113 | EOSM.202

MotherSoraka

  • New to the forum
  • *
  • Posts: 17
Sure. Just do what the message tells. Create an averaged MLV! See export settings. If you don't do it, MLVApp will just load the first frame. And one single frame of your original MLV won't help you at all... that's why the message exists.
https://github.com/ilia3101/MLV-App/wiki#darkframe-subtraction
Thats exactly what im doing. I generated Averaged Single darkframes. they are only 1 Frame long.
but this annoying message keeps popping up for no reason.



MotherSoraka

  • New to the forum
  • *
  • Posts: 17
I just commented this part of the code for now.

MotherSoraka

  • New to the forum
  • *
  • Posts: 17
Yapp, you just need the package for your target, the compiler and QtCreator. If you are able to start from Creator, compilation was successful. What you need now to run from outside Creator is a "deployment". This collects all needed dlls and copies them to the release folder. But I also would have to search the Qt help to find out how this works on Windows...
Done.
Manually copied all the required DLLs into the release folder and it worked.


masc

  • Contributor
  • Hero Member
  • *****
  • Posts: 1834
That's the right code. But have a look:
Code: [Select]
/* if MLV has more than one frame just show the warning */
    if( df_mlv.MLVI.videoFrameCount > 1 )
    {
        sprintf(err_msg, "For proper use as a dark frame all frames of this MLV have to be averaged first:\n\n%s", video->llrawproc->dark_frame_filename);
Whatever you load... it MUST have more than 1 frame. Maybe you select the wrong file. I tested here and I just get the message if the selected clip is longer 1 frame. So the code works and is correct.
5D3.113 | EOSM.202

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7158
- deleted -