Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright (c) 2015 Parag Salasakar (Parag.Salasakar@imgtec.com)
  3.                       Zhou Xiaoyong <zhouxiaoyong@loongson.cn>
  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 H264_DSP_MIPS_H
  23. #define H264_DSP_MIPS_H
  24.  
  25. #include "libavcodec/h264.h"
  26. #include "constants.h"
  27.  
  28. void ff_h264_h_lpf_luma_inter_msa(uint8_t *src, int stride,
  29.                                   int alpha, int beta, int8_t *tc0);
  30. void ff_h264_v_lpf_luma_inter_msa(uint8_t *src, int stride,
  31.                                   int alpha, int beta, int8_t *tc0);
  32. void ff_h264_h_lpf_chroma_inter_msa(uint8_t *src, int stride,
  33.                                     int alpha, int beta, int8_t *tc0);
  34. void ff_h264_v_lpf_chroma_inter_msa(uint8_t *src, int stride,
  35.                                     int alpha, int beta, int8_t *tc0);
  36. void ff_h264_h_loop_filter_chroma422_msa(uint8_t *src, int32_t stride,
  37.                                          int32_t alpha, int32_t beta,
  38.                                          int8_t *tc0);
  39. void ff_h264_h_loop_filter_chroma422_mbaff_msa(uint8_t *src, int32_t stride,
  40.                                                int32_t alpha, int32_t beta,
  41.                                                int8_t *tc0);
  42. void ff_h264_h_loop_filter_luma_mbaff_msa(uint8_t *src, int32_t stride,
  43.                                           int32_t alpha, int32_t beta,
  44.                                           int8_t *tc0);
  45.  
  46. void ff_h264_idct_add_msa(uint8_t *dst, int16_t *src, int32_t dst_stride);
  47. void ff_h264_idct4x4_addblk_dc_msa(uint8_t *dst, int16_t *src,
  48.                                    int32_t dst_stride);
  49. void ff_h264_deq_idct_luma_dc_msa(int16_t *dst, int16_t *src,
  50.                                   int32_t de_q_val);
  51. void ff_h264_idct_add16_msa(uint8_t *dst, const int32_t *blk_offset,
  52.                             int16_t *block, int32_t stride,
  53.                             const uint8_t nnzc[15 * 8]);
  54. void ff_h264_idct_add16_intra_msa(uint8_t *dst, const int32_t *blk_offset,
  55.                                   int16_t *block, int32_t dst_stride,
  56.                                   const uint8_t nnzc[15 * 8]);
  57. void ff_h264_idct_add8_msa(uint8_t **dst, const int32_t *blk_offset,
  58.                            int16_t *block, int32_t dst_stride,
  59.                            const uint8_t nnzc[15 * 8]);
  60. void ff_h264_idct_add8_422_msa(uint8_t **dst, const int32_t *blk_offset,
  61.                                int16_t *block, int32_t dst_stride,
  62.                                const uint8_t nnzc[15 * 8]);
  63. void ff_h264_idct8_addblk_msa(uint8_t *dst, int16_t *src, int32_t dst_stride);
  64. void ff_h264_idct8_dc_addblk_msa(uint8_t *dst, int16_t *src,
  65.                                  int32_t dst_stride);
  66. void ff_h264_idct8_add4_msa(uint8_t *dst, const int *blk_offset,
  67.                             int16_t *blk, int dst_stride,
  68.                             const uint8_t nnzc[15 * 8]);
  69.  
  70. void ff_h264_h_lpf_luma_intra_msa(uint8_t *src, int stride,
  71.                                   int alpha, int beta);
  72. void ff_h264_v_lpf_luma_intra_msa(uint8_t *src, int stride,
  73.                                   int alpha, int beta);
  74. void ff_h264_h_lpf_chroma_intra_msa(uint8_t *src, int stride,
  75.                                     int alpha, int beta);
  76. void ff_h264_v_lpf_chroma_intra_msa(uint8_t *src, int stride,
  77.                                     int alpha, int beta);
  78. void ff_h264_h_loop_filter_luma_mbaff_intra_msa(uint8_t *src, int stride,
  79.                                                 int alpha, int beta);
  80.  
  81. void ff_biweight_h264_pixels16_8_msa(uint8_t *dst, uint8_t *src,
  82.                                      int stride, int height, int log2_denom,
  83.                                      int weightd, int weights, int offset);
  84. void ff_biweight_h264_pixels8_8_msa(uint8_t *dst, uint8_t *src,
  85.                                     int stride, int height, int log2_denom,
  86.                                     int weightd, int weights, int offset);
  87. void ff_biweight_h264_pixels4_8_msa(uint8_t *dst, uint8_t *src,
  88.                                     int stride, int height, int log2_denom,
  89.                                     int weightd, int weights, int offset);
  90. void ff_weight_h264_pixels16_8_msa(uint8_t *src, int stride, int height,
  91.                                    int log2_denom, int weight, int offset);
  92. void ff_weight_h264_pixels8_8_msa(uint8_t *src, int stride, int height,
  93.                                   int log2_denom, int weight, int offset);
  94. void ff_weight_h264_pixels4_8_msa(uint8_t *src, int stride, int height,
  95.                                   int log2_denom, int weight, int offset);
  96.  
  97. void ff_put_h264_qpel16_mc00_msa(uint8_t *dst, const uint8_t *src,
  98.                                  ptrdiff_t dst_stride);
  99. void ff_put_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src,
  100.                                  ptrdiff_t dst_stride);
  101. void ff_put_h264_qpel16_mc20_msa(uint8_t *dst, const uint8_t *src,
  102.                                  ptrdiff_t dst_stride);
  103. void ff_put_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src,
  104.                                  ptrdiff_t dst_stride);
  105. void ff_put_h264_qpel16_mc01_msa(uint8_t *dst, const uint8_t *src,
  106.                                  ptrdiff_t dst_stride);
  107. void ff_put_h264_qpel16_mc11_msa(uint8_t *dst, const uint8_t *src,
  108.                                  ptrdiff_t dst_stride);
  109. void ff_put_h264_qpel16_mc21_msa(uint8_t *dst, const uint8_t *src,
  110.                                  ptrdiff_t dst_stride);
  111. void ff_put_h264_qpel16_mc31_msa(uint8_t *dst, const uint8_t *src,
  112.                                  ptrdiff_t dst_stride);
  113. void ff_put_h264_qpel16_mc02_msa(uint8_t *dst, const uint8_t *src,
  114.                                  ptrdiff_t dst_stride);
  115. void ff_put_h264_qpel16_mc12_msa(uint8_t *dst, const uint8_t *src,
  116.                                  ptrdiff_t dst_stride);
  117. void ff_put_h264_qpel16_mc22_msa(uint8_t *dst, const uint8_t *src,
  118.                                  ptrdiff_t dst_stride);
  119. void ff_put_h264_qpel16_mc32_msa(uint8_t *dst, const uint8_t *src,
  120.                                  ptrdiff_t dst_stride);
  121. void ff_put_h264_qpel16_mc03_msa(uint8_t *dst, const uint8_t *src,
  122.                                  ptrdiff_t dst_stride);
  123. void ff_put_h264_qpel16_mc13_msa(uint8_t *dst, const uint8_t *src,
  124.                                  ptrdiff_t dst_stride);
  125. void ff_put_h264_qpel16_mc23_msa(uint8_t *dst, const uint8_t *src,
  126.                                  ptrdiff_t dst_stride);
  127. void ff_put_h264_qpel16_mc33_msa(uint8_t *dst, const uint8_t *src,
  128.                                  ptrdiff_t dst_stride);
  129.  
  130. void ff_put_h264_qpel8_mc00_msa(uint8_t *dst, const uint8_t *src,
  131.                                 ptrdiff_t dst_stride);
  132. void ff_put_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src,
  133.                                 ptrdiff_t dst_stride);
  134. void ff_put_h264_qpel8_mc20_msa(uint8_t *dst, const uint8_t *src,
  135.                                 ptrdiff_t dst_stride);
  136. void ff_put_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src,
  137.                                 ptrdiff_t dst_stride);
  138. void ff_put_h264_qpel8_mc01_msa(uint8_t *dst, const uint8_t *src,
  139.                                 ptrdiff_t dst_stride);
  140. void ff_put_h264_qpel8_mc11_msa(uint8_t *dst, const uint8_t *src,
  141.                                 ptrdiff_t dst_stride);
  142. void ff_put_h264_qpel8_mc21_msa(uint8_t *dst, const uint8_t *src,
  143.                                 ptrdiff_t dst_stride);
  144. void ff_put_h264_qpel8_mc31_msa(uint8_t *dst, const uint8_t *src,
  145.                                 ptrdiff_t dst_stride);
  146. void ff_put_h264_qpel8_mc02_msa(uint8_t *dst, const uint8_t *src,
  147.                                 ptrdiff_t dst_stride);
  148. void ff_put_h264_qpel8_mc12_msa(uint8_t *dst, const uint8_t *src,
  149.                                 ptrdiff_t dst_stride);
  150. void ff_put_h264_qpel8_mc22_msa(uint8_t *dst, const uint8_t *src,
  151.                                 ptrdiff_t dst_stride);
  152. void ff_put_h264_qpel8_mc32_msa(uint8_t *dst, const uint8_t *src,
  153.                                 ptrdiff_t dst_stride);
  154. void ff_put_h264_qpel8_mc03_msa(uint8_t *dst, const uint8_t *src,
  155.                                 ptrdiff_t dst_stride);
  156. void ff_put_h264_qpel8_mc13_msa(uint8_t *dst, const uint8_t *src,
  157.                                 ptrdiff_t dst_stride);
  158. void ff_put_h264_qpel8_mc23_msa(uint8_t *dst, const uint8_t *src,
  159.                                 ptrdiff_t dst_stride);
  160. void ff_put_h264_qpel8_mc33_msa(uint8_t *dst, const uint8_t *src,
  161.                                 ptrdiff_t dst_stride);
  162.  
  163. void ff_put_h264_qpel4_mc00_msa(uint8_t *dst, const uint8_t *src,
  164.                                 ptrdiff_t dst_stride);
  165. void ff_put_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src,
  166.                                 ptrdiff_t dst_stride);
  167. void ff_put_h264_qpel4_mc20_msa(uint8_t *dst, const uint8_t *src,
  168.                                 ptrdiff_t dst_stride);
  169. void ff_put_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src,
  170.                                 ptrdiff_t dst_stride);
  171. void ff_put_h264_qpel4_mc01_msa(uint8_t *dst, const uint8_t *src,
  172.                                 ptrdiff_t dst_stride);
  173. void ff_put_h264_qpel4_mc11_msa(uint8_t *dst, const uint8_t *src,
  174.                                 ptrdiff_t dst_stride);
  175. void ff_put_h264_qpel4_mc21_msa(uint8_t *dst, const uint8_t *src,
  176.                                 ptrdiff_t dst_stride);
  177. void ff_put_h264_qpel4_mc31_msa(uint8_t *dst, const uint8_t *src,
  178.                                 ptrdiff_t dst_stride);
  179. void ff_put_h264_qpel4_mc02_msa(uint8_t *dst, const uint8_t *src,
  180.                                 ptrdiff_t dst_stride);
  181. void ff_put_h264_qpel4_mc12_msa(uint8_t *dst, const uint8_t *src,
  182.                                 ptrdiff_t dst_stride);
  183. void ff_put_h264_qpel4_mc22_msa(uint8_t *dst, const uint8_t *src,
  184.                                 ptrdiff_t dst_stride);
  185. void ff_put_h264_qpel4_mc32_msa(uint8_t *dst, const uint8_t *src,
  186.                                 ptrdiff_t dst_stride);
  187. void ff_put_h264_qpel4_mc03_msa(uint8_t *dst, const uint8_t *src,
  188.                                 ptrdiff_t dst_stride);
  189. void ff_put_h264_qpel4_mc13_msa(uint8_t *dst, const uint8_t *src,
  190.                                 ptrdiff_t dst_stride);
  191. void ff_put_h264_qpel4_mc23_msa(uint8_t *dst, const uint8_t *src,
  192.                                 ptrdiff_t dst_stride);
  193. void ff_put_h264_qpel4_mc33_msa(uint8_t *dst, const uint8_t *src,
  194.                                 ptrdiff_t dst_stride);
  195.  
  196. void ff_avg_h264_qpel16_mc00_msa(uint8_t *dst, const uint8_t *src,
  197.                                  ptrdiff_t dst_stride);
  198. void ff_avg_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src,
  199.                                  ptrdiff_t dst_stride);
  200. void ff_avg_h264_qpel16_mc20_msa(uint8_t *dst, const uint8_t *src,
  201.                                  ptrdiff_t dst_stride);
  202. void ff_avg_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src,
  203.                                  ptrdiff_t dst_stride);
  204. void ff_avg_h264_qpel16_mc01_msa(uint8_t *dst, const uint8_t *src,
  205.                                  ptrdiff_t dst_stride);
  206. void ff_avg_h264_qpel16_mc11_msa(uint8_t *dst, const uint8_t *src,
  207.                                  ptrdiff_t dst_stride);
  208. void ff_avg_h264_qpel16_mc21_msa(uint8_t *dst, const uint8_t *src,
  209.                                  ptrdiff_t dst_stride);
  210. void ff_avg_h264_qpel16_mc31_msa(uint8_t *dst, const uint8_t *src,
  211.                                  ptrdiff_t dst_stride);
  212. void ff_avg_h264_qpel16_mc02_msa(uint8_t *dst, const uint8_t *src,
  213.                                  ptrdiff_t dst_stride);
  214. void ff_avg_h264_qpel16_mc12_msa(uint8_t *dst, const uint8_t *src,
  215.                                  ptrdiff_t dst_stride);
  216. void ff_avg_h264_qpel16_mc22_msa(uint8_t *dst, const uint8_t *src,
  217.                                  ptrdiff_t dst_stride);
  218. void ff_avg_h264_qpel16_mc32_msa(uint8_t *dst, const uint8_t *src,
  219.                                  ptrdiff_t dst_stride);
  220. void ff_avg_h264_qpel16_mc03_msa(uint8_t *dst, const uint8_t *src,
  221.                                  ptrdiff_t dst_stride);
  222. void ff_avg_h264_qpel16_mc13_msa(uint8_t *dst, const uint8_t *src,
  223.                                  ptrdiff_t dst_stride);
  224. void ff_avg_h264_qpel16_mc23_msa(uint8_t *dst, const uint8_t *src,
  225.                                  ptrdiff_t dst_stride);
  226. void ff_avg_h264_qpel16_mc33_msa(uint8_t *dst, const uint8_t *src,
  227.                                  ptrdiff_t dst_stride);
  228.  
  229. void ff_avg_h264_qpel8_mc00_msa(uint8_t *dst, const uint8_t *src,
  230.                                 ptrdiff_t dst_stride);
  231. void ff_avg_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src,
  232.                                 ptrdiff_t dst_stride);
  233. void ff_avg_h264_qpel8_mc20_msa(uint8_t *dst, const uint8_t *src,
  234.                                 ptrdiff_t dst_stride);
  235. void ff_avg_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src,
  236.                                 ptrdiff_t dst_stride);
  237. void ff_avg_h264_qpel8_mc01_msa(uint8_t *dst, const uint8_t *src,
  238.                                 ptrdiff_t dst_stride);
  239. void ff_avg_h264_qpel8_mc11_msa(uint8_t *dst, const uint8_t *src,
  240.                                 ptrdiff_t dst_stride);
  241. void ff_avg_h264_qpel8_mc21_msa(uint8_t *dst, const uint8_t *src,
  242.                                 ptrdiff_t dst_stride);
  243. void ff_avg_h264_qpel8_mc31_msa(uint8_t *dst, const uint8_t *src,
  244.                                 ptrdiff_t dst_stride);
  245. void ff_avg_h264_qpel8_mc02_msa(uint8_t *dst, const uint8_t *src,
  246.                                 ptrdiff_t dst_stride);
  247. void ff_avg_h264_qpel8_mc12_msa(uint8_t *dst, const uint8_t *src,
  248.                                 ptrdiff_t dst_stride);
  249. void ff_avg_h264_qpel8_mc22_msa(uint8_t *dst, const uint8_t *src,
  250.                                 ptrdiff_t dst_stride);
  251. void ff_avg_h264_qpel8_mc32_msa(uint8_t *dst, const uint8_t *src,
  252.                                 ptrdiff_t dst_stride);
  253. void ff_avg_h264_qpel8_mc03_msa(uint8_t *dst, const uint8_t *src,
  254.                                 ptrdiff_t dst_stride);
  255. void ff_avg_h264_qpel8_mc13_msa(uint8_t *dst, const uint8_t *src,
  256.                                 ptrdiff_t dst_stride);
  257. void ff_avg_h264_qpel8_mc23_msa(uint8_t *dst, const uint8_t *src,
  258.                                 ptrdiff_t dst_stride);
  259. void ff_avg_h264_qpel8_mc33_msa(uint8_t *dst, const uint8_t *src,
  260.                                 ptrdiff_t dst_stride);
  261.  
  262. void ff_avg_h264_qpel4_mc00_msa(uint8_t *dst, const uint8_t *src,
  263.                                 ptrdiff_t dst_stride);
  264. void ff_avg_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src,
  265.                                 ptrdiff_t dst_stride);
  266. void ff_avg_h264_qpel4_mc20_msa(uint8_t *dst, const uint8_t *src,
  267.                                 ptrdiff_t dst_stride);
  268. void ff_avg_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src,
  269.                                 ptrdiff_t dst_stride);
  270. void ff_avg_h264_qpel4_mc01_msa(uint8_t *dst, const uint8_t *src,
  271.                                 ptrdiff_t dst_stride);
  272. void ff_avg_h264_qpel4_mc11_msa(uint8_t *dst, const uint8_t *src,
  273.                                 ptrdiff_t dst_stride);
  274. void ff_avg_h264_qpel4_mc21_msa(uint8_t *dst, const uint8_t *src,
  275.                                 ptrdiff_t dst_stride);
  276. void ff_avg_h264_qpel4_mc31_msa(uint8_t *dst, const uint8_t *src,
  277.                                 ptrdiff_t dst_stride);
  278. void ff_avg_h264_qpel4_mc02_msa(uint8_t *dst, const uint8_t *src,
  279.                                 ptrdiff_t dst_stride);
  280. void ff_avg_h264_qpel4_mc12_msa(uint8_t *dst, const uint8_t *src,
  281.                                 ptrdiff_t dst_stride);
  282. void ff_avg_h264_qpel4_mc22_msa(uint8_t *dst, const uint8_t *src,
  283.                                 ptrdiff_t dst_stride);
  284. void ff_avg_h264_qpel4_mc32_msa(uint8_t *dst, const uint8_t *src,
  285.                                 ptrdiff_t dst_stride);
  286. void ff_avg_h264_qpel4_mc03_msa(uint8_t *dst, const uint8_t *src,
  287.                                 ptrdiff_t dst_stride);
  288. void ff_avg_h264_qpel4_mc13_msa(uint8_t *dst, const uint8_t *src,
  289.                                 ptrdiff_t dst_stride);
  290. void ff_avg_h264_qpel4_mc23_msa(uint8_t *dst, const uint8_t *src,
  291.                                 ptrdiff_t dst_stride);
  292. void ff_avg_h264_qpel4_mc33_msa(uint8_t *dst, const uint8_t *src,
  293.                                 ptrdiff_t dst_stride);
  294.  
  295. void ff_h264_intra_predict_plane_8x8_msa(uint8_t *src, ptrdiff_t stride);
  296. void ff_h264_intra_predict_dc_4blk_8x8_msa(uint8_t *src, ptrdiff_t stride);
  297. void ff_h264_intra_predict_hor_dc_8x8_msa(uint8_t *src, ptrdiff_t stride);
  298. void ff_h264_intra_predict_vert_dc_8x8_msa(uint8_t *src, ptrdiff_t stride);
  299. void ff_h264_intra_predict_mad_cow_dc_l0t_8x8_msa(uint8_t *src,
  300.                                                   ptrdiff_t stride);
  301. void ff_h264_intra_predict_mad_cow_dc_0lt_8x8_msa(uint8_t *src,
  302.                                                   ptrdiff_t stride);
  303. void ff_h264_intra_predict_mad_cow_dc_l00_8x8_msa(uint8_t *src,
  304.                                                   ptrdiff_t stride);
  305. void ff_h264_intra_predict_mad_cow_dc_0l0_8x8_msa(uint8_t *src,
  306.                                                   ptrdiff_t stride);
  307. void ff_h264_intra_predict_plane_16x16_msa(uint8_t *src, ptrdiff_t stride);
  308. void ff_h264_intra_pred_vert_8x8_msa(uint8_t *src, ptrdiff_t stride);
  309. void ff_h264_intra_pred_horiz_8x8_msa(uint8_t *src, ptrdiff_t stride);
  310. void ff_h264_intra_pred_dc_16x16_msa(uint8_t *src, ptrdiff_t stride);
  311. void ff_h264_intra_pred_vert_16x16_msa(uint8_t *src, ptrdiff_t stride);
  312. void ff_h264_intra_pred_horiz_16x16_msa(uint8_t *src, ptrdiff_t stride);
  313. void ff_h264_intra_pred_dc_left_16x16_msa(uint8_t *src, ptrdiff_t stride);
  314. void ff_h264_intra_pred_dc_top_16x16_msa(uint8_t *src, ptrdiff_t stride);
  315. void ff_h264_intra_pred_dc_128_8x8_msa(uint8_t *src, ptrdiff_t stride);
  316. void ff_h264_intra_pred_dc_128_16x16_msa(uint8_t *src, ptrdiff_t stride);
  317. void ff_vp8_pred8x8_127_dc_8_msa(uint8_t *src, ptrdiff_t stride);
  318. void ff_vp8_pred8x8_129_dc_8_msa(uint8_t *src, ptrdiff_t stride);
  319. void ff_vp8_pred16x16_127_dc_8_msa(uint8_t *src, ptrdiff_t stride);
  320. void ff_vp8_pred16x16_129_dc_8_msa(uint8_t *src, ptrdiff_t stride);
  321.  
  322. void ff_h264_add_pixels4_8_mmi(uint8_t *_dst, int16_t *_src, int stride);
  323. void ff_h264_idct_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
  324. void ff_h264_idct8_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
  325. void ff_h264_idct_dc_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
  326. void ff_h264_idct8_dc_add_8_mmi(uint8_t *dst, int16_t *block, int stride);
  327. void ff_h264_idct_add16_8_mmi(uint8_t *dst, const int *block_offset,
  328.         int16_t *block, int stride, const uint8_t nnzc[15*8]);
  329. void ff_h264_idct_add16intra_8_mmi(uint8_t *dst, const int *block_offset,
  330.         int16_t *block, int stride, const uint8_t nnzc[15*8]);
  331. void ff_h264_idct8_add4_8_mmi(uint8_t *dst, const int *block_offset,
  332.         int16_t *block, int stride, const uint8_t nnzc[15*8]);
  333. void ff_h264_idct_add8_8_mmi(uint8_t **dest, const int *block_offset,
  334.         int16_t *block, int stride, const uint8_t nnzc[15*8]);
  335. void ff_h264_idct_add8_422_8_mmi(uint8_t **dest, const int *block_offset,
  336.         int16_t *block, int stride, const uint8_t nnzc[15*8]);
  337. void ff_h264_luma_dc_dequant_idct_8_mmi(int16_t *output, int16_t *input,
  338.         int qmul);
  339. void ff_h264_chroma_dc_dequant_idct_8_mmi(int16_t *block, int qmul);
  340. void ff_h264_chroma422_dc_dequant_idct_8_mmi(int16_t *block, int qmul);
  341.  
  342. void ff_h264_weight_pixels16_8_mmi(uint8_t *block, int stride, int height,
  343.         int log2_denom, int weight, int offset);
  344. void ff_h264_biweight_pixels16_8_mmi(uint8_t *dst, uint8_t *src,
  345.         int stride, int height, int log2_denom, int weightd, int weights,
  346.         int offset);
  347. void ff_h264_weight_pixels8_8_mmi(uint8_t *block, int stride, int height,
  348.         int log2_denom, int weight, int offset);
  349. void ff_h264_biweight_pixels8_8_mmi(uint8_t *dst, uint8_t *src,
  350.         int stride, int height, int log2_denom, int weightd, int weights,
  351.         int offset);
  352. void ff_h264_weight_pixels4_8_mmi(uint8_t *block, int stride, int height,
  353.         int log2_denom, int weight, int offset);
  354. void ff_h264_biweight_pixels4_8_mmi(uint8_t *dst, uint8_t *src,
  355.         int stride, int height, int log2_denom, int weightd, int weights,
  356.         int offset);
  357.  
  358. void ff_deblock_v_chroma_8_mmi(uint8_t *pix, int stride, int alpha, int beta,
  359.         int8_t *tc0);
  360. void ff_deblock_v_chroma_intra_8_mmi(uint8_t *pix, int stride, int alpha,
  361.         int beta);
  362. void ff_deblock_h_chroma_8_mmi(uint8_t *pix, int stride, int alpha, int beta,
  363.         int8_t *tc0);
  364. void ff_deblock_h_chroma_intra_8_mmi(uint8_t *pix, int stride, int alpha,
  365.         int beta);
  366. void ff_deblock_v_luma_8_mmi(uint8_t *pix, int stride, int alpha, int beta,
  367.         int8_t *tc0);
  368. void ff_deblock_v_luma_intra_8_mmi(uint8_t *pix, int stride, int alpha,
  369.         int beta);
  370. void ff_deblock_h_luma_8_mmi(uint8_t *pix, int stride, int alpha, int beta,
  371.         int8_t *tc0);
  372. void ff_deblock_h_luma_intra_8_mmi(uint8_t *pix, int stride, int alpha,
  373.         int beta);
  374. void ff_deblock_v8_luma_8_mmi(uint8_t *pix, int stride, int alpha, int beta,
  375.         int8_t *tc0);
  376. void ff_deblock_v8_luma_intra_8_mmi(uint8_t *pix, int stride, int alpha,
  377.         int beta);
  378.  
  379. void ff_put_h264_qpel16_mc00_mmi(uint8_t *dst, const uint8_t *src,
  380.         ptrdiff_t dst_stride);
  381. void ff_put_h264_qpel16_mc10_mmi(uint8_t *dst, const uint8_t *src,
  382.         ptrdiff_t dst_stride);
  383. void ff_put_h264_qpel16_mc20_mmi(uint8_t *dst, const uint8_t *src,
  384.         ptrdiff_t dst_stride);
  385. void ff_put_h264_qpel16_mc30_mmi(uint8_t *dst, const uint8_t *src,
  386.         ptrdiff_t dst_stride);
  387. void ff_put_h264_qpel16_mc01_mmi(uint8_t *dst, const uint8_t *src,
  388.         ptrdiff_t dst_stride);
  389. void ff_put_h264_qpel16_mc11_mmi(uint8_t *dst, const uint8_t *src,
  390.         ptrdiff_t dst_stride);
  391. void ff_put_h264_qpel16_mc21_mmi(uint8_t *dst, const uint8_t *src,
  392.         ptrdiff_t dst_stride);
  393. void ff_put_h264_qpel16_mc31_mmi(uint8_t *dst, const uint8_t *src,
  394.         ptrdiff_t dst_stride);
  395. void ff_put_h264_qpel16_mc02_mmi(uint8_t *dst, const uint8_t *src,
  396.         ptrdiff_t dst_stride);
  397. void ff_put_h264_qpel16_mc12_mmi(uint8_t *dst, const uint8_t *src,
  398.         ptrdiff_t dst_stride);
  399. void ff_put_h264_qpel16_mc22_mmi(uint8_t *dst, const uint8_t *src,
  400.         ptrdiff_t dst_stride);
  401. void ff_put_h264_qpel16_mc32_mmi(uint8_t *dst, const uint8_t *src,
  402.         ptrdiff_t dst_stride);
  403. void ff_put_h264_qpel16_mc03_mmi(uint8_t *dst, const uint8_t *src,
  404.         ptrdiff_t dst_stride);
  405. void ff_put_h264_qpel16_mc13_mmi(uint8_t *dst, const uint8_t *src,
  406.         ptrdiff_t dst_stride);
  407. void ff_put_h264_qpel16_mc23_mmi(uint8_t *dst, const uint8_t *src,
  408.         ptrdiff_t dst_stride);
  409. void ff_put_h264_qpel16_mc33_mmi(uint8_t *dst, const uint8_t *src,
  410.         ptrdiff_t dst_stride);
  411.  
  412. void ff_put_h264_qpel8_mc00_mmi(uint8_t *dst, const uint8_t *src,
  413.         ptrdiff_t dst_stride);
  414. void ff_put_h264_qpel8_mc10_mmi(uint8_t *dst, const uint8_t *src,
  415.         ptrdiff_t dst_stride);
  416. void ff_put_h264_qpel8_mc20_mmi(uint8_t *dst, const uint8_t *src,
  417.         ptrdiff_t dst_stride);
  418. void ff_put_h264_qpel8_mc30_mmi(uint8_t *dst, const uint8_t *src,
  419.         ptrdiff_t dst_stride);
  420. void ff_put_h264_qpel8_mc01_mmi(uint8_t *dst, const uint8_t *src,
  421.         ptrdiff_t dst_stride);
  422. void ff_put_h264_qpel8_mc11_mmi(uint8_t *dst, const uint8_t *src,
  423.         ptrdiff_t dst_stride);
  424. void ff_put_h264_qpel8_mc21_mmi(uint8_t *dst, const uint8_t *src,
  425.         ptrdiff_t dst_stride);
  426. void ff_put_h264_qpel8_mc31_mmi(uint8_t *dst, const uint8_t *src,
  427.         ptrdiff_t dst_stride);
  428. void ff_put_h264_qpel8_mc02_mmi(uint8_t *dst, const uint8_t *src,
  429.         ptrdiff_t dst_stride);
  430. void ff_put_h264_qpel8_mc12_mmi(uint8_t *dst, const uint8_t *src,
  431.         ptrdiff_t dst_stride);
  432. void ff_put_h264_qpel8_mc22_mmi(uint8_t *dst, const uint8_t *src,
  433.         ptrdiff_t dst_stride);
  434. void ff_put_h264_qpel8_mc32_mmi(uint8_t *dst, const uint8_t *src,
  435.         ptrdiff_t dst_stride);
  436. void ff_put_h264_qpel8_mc03_mmi(uint8_t *dst, const uint8_t *src,
  437.         ptrdiff_t dst_stride);
  438. void ff_put_h264_qpel8_mc13_mmi(uint8_t *dst, const uint8_t *src,
  439.         ptrdiff_t dst_stride);
  440. void ff_put_h264_qpel8_mc23_mmi(uint8_t *dst, const uint8_t *src,
  441.         ptrdiff_t dst_stride);
  442. void ff_put_h264_qpel8_mc33_mmi(uint8_t *dst, const uint8_t *src,
  443.         ptrdiff_t dst_stride);
  444.  
  445. void ff_put_h264_qpel4_mc00_mmi(uint8_t *dst, const uint8_t *src,
  446.         ptrdiff_t dst_stride);
  447. void ff_put_h264_qpel4_mc10_mmi(uint8_t *dst, const uint8_t *src,
  448.         ptrdiff_t dst_stride);
  449. void ff_put_h264_qpel4_mc20_mmi(uint8_t *dst, const uint8_t *src,
  450.         ptrdiff_t dst_stride);
  451. void ff_put_h264_qpel4_mc30_mmi(uint8_t *dst, const uint8_t *src,
  452.         ptrdiff_t dst_stride);
  453. void ff_put_h264_qpel4_mc01_mmi(uint8_t *dst, const uint8_t *src,
  454.         ptrdiff_t dst_stride);
  455. void ff_put_h264_qpel4_mc11_mmi(uint8_t *dst, const uint8_t *src,
  456.         ptrdiff_t dst_stride);
  457. void ff_put_h264_qpel4_mc21_mmi(uint8_t *dst, const uint8_t *src,
  458.         ptrdiff_t dst_stride);
  459. void ff_put_h264_qpel4_mc31_mmi(uint8_t *dst, const uint8_t *src,
  460.         ptrdiff_t dst_stride);
  461. void ff_put_h264_qpel4_mc02_mmi(uint8_t *dst, const uint8_t *src,
  462.         ptrdiff_t dst_stride);
  463. void ff_put_h264_qpel4_mc12_mmi(uint8_t *dst, const uint8_t *src,
  464.         ptrdiff_t dst_stride);
  465. void ff_put_h264_qpel4_mc22_mmi(uint8_t *dst, const uint8_t *src,
  466.         ptrdiff_t dst_stride);
  467. void ff_put_h264_qpel4_mc32_mmi(uint8_t *dst, const uint8_t *src,
  468.         ptrdiff_t dst_stride);
  469. void ff_put_h264_qpel4_mc03_mmi(uint8_t *dst, const uint8_t *src,
  470.         ptrdiff_t dst_stride);
  471. void ff_put_h264_qpel4_mc13_mmi(uint8_t *dst, const uint8_t *src,
  472.         ptrdiff_t dst_stride);
  473. void ff_put_h264_qpel4_mc23_mmi(uint8_t *dst, const uint8_t *src,
  474.         ptrdiff_t dst_stride);
  475. void ff_put_h264_qpel4_mc33_mmi(uint8_t *dst, const uint8_t *src,
  476.         ptrdiff_t dst_stride);
  477.  
  478. void ff_avg_h264_qpel16_mc00_mmi(uint8_t *dst, const uint8_t *src,
  479.         ptrdiff_t dst_stride);
  480. void ff_avg_h264_qpel16_mc10_mmi(uint8_t *dst, const uint8_t *src,
  481.         ptrdiff_t dst_stride);
  482. void ff_avg_h264_qpel16_mc20_mmi(uint8_t *dst, const uint8_t *src,
  483.         ptrdiff_t dst_stride);
  484. void ff_avg_h264_qpel16_mc30_mmi(uint8_t *dst, const uint8_t *src,
  485.         ptrdiff_t dst_stride);
  486. void ff_avg_h264_qpel16_mc01_mmi(uint8_t *dst, const uint8_t *src,
  487.         ptrdiff_t dst_stride);
  488. void ff_avg_h264_qpel16_mc11_mmi(uint8_t *dst, const uint8_t *src,
  489.         ptrdiff_t dst_stride);
  490. void ff_avg_h264_qpel16_mc21_mmi(uint8_t *dst, const uint8_t *src,
  491.         ptrdiff_t dst_stride);
  492. void ff_avg_h264_qpel16_mc31_mmi(uint8_t *dst, const uint8_t *src,
  493.         ptrdiff_t dst_stride);
  494. void ff_avg_h264_qpel16_mc02_mmi(uint8_t *dst, const uint8_t *src,
  495.         ptrdiff_t dst_stride);
  496. void ff_avg_h264_qpel16_mc12_mmi(uint8_t *dst, const uint8_t *src,
  497.         ptrdiff_t dst_stride);
  498. void ff_avg_h264_qpel16_mc22_mmi(uint8_t *dst, const uint8_t *src,
  499.         ptrdiff_t dst_stride);
  500. void ff_avg_h264_qpel16_mc32_mmi(uint8_t *dst, const uint8_t *src,
  501.         ptrdiff_t dst_stride);
  502. void ff_avg_h264_qpel16_mc03_mmi(uint8_t *dst, const uint8_t *src,
  503.         ptrdiff_t dst_stride);
  504. void ff_avg_h264_qpel16_mc13_mmi(uint8_t *dst, const uint8_t *src,
  505.         ptrdiff_t dst_stride);
  506. void ff_avg_h264_qpel16_mc23_mmi(uint8_t *dst, const uint8_t *src,
  507.         ptrdiff_t dst_stride);
  508. void ff_avg_h264_qpel16_mc33_mmi(uint8_t *dst, const uint8_t *src,
  509.         ptrdiff_t dst_stride);
  510.  
  511. void ff_avg_h264_qpel8_mc00_mmi(uint8_t *dst, const uint8_t *src,
  512.         ptrdiff_t dst_stride);
  513. void ff_avg_h264_qpel8_mc10_mmi(uint8_t *dst, const uint8_t *src,
  514.         ptrdiff_t dst_stride);
  515. void ff_avg_h264_qpel8_mc20_mmi(uint8_t *dst, const uint8_t *src,
  516.         ptrdiff_t dst_stride);
  517. void ff_avg_h264_qpel8_mc30_mmi(uint8_t *dst, const uint8_t *src,
  518.         ptrdiff_t dst_stride);
  519. void ff_avg_h264_qpel8_mc01_mmi(uint8_t *dst, const uint8_t *src,
  520.         ptrdiff_t dst_stride);
  521. void ff_avg_h264_qpel8_mc11_mmi(uint8_t *dst, const uint8_t *src,
  522.         ptrdiff_t dst_stride);
  523. void ff_avg_h264_qpel8_mc21_mmi(uint8_t *dst, const uint8_t *src,
  524.         ptrdiff_t dst_stride);
  525. void ff_avg_h264_qpel8_mc31_mmi(uint8_t *dst, const uint8_t *src,
  526.         ptrdiff_t dst_stride);
  527. void ff_avg_h264_qpel8_mc02_mmi(uint8_t *dst, const uint8_t *src,
  528.         ptrdiff_t dst_stride);
  529. void ff_avg_h264_qpel8_mc12_mmi(uint8_t *dst, const uint8_t *src,
  530.         ptrdiff_t dst_stride);
  531. void ff_avg_h264_qpel8_mc22_mmi(uint8_t *dst, const uint8_t *src,
  532.         ptrdiff_t dst_stride);
  533. void ff_avg_h264_qpel8_mc32_mmi(uint8_t *dst, const uint8_t *src,
  534.         ptrdiff_t dst_stride);
  535. void ff_avg_h264_qpel8_mc03_mmi(uint8_t *dst, const uint8_t *src,
  536.         ptrdiff_t dst_stride);
  537. void ff_avg_h264_qpel8_mc13_mmi(uint8_t *dst, const uint8_t *src,
  538.         ptrdiff_t dst_stride);
  539. void ff_avg_h264_qpel8_mc23_mmi(uint8_t *dst, const uint8_t *src,
  540.         ptrdiff_t dst_stride);
  541. void ff_avg_h264_qpel8_mc33_mmi(uint8_t *dst, const uint8_t *src,
  542.         ptrdiff_t dst_stride);
  543.  
  544. void ff_avg_h264_qpel4_mc00_mmi(uint8_t *dst, const uint8_t *src,
  545.         ptrdiff_t dst_stride);
  546. void ff_avg_h264_qpel4_mc10_mmi(uint8_t *dst, const uint8_t *src,
  547.         ptrdiff_t dst_stride);
  548. void ff_avg_h264_qpel4_mc20_mmi(uint8_t *dst, const uint8_t *src,
  549.         ptrdiff_t dst_stride);
  550. void ff_avg_h264_qpel4_mc30_mmi(uint8_t *dst, const uint8_t *src,
  551.         ptrdiff_t dst_stride);
  552. void ff_avg_h264_qpel4_mc01_mmi(uint8_t *dst, const uint8_t *src,
  553.         ptrdiff_t dst_stride);
  554. void ff_avg_h264_qpel4_mc11_mmi(uint8_t *dst, const uint8_t *src,
  555.         ptrdiff_t dst_stride);
  556. void ff_avg_h264_qpel4_mc21_mmi(uint8_t *dst, const uint8_t *src,
  557.         ptrdiff_t dst_stride);
  558. void ff_avg_h264_qpel4_mc31_mmi(uint8_t *dst, const uint8_t *src,
  559.         ptrdiff_t dst_stride);
  560. void ff_avg_h264_qpel4_mc02_mmi(uint8_t *dst, const uint8_t *src,
  561.         ptrdiff_t dst_stride);
  562. void ff_avg_h264_qpel4_mc12_mmi(uint8_t *dst, const uint8_t *src,
  563.         ptrdiff_t dst_stride);
  564. void ff_avg_h264_qpel4_mc22_mmi(uint8_t *dst, const uint8_t *src,
  565.         ptrdiff_t dst_stride);
  566. void ff_avg_h264_qpel4_mc32_mmi(uint8_t *dst, const uint8_t *src,
  567.         ptrdiff_t dst_stride);
  568. void ff_avg_h264_qpel4_mc03_mmi(uint8_t *dst, const uint8_t *src,
  569.         ptrdiff_t dst_stride);
  570. void ff_avg_h264_qpel4_mc13_mmi(uint8_t *dst, const uint8_t *src,
  571.         ptrdiff_t dst_stride);
  572. void ff_avg_h264_qpel4_mc23_mmi(uint8_t *dst, const uint8_t *src,
  573.         ptrdiff_t dst_stride);
  574. void ff_avg_h264_qpel4_mc33_mmi(uint8_t *dst, const uint8_t *src,
  575.         ptrdiff_t dst_stride);
  576.  
  577. #endif  // #ifndef H264_DSP_MIPS_H
  578.