office-gobmx/vcl/workben/webpfuzzer.cxx
Luboš Luňák 60eaa424c5 support for the WebP image format (tdf#114532)
This commit implements a WebP reader and writer for both lossless
and lossy WebP, export dialog options for selecting lossless/lossy
and quality for lossy, and various internal support for the format.

Since writing WebP to e.g. ODT documents would make those images
unreadable by previous versions with no WebP support, support
for that is explicitly disabled in GraphicFilter, to be enabled
somewhen later.

Change-Id: I9b10f6da6faa78a0bb74415a92e9f163c14685f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128920
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-01-31 10:44:29 +01:00

48 lines
1.3 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <tools/stream.hxx>
#include <vcl/FilterConfigItem.hxx>
#include "commonfuzzer.hxx"
#include <filter/WebpReader.hxx>
#include <config_features.h>
#include <osl/detail/component-mapping.h>
const lib_to_factory_mapping* lo_get_factory_map(void)
{
static lib_to_factory_mapping map[] = { { 0, 0 } };
return map;
}
const lib_to_constructor_mapping* lo_get_constructor_map(void)
{
static lib_to_constructor_mapping map[] = { { 0, 0 } };
return map;
}
extern "C" void* lo_get_custom_widget_func(const char*) { return nullptr; }
extern "C" int LLVMFuzzerInitialize(int* argc, char*** argv)
{
TypicalFuzzerInitialize(argc, argv);
return 0;
}
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
{
SvMemoryStream aStream(const_cast<uint8_t*>(data), size, StreamMode::READ);
Graphic aGraphic;
(void)ImportWebpGraphic(aStream, aGraphic);
return 0;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */