1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2018 Google Inc. 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #include "src/codec/SkParseEncodedOrigin.h" 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkData.h" 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkRefCnt.h" 12*c8dee2aaSAndroid Build Coastguard Worker #include "include/private/SkExif.h" 13*c8dee2aaSAndroid Build Coastguard Worker #include "include/private/base/SkAssert.h" 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker #include <optional> 16*c8dee2aaSAndroid Build Coastguard Worker SkParseEncodedOrigin(const void * data,size_t data_length,SkEncodedOrigin * orientation)17*c8dee2aaSAndroid Build Coastguard Workerbool SkParseEncodedOrigin(const void* data, size_t data_length, SkEncodedOrigin* orientation) { 18*c8dee2aaSAndroid Build Coastguard Worker SkASSERT(orientation); 19*c8dee2aaSAndroid Build Coastguard Worker SkExif::Metadata exif; 20*c8dee2aaSAndroid Build Coastguard Worker SkExif::Parse(exif, SkData::MakeWithoutCopy(data, data_length).get()); 21*c8dee2aaSAndroid Build Coastguard Worker if (exif.fOrigin.has_value()) { 22*c8dee2aaSAndroid Build Coastguard Worker *orientation = exif.fOrigin.value(); 23*c8dee2aaSAndroid Build Coastguard Worker return true; 24*c8dee2aaSAndroid Build Coastguard Worker } 25*c8dee2aaSAndroid Build Coastguard Worker return false; 26*c8dee2aaSAndroid Build Coastguard Worker } 27