@@ -28,77 +28,6 @@ using namespace IMF;
2828using namespace IMATH_NAMESPACE ;
2929using namespace std ;
3030
31- namespace {
32-
33- void
34- validateDataWindowForChannel (
35- const Box2i& dataWindow, const Channel& channel, const string& chanName)
36- {
37- if (dataWindow.min .x % channel.xSampling )
38- {
39- THROW (
40- IEX_NAMESPACE ::ArgExc,
41- " The minimum x coordinate of the "
42- " image's data window is not a multiple "
43- " of the x subsampling factor of "
44- " the \" "
45- << chanName << " \" channel." );
46- }
47-
48- if (dataWindow.min .y % channel.ySampling )
49- {
50- THROW (
51- IEX_NAMESPACE ::ArgExc,
52- " The minimum y coordinate of the "
53- " image's data window is not a multiple "
54- " of the y subsampling factor of "
55- " the \" "
56- << chanName << " \" channel." );
57- }
58-
59- if ((dataWindow.max .x - dataWindow.min .x + 1 ) % channel.xSampling )
60- {
61- THROW (
62- IEX_NAMESPACE ::ArgExc,
63- " Number of pixels per row in the "
64- " image's data window is not a multiple "
65- " of the x subsampling factor of "
66- " the \" "
67- << chanName << " \" channel." );
68- }
69-
70- if ((dataWindow.max .y - dataWindow.min .y + 1 ) % channel.ySampling )
71- {
72- THROW (
73- IEX_NAMESPACE ::ArgExc,
74- " Number of pixels per column in the "
75- " image's data window is not a multiple "
76- " of the y subsampling factor of "
77- " the \" "
78- << chanName << " \" channel." );
79- }
80- }
81-
82- void
83- validateUnionDataWindowForInputs (
84- const Box2i& dataWindow, const vector<const char *>& inFileNames)
85- {
86- for (const char * fileName : inFileNames)
87- {
88- InputFile in (fileName);
89-
90- for (ChannelList::ConstIterator j = in.header ().channels ().begin ();
91- j != in.header ().channels ().end ();
92- ++j)
93- {
94- validateDataWindowForChannel (
95- dataWindow, j.channel (), j.name ());
96- }
97- }
98- }
99-
100- } // namespace
101-
10231void
10332makeMultiView (
10433 const vector<string>& viewNames,
@@ -145,8 +74,6 @@ makeMultiView (
14574 else { d.extendBy (header.dataWindow ()); }
14675 }
14776
148- validateUnionDataWindowForInputs (d, inFileNames);
149-
15077 image.resize (d);
15178
15279 header.dataWindow () = d;
@@ -180,6 +107,14 @@ makeMultiView (
180107 string inChanName = j.name ();
181108 string outChanName = insertViewName (inChanName, viewNames, i);
182109
110+ if (inChannel.xSampling != 1 || inChannel.ySampling != 1 )
111+ THROW (IEX_NAMESPACE ::ArgExc,
112+ " no support for subsampling:"
113+ << " channel " << inChanName
114+ << " of " << inFileNames[i]
115+ << " has subsampling " << inChannel.xSampling
116+ << " , " << inChannel.ySampling );
117+
183118 image.addChannel (outChanName, inChannel);
184119 image.channel (outChanName).black ();
185120
0 commit comments