]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/vp6data.h
d3d11va: make av_d3d11va_alloc_context() available at all times
[ffmpeg] / libavcodec / vp6data.h
index 5a387cc756c4e1bcfcc927a8820c8fc82bcb9f25..2de90e7be72acedb1bed885e58a14463fc96e5de 100644 (file)
@@ -1,30 +1,34 @@
-/**
- * @file vp6data.h
- * VP6 compatible video decoder
- *
+/*
  * Copyright (C) 2006  Aurelien Jacobs <aurel@gnuage.org>
  *
- * 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
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * VP6 compatible video decoder
  */
 
-#ifndef VP6DATA_H
-#define VP6DATA_H
+#ifndef AVCODEC_VP6DATA_H
+#define AVCODEC_VP6DATA_H
 
-#include "vp56data.h"
+#include <stdint.h>
+
+#include "vp56.h"
 
 static const uint8_t vp6_def_fdv_vector_model[2][8] = {
     { 247, 210, 135, 68, 138, 220, 239, 246 },
@@ -144,7 +148,7 @@ static const uint8_t vp6_coeff_groups[] = {
     5, 5, 5, 5, 5, 5, 5, 5,
 };
 
-static const int16_t vp6_block_copy_filter[16][8][4] = {
+static const int16_t vp6_block_copy_filter[17][8][4] = {
   { {   0, 128,   0,   0  },  /* 0 */
     {  -3, 122,   9,   0  },
     {  -4, 109,  24,  -1  },
@@ -273,9 +277,17 @@ static const int16_t vp6_block_copy_filter[16][8][4] = {
     { -11,  59,  99, -19  },
     {  -6,  38, 114, -18  },
     {  -2,  18, 124, -12  } },
+  { {   0, 128,   0,   0  },  /* 16 */
+    {  -4, 118,  16,  -2  },
+    {  -7, 106,  34,  -5  },
+    {  -8,  90,  53,  -7  },
+    {  -8,  72,  72,  -8  },
+    {  -7,  53,  90,  -8  },
+    {  -5,  34, 106,  -7  },
+    {  -2,  16, 118,  -4  } },
 };
 
-const vp56_tree_t vp6_pcr_tree[] = {
+static const VP56Tree vp6_pcr_tree[] = {
     { 8, 0},
     { 4, 1},
     { 2, 2}, {-1}, {-2},
@@ -289,4 +301,12 @@ const vp56_tree_t vp6_pcr_tree[] = {
 
 static const uint8_t vp6_coord_div[] = { 4, 4, 4, 4, 8, 8 };
 
-#endif /* VP6DATA_H */
+static const uint8_t vp6_huff_coeff_map[] = {
+    13, 14, 11, 0, 1, 15, 16, 18, 2, 17, 3, 4, 19, 20, 5, 6, 21, 22, 7, 8, 9, 10
+};
+
+static const uint8_t vp6_huff_run_map[] = {
+    10, 13, 11, 12, 0, 1, 2, 3, 14, 8, 15, 16, 4, 5, 6, 7
+};
+
+#endif /* AVCODEC_VP6DATA_H */