1 /* 2 * Raw FLAC picture parser 3 * Copyright (c) 2001 Fabrice Bellard 4 * 5 * This file is part of FFmpeg. 6 * 7 * FFmpeg is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * FFmpeg is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with FFmpeg; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22 #ifndef AVFORMAT_FLAC_PICTURE_H 23 #define AVFORMAT_FLAC_PICTURE_H 24 25 #include "avformat.h" 26 27 #define RETURN_ERROR(code) do { ret = (code); goto fail; } while (0) 28 29 /** 30 * Parse a FLAC METADATA_BLOCK_PICTURE 31 * 32 * @param s AVFormatContext for logging and the attached picture stream. 33 * @param buf `*buf` points to the actual data which must be padded by 34 * AV_INPUT_BUFFER_PADDING_SIZE bytes not counted in buf_size. 35 * This function may take ownership of `*buf` and reset it. 36 * @param buf_size size of `*buf` (excluding padding) 37 * @param truncate_workaround If set, additional data may be read from s->pb if 38 * truncation has been detected. 39 */ 40 int ff_flac_parse_picture(AVFormatContext *s, uint8_t **buf, int buf_size, 41 int truncate_workaround); 42 43 #endif /* AVFORMAT_FLAC_PICTURE_H */ 44