ggarra13 / mrv2

Professional player and review tool for vfx, animation and computer graphics.
https://mrv2.sourceforge.io
BSD 3-Clause "New" or "Revised" License
197 stars 14 forks source link

Prores4444 does not read alpha #143

Closed BigRoy closed 11 months ago

BigRoy commented 11 months ago

Issue

Not entirely sure why but comparing to djv then mrv2 doesn't seem to correctly load alpha for Prores4444 files.

prores_4444_no_alpha

Is this just an issue with the automated builds due to licensing? or an actual bug?

ggarra13 commented 11 months ago

Not sure. Prores is the property of Apple so there may be licensing issues.

Can you share the movie file publicly? If not, you can send a link to my email at ggarra13@gmail.com?

BigRoy commented 11 months ago

I shared the file by e-mail.

ggarra13 commented 11 months ago

Fortunately it is not a limitation of Apple. It was a missing feature in tlRender.

I uploaded a new beta to the sourceforge site (beta folder):

https://sourceforge.net/projects/mrv2/files/beta/

It has:

1) Proper handling of alpha channels on video codecs that FFmpeg support. 2) Python Editor fixes (hopefully, there are no more errors, but let me know if there are still things broken). 3) Python Classes now have keyword constructors besides the default one.

I will see if in the next release I get: scrubbing without having to press play, default preferences for Image and Display Options, a new API for session metadata.

BigRoy commented 11 months ago

Proper handling of alpha channels on video codecs that FFmpeg support.

The prores file loads alpha correctly in latest beta indeed. ✅


Python Editor fixes (hopefully, there are no more errors, but let me know if there are still things broken).

Doesn't work for me yet. Commented here.


Python Classes now have keyword constructors besides the default one.

Not sure how these should work, but these all do not work for me:

image.ImageFilters()
image.ImageFilters(minify=image.Nearest, magnify=image.Nearest)
image.ImageFilters(minify=image.ImageFilter.Nearest, magnify=image.ImageFilter.Nearest)
image.ImageFilters(image.Nearest, image.Nearest)
image.ImageFilters(image.ImageFilter.Nearest, image.ImageFilter.Nearest)

Getting errors like:

TypeError: __repr__(): incompatible function arguments. The following argument types are supported:
    1. (self: mrv2.image.Levels) -> str

Invoked with: <repr raised Error>

At:
  <string>(9): <module>

Best to continue that issue here