gst_plugins_base/gst/videoscale/vs_4tap.h
author hgs
Wed, 24 Mar 2010 18:04:17 -0500
changeset 16 8e837d1bf446
parent 0 0e761a78d257
child 10 6f340f756486
permissions -rw-r--r--
201009
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Image Scaling Functions (4 tap)
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * Copyright (c) 2005 David A. Schleef <ds@schleef.org>
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * All rights reserved.
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 *
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * Redistribution and use in source and binary forms, with or without
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * modification, are permitted provided that the following conditions
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 * are met:
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * 1. Redistributions of source code must retain the above copyright
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 *    notice, this list of conditions and the following disclaimer.
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 * 2. Redistributions in binary form must reproduce the above copyright
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 *    notice, this list of conditions and the following disclaimer in the
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *    documentation and/or other materials provided with the distribution.
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * 
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
 * POSSIBILITY OF SUCH DAMAGE.
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
 */
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#ifndef _VS_4TAP_H_
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#define _VS_4TAP_H_
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include "vs_image.h"
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
16
hgs
parents: 0
diff changeset
    33
#include <liboil/liboil.h>
0
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
void vs_4tap_init (void);
16
hgs
parents: 0
diff changeset
    36
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    37
IMPORT_C
hgs
parents: 0
diff changeset
    38
#endif
hgs
parents: 0
diff changeset
    39
0
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
void vs_scanline_resample_4tap_Y (uint8_t *dest, uint8_t *src,
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    int n, int src_width, int *xacc, int increment);
16
hgs
parents: 0
diff changeset
    42
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    43
IMPORT_C
hgs
parents: 0
diff changeset
    44
#endif
hgs
parents: 0
diff changeset
    45
0
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
void vs_scanline_merge_4tap_Y (uint8_t *dest, uint8_t *src1, uint8_t *src2,
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    uint8_t *src3, uint8_t *src4, int n, int acc);
16
hgs
parents: 0
diff changeset
    48
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    49
IMPORT_C
hgs
parents: 0
diff changeset
    50
#endif
hgs
parents: 0
diff changeset
    51
0
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
void vs_image_scale_4tap_Y (const VSImage * dest, const VSImage * src,
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
    uint8_t * tmpbuf);
16
hgs
parents: 0
diff changeset
    54
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    55
IMPORT_C
hgs
parents: 0
diff changeset
    56
#endif
hgs
parents: 0
diff changeset
    57
hgs
parents: 0
diff changeset
    58
hgs
parents: 0
diff changeset
    59
void vs_scanline_resample_4tap_RGBA (uint8_t *dest, uint8_t *src,
hgs
parents: 0
diff changeset
    60
    int n, int src_width, int *xacc, int increment);
hgs
parents: 0
diff changeset
    61
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    62
IMPORT_C
hgs
parents: 0
diff changeset
    63
#endif
hgs
parents: 0
diff changeset
    64
hgs
parents: 0
diff changeset
    65
void vs_scanline_merge_4tap_RGBA (uint8_t *dest, uint8_t *src1, uint8_t *src2,
hgs
parents: 0
diff changeset
    66
    uint8_t *src3, uint8_t *src4, int n, int acc);
hgs
parents: 0
diff changeset
    67
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    68
IMPORT_C
hgs
parents: 0
diff changeset
    69
#endif
hgs
parents: 0
diff changeset
    70
hgs
parents: 0
diff changeset
    71
void vs_image_scale_4tap_RGBA (const VSImage * dest, const VSImage * src,
hgs
parents: 0
diff changeset
    72
    uint8_t * tmpbuf);
hgs
parents: 0
diff changeset
    73
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    74
IMPORT_C
hgs
parents: 0
diff changeset
    75
#endif
hgs
parents: 0
diff changeset
    76
hgs
parents: 0
diff changeset
    77
hgs
parents: 0
diff changeset
    78
void vs_scanline_resample_4tap_RGB (uint8_t *dest, uint8_t *src,
hgs
parents: 0
diff changeset
    79
    int n, int src_width, int *xacc, int increment);
hgs
parents: 0
diff changeset
    80
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    81
IMPORT_C
hgs
parents: 0
diff changeset
    82
#endif
hgs
parents: 0
diff changeset
    83
hgs
parents: 0
diff changeset
    84
void vs_scanline_merge_4tap_RGB (uint8_t *dest, uint8_t *src1, uint8_t *src2,
hgs
parents: 0
diff changeset
    85
    uint8_t *src3, uint8_t *src4, int n, int acc);
hgs
parents: 0
diff changeset
    86
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    87
IMPORT_C
hgs
parents: 0
diff changeset
    88
#endif
hgs
parents: 0
diff changeset
    89
hgs
parents: 0
diff changeset
    90
void vs_image_scale_4tap_RGB (const VSImage * dest, const VSImage * src,
hgs
parents: 0
diff changeset
    91
    uint8_t * tmpbuf);
hgs
parents: 0
diff changeset
    92
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
    93
IMPORT_C
hgs
parents: 0
diff changeset
    94
#endif
hgs
parents: 0
diff changeset
    95
hgs
parents: 0
diff changeset
    96
hgs
parents: 0
diff changeset
    97
void vs_scanline_resample_4tap_YUYV (uint8_t *dest, uint8_t *src,
hgs
parents: 0
diff changeset
    98
    int n, int src_width, int *xacc, int increment);
hgs
parents: 0
diff changeset
    99
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   100
IMPORT_C
hgs
parents: 0
diff changeset
   101
#endif
hgs
parents: 0
diff changeset
   102
hgs
parents: 0
diff changeset
   103
void vs_scanline_merge_4tap_YUYV (uint8_t *dest, uint8_t *src1, uint8_t *src2,
hgs
parents: 0
diff changeset
   104
    uint8_t *src3, uint8_t *src4, int n, int acc);
hgs
parents: 0
diff changeset
   105
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   106
IMPORT_C
hgs
parents: 0
diff changeset
   107
#endif
hgs
parents: 0
diff changeset
   108
hgs
parents: 0
diff changeset
   109
void vs_image_scale_4tap_YUYV (const VSImage * dest, const VSImage * src,
hgs
parents: 0
diff changeset
   110
    uint8_t * tmpbuf);
hgs
parents: 0
diff changeset
   111
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   112
IMPORT_C
hgs
parents: 0
diff changeset
   113
#endif
hgs
parents: 0
diff changeset
   114
hgs
parents: 0
diff changeset
   115
hgs
parents: 0
diff changeset
   116
void vs_scanline_resample_4tap_UYVY (uint8_t *dest, uint8_t *src,
hgs
parents: 0
diff changeset
   117
    int n, int src_width, int *xacc, int increment);
hgs
parents: 0
diff changeset
   118
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   119
IMPORT_C
hgs
parents: 0
diff changeset
   120
#endif
hgs
parents: 0
diff changeset
   121
hgs
parents: 0
diff changeset
   122
void vs_scanline_merge_4tap_UYVY (uint8_t *dest, uint8_t *src1, uint8_t *src2,
hgs
parents: 0
diff changeset
   123
    uint8_t *src3, uint8_t *src4, int n, int acc);
hgs
parents: 0
diff changeset
   124
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   125
IMPORT_C
hgs
parents: 0
diff changeset
   126
#endif
hgs
parents: 0
diff changeset
   127
hgs
parents: 0
diff changeset
   128
void vs_image_scale_4tap_UYVY (const VSImage * dest, const VSImage * src,
hgs
parents: 0
diff changeset
   129
    uint8_t * tmpbuf);
hgs
parents: 0
diff changeset
   130
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   131
IMPORT_C
hgs
parents: 0
diff changeset
   132
#endif
hgs
parents: 0
diff changeset
   133
hgs
parents: 0
diff changeset
   134
hgs
parents: 0
diff changeset
   135
void vs_scanline_resample_4tap_RGB565 (uint8_t *dest, uint8_t *src,
hgs
parents: 0
diff changeset
   136
    int n, int src_width, int *xacc, int increment);
hgs
parents: 0
diff changeset
   137
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   138
IMPORT_C
hgs
parents: 0
diff changeset
   139
#endif
hgs
parents: 0
diff changeset
   140
hgs
parents: 0
diff changeset
   141
void vs_scanline_merge_4tap_RGB565 (uint8_t *dest, uint8_t *src1, uint8_t *src2,
hgs
parents: 0
diff changeset
   142
    uint8_t *src3, uint8_t *src4, int n, int acc);
hgs
parents: 0
diff changeset
   143
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   144
IMPORT_C
hgs
parents: 0
diff changeset
   145
#endif
hgs
parents: 0
diff changeset
   146
hgs
parents: 0
diff changeset
   147
void vs_image_scale_4tap_RGB565 (const VSImage * dest, const VSImage * src,
hgs
parents: 0
diff changeset
   148
    uint8_t * tmpbuf);
hgs
parents: 0
diff changeset
   149
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   150
IMPORT_C
hgs
parents: 0
diff changeset
   151
#endif
hgs
parents: 0
diff changeset
   152
hgs
parents: 0
diff changeset
   153
hgs
parents: 0
diff changeset
   154
void vs_scanline_resample_4tap_RGB555 (uint8_t *dest, uint8_t *src,
hgs
parents: 0
diff changeset
   155
    int n, int src_width, int *xacc, int increment);
hgs
parents: 0
diff changeset
   156
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   157
IMPORT_C
hgs
parents: 0
diff changeset
   158
#endif
hgs
parents: 0
diff changeset
   159
hgs
parents: 0
diff changeset
   160
void vs_scanline_merge_4tap_RGB555 (uint8_t *dest, uint8_t *src1, uint8_t *src2,
hgs
parents: 0
diff changeset
   161
    uint8_t *src3, uint8_t *src4, int n, int acc);
hgs
parents: 0
diff changeset
   162
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   163
IMPORT_C
hgs
parents: 0
diff changeset
   164
#endif
hgs
parents: 0
diff changeset
   165
hgs
parents: 0
diff changeset
   166
void vs_image_scale_4tap_RGB555 (const VSImage * dest, const VSImage * src,
hgs
parents: 0
diff changeset
   167
    uint8_t * tmpbuf);
hgs
parents: 0
diff changeset
   168
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   169
IMPORT_C
hgs
parents: 0
diff changeset
   170
#endif
hgs
parents: 0
diff changeset
   171
hgs
parents: 0
diff changeset
   172
void vs_scanline_resample_4tap_Y16 (uint8_t *dest, uint8_t *src,
hgs
parents: 0
diff changeset
   173
    int n, int src_width, int *xacc, int increment);
hgs
parents: 0
diff changeset
   174
	
hgs
parents: 0
diff changeset
   175
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   176
IMPORT_C
hgs
parents: 0
diff changeset
   177
#endif
hgs
parents: 0
diff changeset
   178
	
hgs
parents: 0
diff changeset
   179
void vs_scanline_merge_4tap_Y16 (uint8_t *dest, uint8_t *src1, uint8_t *src2,
hgs
parents: 0
diff changeset
   180
    uint8_t *src3, uint8_t *src4, int n, int acc);
hgs
parents: 0
diff changeset
   181
	
hgs
parents: 0
diff changeset
   182
#ifdef __SYMBIAN32__
hgs
parents: 0
diff changeset
   183
IMPORT_C
hgs
parents: 0
diff changeset
   184
#endif
hgs
parents: 0
diff changeset
   185
hgs
parents: 0
diff changeset
   186
void vs_image_scale_4tap_Y16 (const VSImage * dest, const VSImage * src,
hgs
parents: 0
diff changeset
   187
    uint8_t * tmpbuf);
0
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
#endif
0e761a78d257 Revision: 200949
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190