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