From 6a61141137c7a46d747aa611c9caf62436bc119f Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Wed, 1 Apr 2015 14:54:12 -0700 Subject: Adding Bytebuffer support to rastermill library Change-Id: Ifedaeaec49caffa5add357246ff43e2b870949f0 --- framesequence/jni/Registry.cpp | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'framesequence/jni/Registry.cpp') diff --git a/framesequence/jni/Registry.cpp b/framesequence/jni/Registry.cpp index 125ac66..e632bb2 100644 --- a/framesequence/jni/Registry.cpp +++ b/framesequence/jni/Registry.cpp @@ -34,15 +34,26 @@ Registry::Registry(const RegistryEntry& entry) { const RegistryEntry* Registry::Find(Stream* stream) { Registry* registry = gHead; - int headerSize = gHeaderBytesRequired; - char header[headerSize]; - headerSize = stream->peek(header, headerSize); - while (registry) { - if (headerSize >= registry->mImpl.requiredHeaderBytes - && registry->mImpl.checkHeader(header, headerSize)) { - return &(registry->mImpl); + + if (stream->getRawBuffer() != NULL) { + while (registry) { + if (registry->mImpl.acceptsBuffer()) { + return &(registry->mImpl); + } + registry = registry->mNext; + } + } else { + int headerSize = gHeaderBytesRequired; + char header[headerSize]; + headerSize = stream->peek(header, headerSize); + while (registry) { + if (headerSize >= registry->mImpl.requiredHeaderBytes + && registry->mImpl.checkHeader(header, headerSize)) { + return &(registry->mImpl); + } + registry = registry->mNext; } - registry = registry->mNext; } return 0; } + -- cgit v1.2.3