X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fdnxhdenc.h;h=fed17bed516cd37f300173c7f067f2339b1e9a90;hb=6d2b6f21eb45ffbda1103c772060303648714832;hp=3b91bf07990920a634c44408c59d4d79823c2cd8;hpb=c67278098def4438fc587744f5df1c147bc95dc3;p=ffmpeg diff --git a/libavcodec/dnxhdenc.h b/libavcodec/dnxhdenc.h index 3b91bf07990..fed17bed516 100644 --- a/libavcodec/dnxhdenc.h +++ b/libavcodec/dnxhdenc.h @@ -4,20 +4,20 @@ * * VC-3 encoder funded by the British Broadcasting Corporation * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav 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, + * Libav 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 + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -25,20 +25,22 @@ #define AVCODEC_DNXHDENC_H #include -#include "libavcodec/mpegvideo.h" -#include "libavcodec/dnxhddata.h" -typedef struct { +#include "mpegvideo.h" +#include "dnxhddata.h" + +typedef struct RCCMPEntry { uint16_t mb; int value; } RCCMPEntry; -typedef struct { +typedef struct RCEntry { int ssd; int bits; } RCEntry; typedef struct DNXHDEncContext { + AVClass *class; MpegEncContext m; ///< Used for quantization dsp functions AVFrame frame; @@ -50,12 +52,19 @@ typedef struct DNXHDEncContext { struct DNXHDEncContext *thread[MAX_THREADS]; + // Because our samples are either 8 or 16 bits for 8-bit and 10-bit + // encoding respectively, these refer either to bytes or to two-byte words. unsigned dct_y_offset; unsigned dct_uv_offset; + unsigned block_width_l2; + int interlaced; int cur_field; - DECLARE_ALIGNED_16(DCTELEM, blocks)[8][64]; + int nitris_compat; + unsigned min_padding; + + DECLARE_ALIGNED(16, int16_t, blocks)[8][64]; int (*qmatrix_c) [64]; int (*qmatrix_l) [64]; @@ -83,9 +92,9 @@ typedef struct DNXHDEncContext { RCCMPEntry *mb_cmp; RCEntry (*mb_rc)[8160]; - void (*get_pixels_8x4_sym)(DCTELEM */*align 16*/, const uint8_t *, int); + void (*get_pixels_8x4_sym)(int16_t * /*align 16*/, const uint8_t *, int); } DNXHDEncContext; -void ff_dnxhd_init_mmx(DNXHDEncContext *ctx); +void ff_dnxhdenc_init_x86(DNXHDEncContext *ctx); #endif /* AVCODEC_DNXHDENC_H */