/* * Copyright (c) 2010-2011 Maxim Poliakovski * Copyright (c) 2010-2011 Elvis Presley * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef AVCODEC_PRORESDEC_H #define AVCODEC_PRORESDEC_H #include "get_bits.h" #include "blockdsp.h" #include "proresdsp.h" typedef struct { const uint8_t *data; unsigned mb_x; unsigned mb_y; unsigned mb_count; unsigned data_size; int ret; } SliceContext; typedef struct { BlockDSPContext bdsp; ProresDSPContext prodsp; AVFrame *frame; int frame_type; ///< 0 = progressive, 1 = tff, 2 = bff uint8_t qmat_luma[64]; uint8_t qmat_chroma[64]; SliceContext *slices; int slice_count; ///< number of slices in the current picture unsigned mb_width; ///< width of the current picture in mb unsigned mb_height; ///< height of the current picture in mb uint8_t progressive_scan[64]; uint8_t interlaced_scan[64]; const uint8_t *scan; int first_field; int alpha_info; void (*unpack_alpha)(GetBitContext *gb, uint16_t *dst, int num_coeffs, const int num_bits); } ProresContext; #endif /* AVCODEC_PRORESDEC_H */