Resolve channel name list based on options and channel count.
94{
95 if (!options.channel_names.empty()) {
96 if (options.channel_names.size() != data.channels) {
98 "EXRWriter: channel_names size ({}) does not match channels ({}); "
99 "falling back to defaults",
100 options.channel_names.size(), data.channels);
101 } else {
102 return options.channel_names;
103 }
104 }
105
106 switch (data.channels) {
107 case 1:
108 return { "Y" };
109 case 2:
110 return { "Y", "A" };
111 case 3:
112 return { "B", "G", "R" };
113 case 4:
114 return { "A", "B", "G", "R" };
115 default: {
116 std::vector<std::string> names;
117 names.reserve(data.channels);
118 for (uint32_t i = 0; i < data.channels; ++i) {
119 names.emplace_back("C" + std::to_string(i));
120 }
121 return names;
122 }
123 }
124}
#define MF_WARN(comp, ctx,...)
@ FileIO
Filesystem I/O operations.
@ IO
Networking, file handling, streaming.