首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从管道顺序读取OpenEXR

从管道顺序读取OpenEXR
EN

Stack Overflow用户
提问于 2012-07-14 23:38:32
回答 1查看 126关注 0票数 0

我正在尝试从一个管道读取EXR流,处理它们并将结果写入另一个管道。在这种情况下,它们被命名为管道,但它们也可以是stdin和stdout。

我的问题出现在管道干裂的时候。OpenEXR不喜欢尝试读取任何内容,并使用以下堆栈跟踪崩溃。

代码语言:javascript
复制
(gdb) run in.exr out.exr
Starting program: /Users/jon/Library/Developer/Xcode/DerivedData/compressor-abhdftqzleulxsfkpidvcazfowwo/Build/Products/Debug/compressor in.exr out.exr
Reading symbols for shared libraries +++++++++......................................................................................................... done
Reading symbols for shared libraries ............ done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
terminate called throwing an exception
Program received signal SIGABRT, Aborted.
0x00007fff90957ce2 in __pthread_kill ()
(gdb) backtrace
#0  0x00007fff90957ce2 in __pthread_kill ()
#1  0x00007fff866f27d2 in pthread_kill ()
#2  0x00007fff866e3a7a in abort ()
#3  0x00007fff8643c7bc in abort_message ()
#4  0x00007fff86439fcf in default_terminate ()
#5  0x00007fff844d61cd in _objc_terminate ()
#6  0x00007fff8643a001 in safe_handler_caller ()
#7  0x00007fff86439fed in unexpected_defaults_to_terminate ()
#8  0x00007fff8643a040 in __cxxabiv1::__unexpected ()
#9  0x00007fff8643aefe in __cxa_call_unexpected ()
#10 0x0000000100008cfb in exr::ReadEXR (pixelBuffer=@0x7fff5fbfee00, is=@0x7fff5fbfeef8) at /Users/jon/Development/compressor/compressor/exr.cpp:47
#11 0x0000000100001c39 in main (argc=4, argv=0x7fff5fbffaa8) at /Users/jon/Development/compressor/compressor/main.cpp:79

我真的希望OpenEXR阻塞线程,直到有更多的数据可用,但如果有一些方法可以手动检查是否有更多的数据可以做,只要它有一定的健壮性。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-18 19:52:50

这个问题的解决方案实际上是扩展Imf::Istream,并将其实现为在输入管道枯竭时阻塞。

对于这个特定的问题,需要做一些考虑,比如管道是找不到的,也不知道它们的位置,但是它们可以解决。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11485063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档