MLV App 1.14 - All in one MLV Video Post Processing App [Windows, Mac and Linux]

Started by ilia3101, July 08, 2017, 10:19:19 PM

Previous topic - Next topic

0 Members and 6 Guests are viewing this topic.

bouncyball

@Ilia3101: Cool! :D
@masc: Loved your changes in "Correct" tab :)

I pushed commit which fixes my bug causing slowing down the playback by about 30-50% :P

bb

Danne

Did some python removal and reinstalling and maybe something else but now I can´t compile "make app" anymore. clang complaining and some other stuff. Can you spot what I need here(mac)?:
Undefined symbols for architecture x86_64:
  "_applyLLRawProcObject", referenced from:
      _getMlvRawFrameFloat in video_mlv.o
  "_initLLRawProcObject", referenced from:
      _initMlvObjectWithClip in video_mlv.o
      _initMlvObject in video_mlv.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [build] Error 1
cp: MLV App: No such file or directory
cp: checkupdate.py: No such file or directory
Archive:  ../qt/FFmpeg/ffmpegOSX.zip
  inflating: MLV App.app/Contents/Resources/ffmpeg 
   creating: MLV App.app/Contents/Resources/__MACOSX/
  inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg 
dans-MBP:cocoa dan$ make clean
rm -rf "MLV App" "MLV App".app main.o video_mlv.o debayer.o amaze_demosaic.o raw_processing.o main_methods.o useful_methods.o background_thread.o matrix.o camera_matrices.o frame_caching.o lj92.o session_methods.o delegate.o mlv_view.o *.o
dans-MBP:cocoa dan$


ilia3101

Weird... not sure why that would happen, doesn't seem like it's related to python. It seems to be a linking error...
As it appears bouncyball's new functions are not compiling for you, so when they are called in other code they can't be found.

I had a minor macOS update recently, which broke all apple developer tools including the clang compiler, way I fixed it then was just a quick re-run of xcode-select --install
Maybe all the python reinstallations messed some minor thing up in the folders where your apple tools are.

... speaking of bouncyball's new work, there's not yet access to it in the Cocoa GUI, so you can't really test it much unless you change llrawprocobject's defaults and recompile to see changes :D

Danne

Will dig further. Probably not realted to python at all as you mention.
Tested 0.7 from first post and realtime previewing. Dude, that´s amazing.

DeafEyeJedi

Same here having issues with compiling after 'make app'. May be just because I am using a Mac Mini that's been sitting here for months and may not have proper set-up for it?

Last login: Fri Sep 22 09:29:52 on ttys000
Seans-Mac-mini-385:~ DeafEyeJedi$ git clone https://github.com/ilia3101/MLV-App.git
Cloning into 'MLV-App'...
remote: Counting objects: 2031, done.
remote: Total 2031 (delta 0), reused 0 (delta 0), pack-reused 2031
Receiving objects: 100% (2031/2031), 40.37 MiB | 345.00 KiB/s, done.
Resolving deltas: 100% (1395/1395), done.
Seans-Mac-mini-385:~ DeafEyeJedi$ cd MLV-App/platform/cocoa
Seans-Mac-mini-385:cocoa DeafEyeJedi$ make app
rm "MLV App".app; \
gcc  -mmacosx-version-min=10.10 -O3 -Ofast -m64 generate_info_plist.c -o generate_info_plist; \
./generate_info_plist "MLV App"; \
make main; \
rm -rf "MLV App".app; \
mkdir "MLV App".app; \
mkdir "MLV App".app/Contents; \
mkdir "MLV App".app/Contents/MacOS; \
mkdir "MLV App".app/Contents/Resources; \
cp -i "MLV App" "MLV App".app/Contents/MacOS/; \
cp -i info.plist "MLV App".app/Contents/; \
cp -i checkupdate.py "MLV App".app/Contents/Resources/; \
unzip ../qt/FFmpeg/ffmpegOSX.zip -d "MLV App".app/Contents/Resources; \
rm -rf "MLV App".app/Contents/Resources/__MACOSX; \
cp ../../src/icon/icon.icns "MLV App".app/Contents/Resources/MLV\ App.icns; \
rm generate_info_plist; \
rm info.plist; \

rm: MLV App.app: No such file or directory
ld: warning: object file (/var/folders/t9/v524s9d54pqd8920btl0zjch0000gn/T//ccnIPcw2.o) was built for newer OSX version (10.12) than being linked (10.10)
ld: warning: object file (/usr/local/Cellar/gcc/5.2.0/lib/gcc/5/gcc/x86_64-apple-darwin15.0.0/5.2.0/crtfastmath.o) was built for newer OSX version (10.11) than being linked (10.10)
gcc  -mmacosx-version-min=10.10 -O3 -Ofast -m64 compile_time_code.m -o compile_time_code -framework Cocoa; \
./compile_time_code; \
rm main.o; \
make build; \
rm compile_time_code; \
rm app_defines.h
In file included from /usr/include/Availability.h:184:0,
                 from /usr/local/Cellar/gcc/5.2.0/lib/gcc/5/gcc/x86_64-apple-darwin15.0.0/5.2.0/include-fixed/math.h:46,
                 from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:24,
                 from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:6,
                 from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12,
                 from compile_time_code.m:5:
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:53:34: error: expected ',' or '}' before '__attribute__'
     kCFISO8601DateFormatWithYear API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 0),
                                  ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:80:126: error: 'introduced' undeclared here (not in a function)
CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocator, CFISO8601DateFormatOptions formatOptions) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
                                                                                                                              ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'deprecated' undeclared here (not in a function)
const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));
                                       ^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'message' undeclared here (not in a function)
const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));


/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:95:166: error: expected ')' before 'NSString'
- (instancetype)initWithFetchRequest:(NSFetchRequest<ResultType> *)fetchRequest managedObjectContext: (NSManagedObjectContext *)context sectionNameKeyPath:(nullable NSString *)sectionNameKeyPath cacheName:(nullable NSString *)name;
                                                                                                                                                                      ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:95:207: error: unknown type name 'nullable'
- (instancetype)initWithFetchRequest:(NSFetchRequest<ResultType> *)fetchRequest managedObjectContext: (NSManagedObjectContext *)context sectionNameKeyPath:(nullable NSString *)sectionNameKeyPath cacheName:(nullable NSString *)name;
                                                                                                                                                                                                               ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:95:216: error: expected ')' before 'NSString'
- (instancetype)initWithFetchRequest:(NSFetchRequest<ResultType> *)fetchRequest managedObjectContext: (NSManagedObjectContext *)context sectionNameKeyPath:(nullable NSString *)sectionNameKeyPath cacheName:(nullable NSString *)name;
                                                                                                                                                                                                                        ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:110:1: error: cannot find protocol declaration for 'ResultType'
@property(readonly) NSFetchRequest<ResultType> *fetchRequest;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:118:20: error: unknown property attribute before ',' token
@property (nullable, readonly) NSString *sectionNameKeyPath;
                    ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:118:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property (nullable, readonly) NSString *sectionNameKeyPath;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:122:20: error: unknown property attribute before ',' token
@property (nullable, readonly) NSString *cacheName;
                    ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:122:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property (nullable, readonly) NSString *cacheName;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:126:19: error: unknown property attribute before ',' token
@property(nullable, nonatomic, assign) id< NSFetchedResultsControllerDelegate > delegate;
                   ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:126:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property(nullable, nonatomic, assign) id< NSFetchedResultsControllerDelegate > delegate;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:131:30: error: unknown type name 'nullable'
+ (void)deleteCacheWithName:(nullable NSString *)name;
                              ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:131:39: error: expected ')' before 'NSString'
+ (void)deleteCacheWithName:(nullable NSString *)name;
                                       ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:140:21: error: unknown property attribute before ',' token
@property  (nullable, nonatomic, readonly) NSArray<ResultType> *fetchedObjects;
                     ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:140:21: error: cannot find protocol declaration for 'ResultType'
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:140:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property  (nullable, nonatomic, readonly) NSArray<ResultType> *fetchedObjects;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:144:4: error: unknown type name 'ResultType'
- (ResultType)objectAtIndexPath:(NSIndexPath *)indexPath;
    ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:148:3: error: unknown type name 'nullable'
-(nullable NSIndexPath *)indexPathForObject:(ResultType)object;
   ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:148:12: error: expected ')' before 'NSIndexPath'
-(nullable NSIndexPath *)indexPathForObject:(ResultType)object;
            ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:148:46: error: unknown type name 'ResultType'
-(nullable NSIndexPath *)indexPathForObject:(ResultType)object;
                                              ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:161:4: error: unknown type name 'nullable'
- (nullable NSString *)sectionIndexTitleForSectionName:(NSString *)sectionName;
    ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:161:13: error: expected ')' before 'NSString'
- (nullable NSString *)sectionIndexTitleForSectionName:(NSString *)sectionName;
             ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:168:50: error: expected '>' before '*' token
@property (nonatomic, readonly) NSArray<NSString *> *sectionIndexTitles;
                                                  ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:168:50: error: cannot find protocol declaration for 'NSString'
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:177:20: error: unknown property attribute before ',' token
@property (nullable, nonatomic, readonly) NSArray<id<NSFetchedResultsSectionInfo>> *sections;
                    ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:177:53: error: expected '>' before '<' token
@property (nullable, nonatomic, readonly) NSArray<id<NSFetchedResultsSectionInfo>> *sections;
                                                     ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:177:53: error: cannot find protocol declaration for 'id'
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:195:19: error: unknown property attribute before ',' token
@property(nullable, nonatomic, readonly) NSString *indexTitle;
                   ^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:195:1: note: 'assign' can be unsafe for Objective-C objects; please state explicitly if you need it
@property(nullable, nonatomic, readonly) NSString *indexTitle;
^
/System/Library/Frameworks/CoreData.framework/Headers/NSFetchedResultsController.h:203:20: error: unknown property attribute before ',' token
@property (nullable, nonatomic, readonly) NSArray *objects;
                    ^
main.m:34:25: fatal error: app_defines.h: No such file or directory
compilation terminated.
make[2]: *** [main.o] Error 1
rm: compile_time_code: No such file or directory
rm: app_defines.h: No such file or directory
make[1]: *** [main] Error 1
cp: MLV App: No such file or directory
cp: checkupdate.py: No such file or directory
Archive:  ../qt/FFmpeg/ffmpegOSX.zip
  inflating: MLV App.app/Contents/Resources/ffmpeg 
   creating: MLV App.app/Contents/Resources/__MACOSX/
  inflating: MLV App.app/Contents/Resources/__MACOSX/._ffmpeg 
Seans-Mac-mini-385:cocoa DeafEyeJedi$




Will give this another try on the MBP and report back. Also how would we know when BB's work has been implemented (other than relying on this thread) before we try compiling again?
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

bouncyball

@Ilia3101: You mentioned that your 5D2 sometimes suffers from bad vertical stripes. Can you upload sample MLV with clearly pronounced vertical stripes? I need it for some testing.

@Danne, @DeafEyeJedi
Meanwhile, for testing you can try to compile QT version for Mac. QT version has all raw fix features implemented in the GUI (thanks to @masc).

masc

@Ilia & bouncyball: what would you think about releasing a 0.8? There are many new features and the Windows version also works again (some commits before I tested, hope it works with the latest too).
@DeafEyeJedi: I also implemented some of your ideas: 200%&400% zoom and batch paste.
5D3.113 | EOSM.202

bouncyball

Sure 0.8 would be great. What do you think Ilia3101?

@masc: Would be so nice if playback controls had additional 2 buttons next frame and previous frame. What do you think?

Edit: I really dig 200/400 zoom! used it for pixel peeping a lot when testing code :)
Edit2: can you also implement mouse scroll wheel to zoom 100-400?

Danne

QuoteMeanwhile, for testing you can try to compile QT version for Mac.
Link please. What source exactly are you referring to?

bouncyball

@Danne: masc actually develops QT vesion on MAC. I think he can answer all your questions.

masc

Quote from: bouncyball on September 22, 2017, 07:28:29 PM
@masc: Would be so nice if playback controls had additional 2 buttons next frame and previous frame. What do you think?
No problem.

Quote from: bouncyball on September 22, 2017, 07:28:29 PM
Edit2: can you also implement mouse scroll wheel to zoom 100-400?
This will not work, because we already have 2D scrolling for the position in the frame. I am not sure, if it could work with scrolling while holding down a button for example (never tried that).
5D3.113 | EOSM.202

DeafEyeJedi

How about implmenting Command + I (Info) to be able to quickly see MLV information promptly without having to manualy scroll our mouse over every time?

Quote from: masc on September 22, 2017, 07:22:46 PM
@DeafEyeJedi: I also implemented some of your ideas: 200%&400% zoom and batch paste.

Thanks. Will check it out once I get past the compiling issues.

Quote from: bouncyball on September 22, 2017, 07:28:29 PM
Sure 0.8 would be great. What do you think Ilia3101?

@masc: Would be so nice if playback controls had additional 2 buttons next frame and previous frame. What do you think?

+1

Quote
Edit: I really dig 200/400 zoom! used it for pixel peeping a lot when testing code :)
Edit2: can you also implement mouse scroll wheel to zoom 100-400?

Clever idea with the mouse scroll wheel zoom function. Hopefully this is plausible while in playback mode.  :P Bummer.

Quote from: Danne on September 22, 2017, 07:29:48 PM
Link please. What source exactly are you referring to?

Please let us know when you can @masc
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

masc

Quote from: bouncyball on September 22, 2017, 07:28:29 PM
@masc: Would be so nice if playback controls had additional 2 buttons next frame and previous frame. What do you think?
Implemented and working.

Quote from: DeafEyeJedi on September 22, 2017, 07:45:15 PM
How about implmenting Command + I (Info) to be able to quickly see MLV information promptly without having to manualy scroll our mouse over every time?
You can press Command+Shift+I.
5D3.113 | EOSM.202

ilia3101

Hmmm.. weird that it's broken, although it seems you guys might be having different issues... not sure what do to.
Qt version has bb's work implemented in the GUI I think, so you can test if you can compile that, which requires installing Qt creator, and you can follow the 'Linux tutorial' linked in the first post, should be the same on all platforms.

@bouncyball Will find one and upload!

And good idea to release 0.8, as it seems to be quite in demand right now :D

masc

Ok, I'll try to compile and upload the 0.8 tomorrow.
Edit: found some time, so OSX version is there. @bouncyball: could you please build the windows versions? If not I can do that sunday.
Sources (as always): https://github.com/ilia3101/MLV-App
Release: https://github.com/ilia3101/MLV-App/releases/tag/QTv0.8alpha
5D3.113 | EOSM.202

escho

Next, previous frame buttons are great.

Is it possible to display the frame number, which ist actually shown, maybe in the field of Caching - Playback? That would make a later cutting easier (Implementing some kind of cut-in - cut-out function would be fine too  8) ).

The new correct tab looks great now.

What is the difference between Method 1 and 2 in bad - focus pixel fix?
https://sternenkarten.com/
600D, 6D, openSUSE Tumbleweed

bouncyball

@masc

Quote from: masc on September 22, 2017, 07:42:04 PM
This will not work, because we already have 2D scrolling for the position in the frame. I am not sure, if it could work with scrolling while holding down a button for example (never tried that).
Really? Did not notice this as I'm just dragging zoomed screen by left mouse click and this is very convenient. Could we disable scrolling and use scroll wheel for zooming?

[/quote]
Quote from: masc on September 22, 2017, 08:37:09 PM
@bouncyball: could you please build the windows versions? If not I can do that sunday.
Sure I'll do it tomorrow.

bb

bouncyball


bouncyball

@escho

Quote from: escho on September 22, 2017, 09:01:55 PM
What is the difference between Method 1 and 2 in bad - focus pixel fix?
Both averaging neighbor pixels but do it differently. Some footage looks good with 1 other with 2, try it yourself. Method 1 is used in MLVFS, method 2 is used in mlv_dump (raw2dng code) so your mileage may vary. Also when using it with chroma smooth at the same time results could be different, even ugly in some combination ;)

bb

ilia3101

here's something: https://drive.google.com/file/d/0BwvDlbhZgsGGT0xFUl9ERFFialk/view?usp=sharing
Couldn't find any particularly strong examples just now, but this uninspiring clip has some stripes, I don't know if they're string enough for your testing purposes ::)

masc

Quote from: escho on September 22, 2017, 09:01:55 PM
Is it possible to display the frame number, which ist actually shown, maybe in the field of Caching - Playback?

Done in my last commit. The cut-in and cut-out is a good idea, maybe I'll do that in the future, too. Thx.
5D3.113 | EOSM.202

bouncyball


bouncyball

Quote from: Ilia3101 on September 22, 2017, 10:26:31 PM
I don't know if they're string enough for your testing purposes ::)
They are "OK" on the blue sky :D thank you.

bouncyball

@masc

I was testing the scrolling of zoomed image by scroll wheel.

Well, scrolling vertically when you can just drag it in any direction IMHO useless. So if QT mouse input handling will let us free the scroll wheel for other purpose (zooming) would be very cool :)

regards
bb

andy kh

new version of win works great. love those new features...
5D Mark III - 70D