diff options
author | Sadaf Ebrahimi <sadafebrahimi@google.com> | 2023-08-25 16:27:50 +0000 |
---|---|---|
committer | Sadaf Ebrahimi <sadafebrahimi@google.com> | 2023-08-25 16:27:50 +0000 |
commit | 678702573531f19ae36847a6a07257aaae623fbe (patch) | |
tree | 5d9b28c2e73f9d5e76d9556181a6cf73ac4bd182 /files/source/mjpeg_validate.cc | |
parent | 8ef2efc6534659701bc7114e57133207547f60e7 (diff) | |
download | libyuv-678702573531f19ae36847a6a07257aaae623fbe.tar.gz |
Move libyuv/files/ directly under libyuv
Test: TreeHugger
Merged-In: I773d1ae01539cc5d200768b526f10b2922567f72
Change-Id: I4ba1f1e781d7fd3ad96639dfdc08f654e45ae3d3
Diffstat (limited to 'files/source/mjpeg_validate.cc')
-rw-r--r-- | files/source/mjpeg_validate.cc | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/files/source/mjpeg_validate.cc b/files/source/mjpeg_validate.cc deleted file mode 100644 index ba0a03ab..00000000 --- a/files/source/mjpeg_validate.cc +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2012 The LibYuv Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#include "libyuv/mjpeg_decoder.h" - -#include <string.h> // For memchr. - -#ifdef __cplusplus -namespace libyuv { -extern "C" { -#endif - -// Helper function to scan for EOI marker (0xff 0xd9). -static LIBYUV_BOOL ScanEOI(const uint8_t* src_mjpg, size_t src_size_mjpg) { - if (src_size_mjpg >= 2) { - const uint8_t* end = src_mjpg + src_size_mjpg - 1; - const uint8_t* it = src_mjpg; - while (it < end) { - // TODO(fbarchard): scan for 0xd9 instead. - it = (const uint8_t*)(memchr(it, 0xff, end - it)); - if (it == NULL) { - break; - } - if (it[1] == 0xd9) { - return LIBYUV_TRUE; // Success: Valid jpeg. - } - ++it; // Skip over current 0xff. - } - } - // ERROR: Invalid jpeg end code not found. Size src_size_mjpg - return LIBYUV_FALSE; -} - -// Helper function to validate the jpeg appears intact. -LIBYUV_BOOL ValidateJpeg(const uint8_t* src_mjpg, size_t src_size_mjpg) { - // Maximum size that ValidateJpeg will consider valid. - const size_t kMaxJpegSize = 0x7fffffffull; - const size_t kBackSearchSize = 1024; - if (src_size_mjpg < 64 || src_size_mjpg > kMaxJpegSize || !src_mjpg) { - // ERROR: Invalid jpeg size: src_size_mjpg - return LIBYUV_FALSE; - } - // SOI marker - if (src_mjpg[0] != 0xff || src_mjpg[1] != 0xd8 || src_mjpg[2] != 0xff) { - // ERROR: Invalid jpeg initial start code - return LIBYUV_FALSE; - } - - // Look for the End Of Image (EOI) marker near the end of the buffer. - if (src_size_mjpg > kBackSearchSize) { - if (ScanEOI(src_mjpg + src_size_mjpg - kBackSearchSize, kBackSearchSize)) { - return LIBYUV_TRUE; // Success: Valid jpeg. - } - // Reduce search size for forward search. - src_size_mjpg = src_size_mjpg - kBackSearchSize + 1; - } - // Step over SOI marker and scan for EOI. - return ScanEOI(src_mjpg + 2, src_size_mjpg - 2); -} - -#ifdef __cplusplus -} // extern "C" -} // namespace libyuv -#endif |