Kinochrome - GPU accelerated raw video processing

Started by doktorkrek, April 01, 2025, 10:45:18 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ML700D

Quote from: doktorkrek on June 09, 2025, 03:52:57 PMMaybe try in PowerShell:
./kinochrome.exe | echo


Quote from: doktorkrek on June 09, 2025, 03:52:57 PMAlso what GPU do you have? I suspect Vulkan drivers are missing.
onboard intel UHD graphics

EOS 700D

doktorkrek

Quote from: ML700D on June 09, 2025, 05:55:08 PMonboard intel UHD graphics
Strange, it should work. Which version of Intel UHD?

masc

Quote from: doktorkrek on June 09, 2025, 03:48:52 PMIndeed there is, it should be straightforward to package it in an .app bundle, I just currently don't have a Mac machine to test it on. Contributions are welcome :)
I plan to add an option for RCD, which is the default algorithm in Darktable and for which there already is a Vulkan shader written for the vkdt project. RCD should be the default for exporting videos, I need to test whether it's suitable for preview, but at least on more contemporary GPUs, it shouldn't be a problem.
That should be no problem. RCD runs at 11fps for 5.7k anamorphic footage on CPU already (all our grading included on CPU, too), FHD up to ~38fps on my notebook. Great to know that one of the better debayer algorithms is availble for GPU now...
5D3.113 | EOSM.202

ML700D

Quote from: doktorkrek on June 09, 2025, 07:18:55 PMStrange, it should work. Which version of Intel UHD?

Intel Jasper Lake - Integrated GPU 16 EU [IP3 Tech]
EOS 700D

andy kh

it is not working on my dell laptop intel i7
gforce GT 525m
5D Mark III - 70D

doktorkrek

Quote from: ML700D on June 10, 2025, 02:25:05 AMIntel Jasper Lake - Integrated GPU 16 EU [IP3 Tech]
It should be supported. Some more testing on Windows is needed.

Quote from: andy kh on June 10, 2025, 09:58:01 AMit is not working on my dell laptop intel i7
gforce GT 525m
Unfortunately, I'm afraid it doesn't support Vulkan.

Skinny

Same thing here - trying to run exe and nothing happens, and no output in the command line. Windows 10, Radeon HD4850. I guess this GPU also doesn't support Vulkan.. Well, it was worth a try. Maybe some day, with another GPU..

Dobfek

To all the users experiencing problem with kinochrome not starting under Windows here is a possible solution:
1. Please search for your GPU specs on TechPowerUp, and check if it has Vulkan support in "Graphics Features".
2. If Vulkan is supported by the specs, please run GPU-Z, and check if the checkbox of Vulkan is checked.
3. If it is NOT checked, than you have the same driver bug as I had. The Vulkan driver path is missing from the registry. (Nvidia and Intel both affected!)

The fix:
Nvidia users:
search for file "nv-vk64.json" in your windows folder, and copy the path of it.
Intel users:
search for file "igvk64.json" in your windows folder, and copy the path of it.

You have to put a REG_DWORD entry into "HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\Drivers" with the NAME of the complete path with the correct json file. The VALUE should stay 0.

Nvidia NAME field example:
C:\Windows\System32\DriverStore\FileRepository\nv_dispig.inf_amd64_0afec3f2050014a0\nv-vk64.json
Intel NAME field example:
C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_0541b698fc6e40b0\igvk64.json

The path part with the HEX value after the .inf will be different for you, so please doublecheck it.
If you added it to your registry, please rerun GPU-Z, Vulkan should be checked now and try running kinochrome again.

More info here: https://community.intel.com/t5/Graphics/Fix-for-Intel-and-NVIDIA-Vulkan-driver-RPCS3-Xenia/m-p/592011

ML700D

Quote from: Dobfek on June 14, 2025, 11:08:05 PM3. If it is NOT checked, than you have the same driver bug as I had. The Vulkan driver path is missing from the registry. (Nvidia and Intel both affected!)

vulkan is checked in GPU-Z but can't run kinochrome
EOS 700D

Dobfek

If you start kinochrome from CMD with the following command:
kinochrome.exe >> out.txt

What is the content of the out.txt?

Jonneh

Promising tool! Playback for review purposes has always been a bit of a pain with MLVs.

Kinochrome runs fine on my Windows 11 Thinkpad, AMD Ryzen 7 Pro 4750U with Renoir iGPU.

With a 3.5K, 14-bit lossless file (5D3), I get 3-4 fps in MLVApp (simply superb tool for editing, but playback is slow, at least on my machine)---bilinear debayer; with most others it's 2-3 fps. Same fps on my old T470 with 6th-gen i5. When I first launched Kinochrome, files played back in a burst of a few frames, stopping, and then resuming with another burst of a few frames, and so on. Each cycle lasted about half a second, so the overall visual impression wasn't much better than with MLVApp.

I've just updated AMD Adrenalin just in case (initial installation was only a couple of months ago when I got the machine), and now it's playing back much better! An order of magnitude better than what I was getting with other tools (in terms of visual impression, if not fps), so well done!

EDIT: I've been doing some more testing today with a neat framerate overlay called FPS Monitor and I'm getting real-time playback! Just lovely.

A couple of wishlist features would be a basic panel or dialog showing file properties (resolution, bit depth etc) and the ability to zoom in during playback to check focus etc. No idea whether this latter one is even possible.
5D3 / 100D

BackintheDSLR

Win11, GTX1050 and vulkan acc. to GPU-Z, getting "program not found" when trying to export

cmd output: https://board.net/p/kinochrome

ML700D

Quote from: Dobfek on June 16, 2025, 03:43:32 PMIf you start kinochrome from CMD with the following command:
kinochrome.exe >> out.txt

What is the content of the out.txt?
nothing happen just a blank out.txt
EOS 700D

Dobfek

Quote from: BackintheDSLR on June 17, 2025, 03:22:42 PMWin11, GTX1050 and vulkan acc. to GPU-Z, getting "program not found" when trying to export

cmd output: https://board.net/p/kinochrome

Do you have ffmpeg.exe in your PATH or copied into kinochrome's directory?

vastunghia

Testing on MacIntel here, won't launch. [EDIT: added more details in log after setting RUST_BACKTRACE=full]

Using device: AMD Radeon RX 6800 (type: DiscreteGpu)
[src/gpu_compute.rs:159:9] entry_point.info().push_constant_requirements = Some(
    PushConstantRange {
        stages: COMPUTE,
        offset: 0,
        size: 80,
    },
)
[src/main.rs:330:13] &image_formats = [
    (
        B8G8R8A8_UNORM,
        SrgbNonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        SrgbNonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        SrgbNonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        SrgbNonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        SrgbNonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        DisplayP3NonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        DisplayP3NonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        DisplayP3NonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        DisplayP3NonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        DisplayP3NonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        DciP3NonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        DciP3NonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        DciP3NonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        DciP3NonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        DciP3NonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        Bt709NonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        Bt709NonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        Bt709NonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Bt709NonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Bt709NonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        AdobeRgbNonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        AdobeRgbNonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        AdobeRgbNonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        AdobeRgbNonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        AdobeRgbNonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        PassThrough,
    ),
    (
        B8G8R8A8_SRGB,
        PassThrough,
    ),
    (
        R16G16B16A16_SFLOAT,
        PassThrough,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        PassThrough,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        PassThrough,
    ),
    (
        B8G8R8A8_UNORM,
        ExtendedSrgbLinear,
    ),
    (
        B8G8R8A8_SRGB,
        ExtendedSrgbLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        ExtendedSrgbLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        ExtendedSrgbLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        ExtendedSrgbLinear,
    ),
    (
        B8G8R8A8_UNORM,
        ExtendedSrgbNonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        ExtendedSrgbNonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        ExtendedSrgbNonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        ExtendedSrgbNonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        ExtendedSrgbNonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        DisplayP3Linear,
    ),
    (
        B8G8R8A8_SRGB,
        DisplayP3Linear,
    ),
    (
        R16G16B16A16_SFLOAT,
        DisplayP3Linear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        DisplayP3Linear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        DisplayP3Linear,
    ),
    (
        B8G8R8A8_UNORM,
        Bt2020Linear,
    ),
    (
        B8G8R8A8_SRGB,
        Bt2020Linear,
    ),
    (
        R16G16B16A16_SFLOAT,
        Bt2020Linear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Bt2020Linear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Bt2020Linear,
    ),
    (
        B8G8R8A8_UNORM,
        Hdr10Hlg,
    ),
    (
        B8G8R8A8_SRGB,
        Hdr10Hlg,
    ),
    (
        R16G16B16A16_SFLOAT,
        Hdr10Hlg,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Hdr10Hlg,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Hdr10Hlg,
    ),
    (
        B8G8R8A8_UNORM,
        Hdr10St2084,
    ),
    (
        B8G8R8A8_SRGB,
        Hdr10St2084,
    ),
    (
        R16G16B16A16_SFLOAT,
        Hdr10St2084,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Hdr10St2084,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Hdr10St2084,
    ),
]

thread 'main' panicked at src/renderer.rs:556:14:
called `Result::unwrap()` on an `Err` value: a validation error occurred

Caused by:
    create_info: this device is a portability subset device, and `component_mapping` is not the identity mapping

Requires one of:
    device feature `image_view_format_swizzle`

Vulkan VUIDs:
    VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465
stack backtrace:
   0:        0x10c19b0fe - __mh_execute_header
   1:        0x10c1bc133 - __mh_execute_header
   2:        0x10c198132 - __mh_execute_header
   3:        0x10c19af42 - __mh_execute_header
   4:        0x10c19bd30 - __mh_execute_header
   5:        0x10c19bb3b - __mh_execute_header
   6:        0x10c19c8c2 - __mh_execute_header
   7:        0x10c19c4e8 - __mh_execute_header
   8:        0x10c19b5d9 - __mh_execute_header
   9:        0x10c19c124 - __mh_execute_header
  10:        0x10c1fb23f - __mh_execute_header
  11:        0x10c1fb645 - __mh_execute_header
  12:        0x10be12ea3 - __mh_execute_header
  13:        0x10bdcd766 - __mh_execute_header

Any hint?

Thank you!

[EDIT: chatGPT says that this may occur because "on portability subset devices (such as MoltenVK on Apple Silicon), the imageViewFormatSwizzle feature is not enabled by default, and the Vulkan spec disallows creating an VkImageView with non-identity ComponentMapping when that feature is VK_FALSE (VUID‑04465)". It says that you should 1. Enable portability extensions, 2. Query portability features, 3. Choose mapping at runtime (ComponentMapping::identity() or your custom swizzle based on the value of portability.imageViewFormatSwizzle). Whatever that means ;D Btw I have an Intel Mac with an external GPU, no Apple Silicon here.]
5D3 for video
70D for photo

BackintheDSLR

Quote from: Dobfek on June 18, 2025, 06:38:22 PMDo you have ffmpeg.exe in your PATH or copied into kinochrome's directory?

Now I do :)

Thanks for a quick noob check-in. Your app might be a workflow gamechanger on this (retro) laptop. MLV playback is smooth, 1GB export to NVENC is a few seconds - great!

Was prepping switching it to Linux and free Resolve with Nvidia accll. I'll take a look at possible NVENC NLE alternatives instead now. Thanks again.

Jonneh

More testing done over the last couple of days. What a great tool---smooth playback, easy export.

I am getting crashes when importing certain files. The command prompt gives the following output:

thread 'unnamed>' panicked at src\import.rs:286:23:
Frame size too small

The file opens and exports fine with MLVApp.

EDIT: After importing some 600 files part of a project, only two gave this error, so it does seem to be an isolated issue, but curious nonetheless that both open fine in MLVApp. /EDIT

I mentioned above that it would be useful to be able to check the file resolution. I notice that the Export dialog shows this, and this is easy enough to access. On the other hand, since this tool is potentially so useful for material review purposes, a delete function would be nice (.mlv + .m00).
5D3 / 100D

Dobfek

Quote from: BackintheDSLR on June 19, 2025, 12:13:33 AMNow I do :)

Thanks for a quick noob check-in. Your app might be a workflow gamechanger on this (retro) laptop. MLV playback is smooth, 1GB export to NVENC is a few seconds - great!

Was prepping switching it to Linux and free Resolve with Nvidia accll. I'll take a look at possible NVENC NLE alternatives instead now. Thanks again.

Welcome! It is a great work of @doktorkrek, I only contributed the NVENC exportability. As long as kinochrome can stay this fast with growing feature set, it is going to be a very nice editor with realtime preview.

Dobfek

Quote from: vastunghia on June 18, 2025, 11:59:11 PMTesting on MacIntel here, won't launch. [EDIT: added more details in log after setting RUST_BACKTRACE=full]

Using device: AMD Radeon RX 6800 (type: DiscreteGpu)
[src/gpu_compute.rs:159:9] entry_point.info().push_constant_requirements = Some(
    PushConstantRange {
        stages: COMPUTE,
        offset: 0,
        size: 80,
    },
)
[src/main.rs:330:13] &image_formats = [
    (
        B8G8R8A8_UNORM,
        SrgbNonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        SrgbNonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        SrgbNonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        SrgbNonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        SrgbNonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        DisplayP3NonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        DisplayP3NonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        DisplayP3NonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        DisplayP3NonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        DisplayP3NonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        DciP3NonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        DciP3NonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        DciP3NonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        DciP3NonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        DciP3NonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        Bt709NonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        Bt709NonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        Bt709NonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Bt709NonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Bt709NonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        AdobeRgbNonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        AdobeRgbNonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        AdobeRgbNonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        AdobeRgbNonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        AdobeRgbNonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        PassThrough,
    ),
    (
        B8G8R8A8_SRGB,
        PassThrough,
    ),
    (
        R16G16B16A16_SFLOAT,
        PassThrough,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        PassThrough,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        PassThrough,
    ),
    (
        B8G8R8A8_UNORM,
        ExtendedSrgbLinear,
    ),
    (
        B8G8R8A8_SRGB,
        ExtendedSrgbLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        ExtendedSrgbLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        ExtendedSrgbLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        ExtendedSrgbLinear,
    ),
    (
        B8G8R8A8_UNORM,
        ExtendedSrgbNonLinear,
    ),
    (
        B8G8R8A8_SRGB,
        ExtendedSrgbNonLinear,
    ),
    (
        R16G16B16A16_SFLOAT,
        ExtendedSrgbNonLinear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        ExtendedSrgbNonLinear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        ExtendedSrgbNonLinear,
    ),
    (
        B8G8R8A8_UNORM,
        DisplayP3Linear,
    ),
    (
        B8G8R8A8_SRGB,
        DisplayP3Linear,
    ),
    (
        R16G16B16A16_SFLOAT,
        DisplayP3Linear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        DisplayP3Linear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        DisplayP3Linear,
    ),
    (
        B8G8R8A8_UNORM,
        Bt2020Linear,
    ),
    (
        B8G8R8A8_SRGB,
        Bt2020Linear,
    ),
    (
        R16G16B16A16_SFLOAT,
        Bt2020Linear,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Bt2020Linear,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Bt2020Linear,
    ),
    (
        B8G8R8A8_UNORM,
        Hdr10Hlg,
    ),
    (
        B8G8R8A8_SRGB,
        Hdr10Hlg,
    ),
    (
        R16G16B16A16_SFLOAT,
        Hdr10Hlg,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Hdr10Hlg,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Hdr10Hlg,
    ),
    (
        B8G8R8A8_UNORM,
        Hdr10St2084,
    ),
    (
        B8G8R8A8_SRGB,
        Hdr10St2084,
    ),
    (
        R16G16B16A16_SFLOAT,
        Hdr10St2084,
    ),
    (
        A2B10G10R10_UNORM_PACK32,
        Hdr10St2084,
    ),
    (
        A2R10G10B10_UNORM_PACK32,
        Hdr10St2084,
    ),
]

thread 'main' panicked at src/renderer.rs:556:14:
called `Result::unwrap()` on an `Err` value: a validation error occurred

Caused by:
    create_info: this device is a portability subset device, and `component_mapping` is not the identity mapping

Requires one of:
    device feature `image_view_format_swizzle`

Vulkan VUIDs:
    VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465
stack backtrace:
   0:        0x10c19b0fe - __mh_execute_header
   1:        0x10c1bc133 - __mh_execute_header
   2:        0x10c198132 - __mh_execute_header
   3:        0x10c19af42 - __mh_execute_header
   4:        0x10c19bd30 - __mh_execute_header
   5:        0x10c19bb3b - __mh_execute_header
   6:        0x10c19c8c2 - __mh_execute_header
   7:        0x10c19c4e8 - __mh_execute_header
   8:        0x10c19b5d9 - __mh_execute_header
   9:        0x10c19c124 - __mh_execute_header
  10:        0x10c1fb23f - __mh_execute_header
  11:        0x10c1fb645 - __mh_execute_header
  12:        0x10be12ea3 - __mh_execute_header
  13:        0x10bdcd766 - __mh_execute_header

Any hint?

Thank you!

[EDIT: chatGPT says that this may occur because "on portability subset devices (such as MoltenVK on Apple Silicon), the imageViewFormatSwizzle feature is not enabled by default, and the Vulkan spec disallows creating an VkImageView with non-identity ComponentMapping when that feature is VK_FALSE (VUID‑04465)". It says that you should 1. Enable portability extensions, 2. Query portability features, 3. Choose mapping at runtime (ComponentMapping::identity() or your custom swizzle based on the value of portability.imageViewFormatSwizzle). Whatever that means ;D Btw I have an Intel Mac with an external GPU, no Apple Silicon here.]

You might have to install VulkanSDK.(https://vulkan.lunarg.com/sdk/home) Do you have it installed?

vastunghia

Quote from: Dobfek on June 19, 2025, 05:27:32 PMYou might have to install VulkanSDK.(https://vulkan.lunarg.com/sdk/home) Do you have it installed?

Yup! Indeed, if you see the error log, it complains about create_info, which afaIu is a VulkanSDK component. So it means that it is successfully finding and calling the VulkanSDK libraries, but that something goes wrong there.
5D3 for video
70D for photo

Dobfek

Quote from: Jonneh on June 19, 2025, 11:24:33 AMMore testing done over the last couple of days. What a great tool---smooth playback, easy export.

I am getting crashes when importing certain files. The command prompt gives the following output:

thread 'unnamed>' panicked at src\import.rs:286:23:
Frame size too small

The file opens and exports fine with MLVApp.

EDIT: After importing some 600 files part of a project, only two gave this error, so it does seem to be an isolated issue, but curious nonetheless that both open fine in MLVApp. /EDIT

I mentioned above that it would be useful to be able to check the file resolution. I notice that the Export dialog shows this, and this is easy enough to access. On the other hand, since this tool is potentially so useful for material review purposes, a delete function would be nice (.mlv + .m00).

I would suggest that if you have a github account, please open a new issue and upload your MLV to a filesharing site. The project owner is quite responsive there as I experienced.

BackintheDSLR

Quote from: Jonneh on June 19, 2025, 11:24:33 AM....it would be useful to be able to check the file resolution. I notice that the Export dialog shows this, and this is easy enough to access.

Hadn't noticed that, AFAICT the Export dialog dimensions corresponds to the largest resolution of one or more of the imported .MLVs. My noob test folder was a weird mix of whatever presets and crop moods I had randomly punched in during filming :)

BackintheDSLR

    Quote from: doktorkrek on April 01, 2025, 10:45:18 PM

    Here, it plays a 2560x1440 losslessly compressed MLV video on a 2012 ThinkPad 430 with integrated GPU in real time

    Awesome! Thanks a lot!


    Quote
    • Supports ffmpeg for export, with customizable recipes for video and audio encoding
    • Fast multi-threaded CinemaDNG (losslessly compressed) export


    Newbie request: in and out points similar to MLV app or, even better, several segments like https://mifi.no/losslesscut

    If that's possible with ffmpeg but cumbersome within your code I'd also be happy to know. Pardon my ignorance if such a feature is impossible with raw media.[/list]

    doktorkrek

    Quote from: Jonneh on June 17, 2025, 01:10:16 AMA couple of wishlist features would be a basic panel or dialog showing file properties (resolution, bit depth etc) and the ability to zoom in during playback to check focus etc. No idea whether this latter one is even possible.
    It is very much possible. The code is structured to have a clear separation between the UI and the processing code. I have added zooming with the scrollwheel and dragging with the mouse, you can try it in the newest build. Regarding the file properties, where would you find it convenient to have them displayed?

    Quote from: vastunghia on June 18, 2025, 11:59:11 PMTesting on MacIntel here, won't launch. [EDIT: added more details in log after setting RUST_BACKTRACE=full]
    Ah, the code to pick image format for font textures was checking for features that are supported, but not necessarily enabled and this image_view_format_swizzle is not enabled by default on portability devices (such as MoltenVK)... Fixed it, try now please.

    Quote from: Jonneh on June 19, 2025, 11:24:33 AMI am getting crashes when importing certain files. The command prompt gives the following output:

    thread 'unnamed>' panicked at src\import.rs:286:23:
    Frame size too small
    Could it perhaps be because they are .mlv + .m00 files? They are not supported yet.

    Quote from: BackintheDSLR on June 20, 2025, 01:08:19 PMNewbie request: in and out points similar to MLV app or, even better, several segments like https://mifi.no/losslesscut
    It should not be a problem, I can add it.

    Quote from: Dobfek on June 19, 2025, 10:00:23 PMI would suggest that if you have a github account, please open a new issue and upload your MLV to a filesharing site.
    You are welcome to! Alternatively, if you don't have a GitHub account, you can just send an email with your issue to the mailing list at ~grego/[email protected]

    Jonneh

    Quote from: doktorkrek on June 21, 2025, 01:06:37 AMIt is very much possible. The code is structured to have a clear separation between the UI and the processing code. I have added zooming with the scrollwheel and dragging with the mouse, you can try it in the newest build.

    Works absolutely flawlessly, both zooming and panning once zoomed. Brilliant! One oddity to report about it though: if you place the cursor somewhere over the video frame or black bars, scrolling zooms the video (and only the video), but if you place the cursor over the file list, scrolling still zooms the video instead of only scrolling the file list.

    Quote from: doktorkrek on June 21, 2025, 01:06:37 AMRegarding the file properties, where would you find it convenient to have them displayed?

    I suppose at the bottom of the edit panel on the right would make most sense. I think resolution and file size would be most useful to be able to see at a glance, and maybe full properties adding camera, lens, aperture, bit depth, compression, frame rate, audio (y/n), date created could be shown from a menu entry?

    Any chance of adding time elapsed/total above the playback bar too?

    If deletion (from project, disk, or both) could be added, this tool will be the best we have for initial review purposes in my opinion and will be an immediate adjunct to my workflow. I love the fact that loading a project doesn't necessitate reimporting all files, seemingly the case with MLVApp and unfortunately an annoying time sink each time a large project is opened (30 seconds for Kinochrome vs 15 minutes for MLVApp for a 600-file project).

    Quote from: doktorkrek on June 21, 2025, 01:06:37 AMCould it perhaps be because they are .mlv + .m00 files? They are not supported yet.

    They are indeed .mlv + -m00, although all of my recordings are, and Kinochrome didn't baulk at any of the hundreds of others I've opened. Whatever the cause, it very much seems like an isolated case, but even so I'll try and send the file over via GitHub or email.

    One more potential feature I wonder about: MLVApp shows tiny thumbnails next to the name of each file in the bar on the left, as follows:



    This is very useful for knowing what's what in a long list of files. Would that be feasible in Kinochrome?
    5D3 / 100D