1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * Snappy module 3cabdff1aSopenharmony_ci * Copyright (c) Luca Barbato 4cabdff1aSopenharmony_ci * 5cabdff1aSopenharmony_ci * This file is part of FFmpeg. 6cabdff1aSopenharmony_ci * 7cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or 8cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public 9cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either 10cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version. 11cabdff1aSopenharmony_ci * 12cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 13cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 14cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15cabdff1aSopenharmony_ci * Lesser General Public License for more details. 16cabdff1aSopenharmony_ci * 17cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public 18cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software 19cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20cabdff1aSopenharmony_ci */ 21cabdff1aSopenharmony_ci 22cabdff1aSopenharmony_ci/** 23cabdff1aSopenharmony_ci * @file 24cabdff1aSopenharmony_ci * Snappy decompression 25cabdff1aSopenharmony_ci * 26cabdff1aSopenharmony_ci * Snappy is a compression/decompression algorithm that does not aim for 27cabdff1aSopenharmony_ci * maximum compression, but rather for very high speeds and reasonable 28cabdff1aSopenharmony_ci * compression. 29cabdff1aSopenharmony_ci * 30cabdff1aSopenharmony_ci * http://en.wikipedia.org/wiki/Snappy_%28software%29 31cabdff1aSopenharmony_ci */ 32cabdff1aSopenharmony_ci 33cabdff1aSopenharmony_ci#ifndef AVCODEC_SNAPPY_H 34cabdff1aSopenharmony_ci#define AVCODEC_SNAPPY_H 35cabdff1aSopenharmony_ci 36cabdff1aSopenharmony_ci#include <stdint.h> 37cabdff1aSopenharmony_ci 38cabdff1aSopenharmony_ci#include "bytestream.h" 39cabdff1aSopenharmony_ci 40cabdff1aSopenharmony_ci/** 41cabdff1aSopenharmony_ci * Get the uncompressed length of an input buffer compressed using the Snappy 42cabdff1aSopenharmony_ci * algorithm. The GetByteContext is not advanced. 43cabdff1aSopenharmony_ci * 44cabdff1aSopenharmony_ci * @param gb input GetByteContext. 45cabdff1aSopenharmony_ci * @return A positive length on success, AVERROR otherwise. 46cabdff1aSopenharmony_ci */ 47cabdff1aSopenharmony_ci int64_t ff_snappy_peek_uncompressed_length(GetByteContext *gb); 48cabdff1aSopenharmony_ci 49cabdff1aSopenharmony_ci/** 50cabdff1aSopenharmony_ci * Decompress an input buffer using Snappy algorithm. 51cabdff1aSopenharmony_ci * 52cabdff1aSopenharmony_ci * @param gb input GetByteContext. 53cabdff1aSopenharmony_ci * @param buf input buffer pointer. 54cabdff1aSopenharmony_ci * @param size input/output on input, the size of buffer, on output, the size 55cabdff1aSopenharmony_ci * of the uncompressed data. 56cabdff1aSopenharmony_ci * @return 0 if success, AVERROR otherwise. 57cabdff1aSopenharmony_ci */ 58cabdff1aSopenharmony_ciint ff_snappy_uncompress(GetByteContext *gb, uint8_t *buf, int64_t *size); 59cabdff1aSopenharmony_ci 60cabdff1aSopenharmony_ci#endif /* AVCODEC_SNAPPY_H */ 61