X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftruemotion1data.h;h=e950450fcdf26e7a708d2bce0297733398d2008e;hb=b0c4f04338234ee011d7b704621347ef232294fe;hp=59b863713b5df185e40230e6e53c0fbdc7e5f032;hpb=c26ae41db21d6a7d5092b3cb51ce2e4866b076ae;p=ffmpeg diff --git a/libavcodec/truemotion1data.h b/libavcodec/truemotion1data.h index 59b863713b5..e950450fcdf 100644 --- a/libavcodec/truemotion1data.h +++ b/libavcodec/truemotion1data.h @@ -2,19 +2,40 @@ * Duck Truemotion v1 Decoding Tables * * Data in this file was originally part of VpVision from On2 which is - * distributed under the GNU GPL. It is redistributed with ffmpeg under the - * GNU LGPL using the common understanding that data tables necessary for - * decoding algorithms are not necessarily licensable. + * distributed under the GNU GPL. It is redistributed with libavcodec under + * the GNU LGPL using the common understanding that data tables necessary + * for decoding algorithms are not necessarily copyrightable. + * + * This file is part of Libav. + * + * 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. + * + * 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#ifndef TRUEMOTION1DATA_H -#define TRUEMOTION1DATA_H +#ifndef AVCODEC_TRUEMOTION1DATA_H +#define AVCODEC_TRUEMOTION1DATA_H + +#include +#include /* Y delta tables, skinny and fat */ static const int16_t ydt1[8] = { 0, -2, 2, -6, 6, -12, 12, -12 }; -static const int16_t ydt2[8] = { 0, -2, 2, -6, 6, -12, 12, -12 }; +static const int16_t ydt2[8] = { 0, -2, 4, -6, 8, -12, 12, -12 }; static const int16_t ydt3[8] = { 4, -6, 20, -20, 46, -46, 94, -94 }; static const int16_t fat_ydt3[8] = { 0, -15, 50, -50, 115, -115, 235, -235 }; static const int16_t ydt4[8] = { 0, -4, 4, -16, 16, -36, 36, -80 }; +/* NOTE: This table breaks the [+,-] pattern that the rest of the + * tables maintain. Is this intentional? */ static const int16_t fat_ydt4[8] = { 0, 40, 80, -76, 160, -154, 236, -236 }; /* C delta tables, skinny and fat */ @@ -22,15 +43,12 @@ static const int16_t cdt1[8] = { 0, -1, 1, -2, 3, -4, 5, -4 }; static const int16_t cdt2[8] = { 0, -4, 3, -16, 20, -32, 36, -32 }; static const int16_t fat_cdt2[8] = { 0, -20, 15, -80, 100, -160, 180, -160 }; static const int16_t cdt3[8] = { 0, -2, 2, -8, 8, -18, 18, -40 }; -/* NOTE: This table breaks the [+,-] pattern that the rest of the - * tables maintain. Is this intentional? */ -static const int16_t fat_cdt3[8] = { 0, 40, 80, -76, 160, -154, 236, -236 }; /* all the delta tables to choose from, at all 4 delta levels */ -static const int16_t *ydts[] = { ydt1, ydt2, ydt3, ydt4, NULL }; -static const int16_t *fat_ydts[] = { fat_ydt3, fat_ydt3, fat_ydt3, fat_ydt4, NULL }; -static const int16_t *cdts[] = { cdt1, cdt2, cdt3, cdt3, NULL }; -static const int16_t *fat_cdts[] = { fat_cdt2, fat_cdt2, fat_cdt2, fat_cdt3, NULL }; +static const int16_t * const ydts[] = { ydt1, ydt2, ydt3, ydt4, NULL }; +static const int16_t * const fat_ydts[] = { fat_ydt3, fat_ydt3, fat_ydt3, fat_ydt4, NULL }; +static const int16_t * const cdts[] = { cdt1, cdt1, cdt2, cdt3, NULL }; +static const int16_t * const fat_cdts[] = { fat_cdt2, fat_cdt2, fat_cdt2, fat_ydt4, NULL }; static const uint8_t pc_tbl2[] = { 0x8,0x00,0x00,0x00,0x00, @@ -809,5 +827,6 @@ static const uint8_t pc_tbl4[] = { 0x2,0x77 }; -static const uint8_t *tables[] = { pc_tbl2, pc_tbl3, pc_tbl4 }; -#endif +static const uint8_t * const tables[] = { pc_tbl2, pc_tbl3, pc_tbl4 }; + +#endif /* AVCODEC_TRUEMOTION1DATA_H */