~ubuntu-branches/ubuntu/vivid/gstreamer-vaapi/vivid

« back to all changes in this revision

Viewing changes to ext/libvpx/upstream/vp8/common/idct_blk.c

  • Committer: Package Import Robot
  • Author(s): Vincent Cheng
  • Date: 2014-08-06 23:56:00 UTC
  • mfrom: (0.1.4 sid) (1.1.3)
  • Revision ID: package-import@ubuntu.com-20140806235600-fg1kcmiu67k315q5
Tags: 0.5.9-2
* Remove spurious build-deps: libva-drm1, libavcodec-dev. (Closes: #757283)
* Drop Build-Depends-Indep and build docs unconditionally on all archs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
 
3
 *
 
4
 *  Use of this source code is governed by a BSD-style license
 
5
 *  that can be found in the LICENSE file in the root of the source
 
6
 *  tree. An additional intellectual property rights grant can be found
 
7
 *  in the file PATENTS.  All contributing project authors may
 
8
 *  be found in the AUTHORS file in the root of the source tree.
 
9
 */
 
10
 
 
11
#include "vpx_config.h"
 
12
#include "vp8_rtcd.h"
 
13
#include "vpx_mem/vpx_mem.h"
 
14
 
 
15
void vp8_dequant_idct_add_c(short *input, short *dq,
 
16
                            unsigned char *dest, int stride);
 
17
void vp8_dc_only_idct_add_c(short input_dc, unsigned char * pred,
 
18
                            int pred_stride, unsigned char *dst_ptr,
 
19
                            int dst_stride);
 
20
 
 
21
void vp8_dequant_idct_add_y_block_c
 
22
            (short *q, short *dq,
 
23
             unsigned char *dst, int stride, char *eobs)
 
24
{
 
25
    int i, j;
 
26
 
 
27
    for (i = 0; i < 4; i++)
 
28
    {
 
29
        for (j = 0; j < 4; j++)
 
30
        {
 
31
            if (*eobs++ > 1)
 
32
                vp8_dequant_idct_add_c (q, dq, dst, stride);
 
33
            else
 
34
            {
 
35
                vp8_dc_only_idct_add_c (q[0]*dq[0], dst, stride, dst, stride);
 
36
                vpx_memset(q, 0, 2 * sizeof(q[0]));
 
37
            }
 
38
 
 
39
            q   += 16;
 
40
            dst += 4;
 
41
        }
 
42
 
 
43
        dst += 4*stride - 16;
 
44
    }
 
45
}
 
46
 
 
47
void vp8_dequant_idct_add_uv_block_c
 
48
            (short *q, short *dq,
 
49
             unsigned char *dstu, unsigned char *dstv, int stride, char *eobs)
 
50
{
 
51
    int i, j;
 
52
 
 
53
    for (i = 0; i < 2; i++)
 
54
    {
 
55
        for (j = 0; j < 2; j++)
 
56
        {
 
57
            if (*eobs++ > 1)
 
58
                vp8_dequant_idct_add_c (q, dq, dstu, stride);
 
59
            else
 
60
            {
 
61
                vp8_dc_only_idct_add_c (q[0]*dq[0], dstu, stride, dstu, stride);
 
62
                vpx_memset(q, 0, 2 * sizeof(q[0]));
 
63
            }
 
64
 
 
65
            q    += 16;
 
66
            dstu += 4;
 
67
        }
 
68
 
 
69
        dstu += 4*stride - 8;
 
70
    }
 
71
 
 
72
    for (i = 0; i < 2; i++)
 
73
    {
 
74
        for (j = 0; j < 2; j++)
 
75
        {
 
76
            if (*eobs++ > 1)
 
77
                vp8_dequant_idct_add_c (q, dq, dstv, stride);
 
78
            else
 
79
            {
 
80
                vp8_dc_only_idct_add_c (q[0]*dq[0], dstv, stride, dstv, stride);
 
81
                vpx_memset(q, 0, 2 * sizeof(q[0]));
 
82
            }
 
83
 
 
84
            q    += 16;
 
85
            dstv += 4;
 
86
        }
 
87
 
 
88
        dstv += 4*stride - 8;
 
89
    }
 
90
}