Page MenuHome

Colorspace in the video sequencer is empty
Closed, ResolvedPublic

Description

System Information
Operating system and graphics card
Debian "jessie", Geforce 580

Blender Version
Broken: 2.79 and 2.78c

Short description of error
When loading an older file for editing , the colorspace of all the strips in the video sequencer are gone (marked in red)


Probably related to the addition of filmic.
I think it was also causing problems with rendering

Exact steps for others to reproduce the error
open an old editing file and check the colorspace of each strip in the video sequencer.
I can upload my file but it's 180MB compressed (packed with all the images inside).

to solve the probelm I wrote in the script editor:

for seq in bpy.data.scenes['Video_editing'].sequence_editor.sequences_all:
    if seq.type == 'IMAGE':
        seq.colorspace_settings.name = 'sRGB'

Event Timeline

Please unpack the file, and send only the .blend. It should be small enough.

Bastien Montagne (mont29) lowered the priority of this task from 90 to 30.Jun 29 2017, 3:21 PM

If you used the external Filmic OpenColorIO configuration to create the original .blend, then a blank color space is the intended behavior. Unfortunately that configuration has color space names that are incompatible with the builtin Blender one, and a blank menu means "color space not found". In general you need to use the same OpenColorIO configuration that you created the .blend with.

Files created with the builtin Blender configuration (that includes the Filmic view transforms in 2.79) will not have this problem, so I don't think there's a Blender bug here. What could be improved is guessing of an appropriate replacement when the color space is not found.

It's possible to do something like this to fall back to a better default, however it only happens when the image file is actually loaded and permanently modifies the color space without any warning. I guess the ideal would be to check the validity of color spaces on .blend file load and then ask the user what to do, but that gets quite complicated.

diff --cc source/blender/imbuf/intern/colormanagement.c
index ff19a14,ff19a14..41232a6
--- a/source/blender/imbuf/intern/colormanagement.c
+++ b/source/blender/imbuf/intern/colormanagement.c
@@@ -966,7 -966,7 +966,9 @@@ static void curve_mapping_apply_pixel(C

  void colorspace_set_default_role(char *colorspace, int size, int role)
  {
--      if (colorspace && colorspace[0] == '\0') {
++      /* set default role if color space not specified, or not found due to
++       * using a different OpenColorIOR configuration */
++      if (colorspace && (colorspace[0] == '\0' || !colormanage_colorspace_get_named(colorspace))) {
                const char *role_colorspace;

                role_colorspace = IMB_colormanagement_role_colorspace_name_get(role);

Maybe @Sergey Sharybin (sergey) has an opinion on this, I'm tempted not to change anything here.

Actually we already have code for validating color space, we just didn't use that for sequencer strips yet. Fixed now.