I see the problem. Stay tuned, fix coming shortly.

        -- lg


> On Oct 11, 2020, at 11:31 PM, Larry Gritz <[email protected]> wrote:
> 
> Thanks. Knowing it's 2.1 and on Mac makes it easy for me to try to reproduce 
> on my end. I'll give it a shot tomorrow.
> 
>       -- lg
> 
> 
>> On Oct 11, 2020, at 11:30 PM, Arman Garakani <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>> I am using a brew. I will certainly clone and built off of repo sometime 
>> tomorrow. 
>> 
>> macOS 10.15.6
>> 
>> $ brew info openimageio
>> openimageio: stable 2.1.18 (bottled), HEAD
>> Library for reading, processing and writing images
>> https://openimageio.org/ <https://openimageio.org/>
>> /usr/local/Cellar/openimageio/2.1.18_1 (93 files, 16.3MB) *
>>   Poured from bottle on 2020-10-08 at 14:19:55
>> From: 
>> https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openimageio.rb 
>> <https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/openimageio.rb>
>> License: BSD-3-Clause
>> ==> Dependencies
>> Build: cmake ✘, pkg-config ✔
>> Required: boost ✔, boost-python3 ✔, ffmpeg ✔, freetype ✔, giflib ✔, ilmbase 
>> ✔, jpeg ✔, libheif ✔, libpng ✔, libraw ✔, libtiff ✔, opencolorio ✔, openexr 
>> ✔, [email protected] ✔, webp ✔
>> ==> Options
>> --HEAD
>>      Install HEAD version
>> ==> Analytics
>> install: 306 (30 days), 1,135 (90 days), 4,118 (365 days)
>> install-on-request: 271 (30 days), 983 (90 days), 3,259 (365 days)
>> build-error: 0 (30 days)
>> 
>> Thanks for responding so quickly. 
>> 
>> -Arman. 
>> 
>>> On Oct 11, 2020, at 9:35 PM, Larry Gritz <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Which platform (OS, compiler)? Which version of OIIO?
>>> 
>>> If you run with a debug build, can you get a stack trace that shows the 
>>> call sequence or line where it crashed?
>>> 
>>> 
>>> 
>>>> On Oct 11, 2020, at 9:12 PM, Arman Garakani <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> I am adding unit test as part of adding OpenImageIO to our app ( Machine 
>>>> Learning / Computer Vision / Biological Assays ). Before going further, 
>>>> oiio solves a fundamental problem in developing media accessing 
>>>> functionality. I have a very directed functionality for videos. Oiio has 
>>>> more functionality, simpler API and supports much wider image format APIs. 
>>>> 
>>>> Here is the problem I am having with small tif stack files I use for 
>>>> testing. <zser16.tif><zser8.tif>
>>>> 
>>>> 
>>>> Here is what iinfo says about it:
>>>> 
>>>> $ iinfo zser8.tif 
>>>> zser8.tif :  160 x  128, 1 channel, uint8 tiff (11 subimages)
>>>> 
>>>> OpenImageIO ImageCache statistics (shared) ver 2.1.18
>>>>   Options:  max_memory_MB=2048.0 max_open_files=100 autotile=0
>>>>             autoscanline=0 automip=0 forcefloat=0 accept_untiled=1
>>>>             accept_unmipped=1 deduplicate=1 unassociatedalpha=0
>>>>             failure_retries=0 
>>>> 
>>>> In the function below, the output before the loop calling add_tile, 
>>>> outputs:
>>>> 11 (160,128) 255::-1::-1::NA::8
>>>> 
>>>> 
>>>> call to add_tile generates a memory access fault. The interesting thing 
>>>> here is that similar file but containing 16bit data works fine. 
>>>> 
>>>> 
>>>> 
>>>> 
>>>>  This is a simple test I am developing to assess hit and miss performance 
>>>> with ImageCache. The test function is a lambda here for simplicity. 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> TEST(oiio, basic){
>>>>     
>>>>     auto test_file = [](const ustring& filename){
>>>>         // Create a private ImageCache so we can customize its cache size
>>>>         // and instruct it store everything internally as floats.
>>>>     ImageCache* ic = ImageCache::create(true);
>>>>     ic->attribute("autotile", 0);
>>>>     ic->attribute("max_memory_MB", 2048.0);
>>>> 
>>>>     
>>>>     ImageSpec spec;
>>>>     int number_of_subimages = 0;
>>>>     while (ic->get_imagespec (filename, spec, number_of_subimages)){
>>>>         number_of_subimages++;
>>>>     }
>>>>     unsigned int maxval = (unsigned int)get_intsample_maxval(spec);
>>>>     int xres = spec.width;
>>>>     int yres = spec.height;
>>>>     int channels = spec.nchannels;
>>>>     int i = spec.get_int_attribute ("oiio:subimages", -1.0);
>>>>     int bp = spec.get_int_attribute ("oiio:BitsPerSample", -1);
>>>>     float fps = spec.get_float_attribute ("Fps", -1.0f);
>>>>     std::string s = spec.get_string_attribute ("DateTime", "NA");
>>>>     
>>>>     std::vector<unsigned char> pixels (xres*yres*channels);
>>>>     std::cout << number_of_subimages << " (" << xres << "," << yres << ") 
>>>> " <<
>>>>         maxval << "::" << i << "::" <<  fps << "::" << s << "::" << bp << 
>>>> std::endl;
>>>> 
>>>>     for (int ss = 0; ss < number_of_subimages; ss++){
>>>>         if (ss & 1)
>>>>             ic->add_tile(filename, ss, 0, 0, 0, 0, 1, 0, TypeDesc::UINT8, 
>>>> pixels.data());
>>>>     }
>>>>     
>>>>     {
>>>>     std::cout << " Half Cached " << std::endl;
>>>>             // average hit time and miss time
>>>>         float hits(0.0), miss(0.0);
>>>>         int hitn(0), missn(0);
>>>>         for (int ss = 0; ss < number_of_subimages; ss++){
>>>>             if (ss & 1){
>>>>                 OIIO::Timer hitimer;
>>>>                 auto tile = ic->get_tile(filename, ss, 0, 0, 0, 0, 1, 0);
>>>>                 assert(tile != nullptr);
>>>>                 hits += hitimer();
>>>>                 hitn++;
>>>>             }
>>>>             else{
>>>>                 OIIO::Timer misstimer;
>>>>                 ic->add_tile(filename, ss, 0, 0, 0, 0, 1, 0, 
>>>> TypeDesc::UINT8, pixels.data());
>>>>                 miss += misstimer();
>>>>                 missn++;
>>>>             }
>>>>         }
>>>>         hits /= hitn;
>>>>         miss /= missn;
>>>>         std::cout << hitn << "," << missn << std::endl;
>>>>         
>>>>         std::cout << hits * 1000 << " , " << miss * 1000 << std::endl;
>>>>     }
>>>>     
>>>>     std::cout << " All Cached " << std::endl;
>>>>     
>>>>     float hits(0.0), miss(0.0);
>>>>     int hitn(0), missn(0);
>>>>     for (int ss = 0; ss < number_of_subimages; ss++){
>>>>         OIIO::Timer hitimer;
>>>>         auto tile = ic->get_tile(filename, ss, 0, 0, 0, 0, 1, 0);
>>>>         if (tile != nullptr){
>>>>             hits += hitimer();
>>>>             hitn++;
>>>>         }
>>>>         else{
>>>>             miss += hitimer();
>>>>             missn++;
>>>>         }
>>>>     }
>>>>     hits /= hitn;
>>>>     if (missn) miss /= missn;
>>>>     std::cout << hitn << "," << missn << std::endl;
>>>>     std::cout << hits * 1000 << " , " << miss * 1000 << std::endl;
>>>>     std::cout << ic->getstats() << std::endl;
>>>>         
>>>>     };
>>>>     
>>>>     
>>>>     auto res = dgenv_ptr->asset_path("zser8.tif");
>>>>     EXPECT_TRUE(res.second);
>>>>     EXPECT_TRUE(boost::filesystem::exists(res.first));
>>>>     ustring filename (res.first.c_str());
>>>>     test_file(filename);
>>>>     
>>>> }
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Oiio-dev mailing list
>>>> [email protected] <mailto:[email protected]>
>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>> 
>>> --
>>> Larry Gritz
>>> [email protected] <mailto:[email protected]>
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> Oiio-dev mailing list
>>> [email protected] <mailto:[email protected]>
>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>> 
>> _______________________________________________
>> Oiio-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> 
> --
> Larry Gritz
> [email protected] <mailto:[email protected]>
> 
> 
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
[email protected]




_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to