FFmpeg
libavfilter
transpose.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
#ifndef AVFILTER_TRANSPOSE_H
19
#define AVFILTER_TRANSPOSE_H
20
21
#include <stddef.h>
22
#include <stdint.h>
23
24
enum
PassthroughType
{
25
TRANSPOSE_PT_TYPE_NONE
,
26
TRANSPOSE_PT_TYPE_LANDSCAPE
,
27
TRANSPOSE_PT_TYPE_PORTRAIT
,
28
};
29
30
enum
TransposeDir
{
31
TRANSPOSE_CCLOCK_FLIP
,
32
TRANSPOSE_CLOCK
,
33
TRANSPOSE_CCLOCK
,
34
TRANSPOSE_CLOCK_FLIP
,
35
TRANSPOSE_REVERSAL
,
// rotate by half-turn
36
TRANSPOSE_HFLIP
,
37
TRANSPOSE_VFLIP
,
38
};
39
40
typedef
struct
TransVtable
{
41
void (*
transpose_8x8
)(uint8_t *
src
, ptrdiff_t src_linesize,
42
uint8_t *dst, ptrdiff_t dst_linesize);
43
void (*
transpose_block
)(uint8_t *
src
, ptrdiff_t src_linesize,
44
uint8_t *dst, ptrdiff_t dst_linesize,
45
int
w
,
int
h
);
46
}
TransVtable
;
47
48
void
ff_transpose_init_x86
(
TransVtable
*v,
int
pixstep);
49
50
#endif
TransVtable::transpose_block
void(* transpose_block)(uint8_t *src, ptrdiff_t src_linesize, uint8_t *dst, ptrdiff_t dst_linesize, int w, int h)
Definition:
transpose.h:43
w
uint8_t w
Definition:
llviddspenc.c:38
TRANSPOSE_CLOCK_FLIP
@ TRANSPOSE_CLOCK_FLIP
Definition:
transpose.h:34
ff_transpose_init_x86
void ff_transpose_init_x86(TransVtable *v, int pixstep)
Definition:
vf_transpose_init.c:37
TRANSPOSE_CCLOCK
@ TRANSPOSE_CCLOCK
Definition:
transpose.h:33
TRANSPOSE_HFLIP
@ TRANSPOSE_HFLIP
Definition:
transpose.h:36
TransVtable
Definition:
transpose.h:40
TRANSPOSE_PT_TYPE_PORTRAIT
@ TRANSPOSE_PT_TYPE_PORTRAIT
Definition:
transpose.h:27
TRANSPOSE_PT_TYPE_NONE
@ TRANSPOSE_PT_TYPE_NONE
Definition:
transpose.h:25
TransposeDir
TransposeDir
Definition:
transpose.h:30
PassthroughType
PassthroughType
Definition:
transpose.h:24
TRANSPOSE_CLOCK
@ TRANSPOSE_CLOCK
Definition:
transpose.h:32
TRANSPOSE_CCLOCK_FLIP
@ TRANSPOSE_CCLOCK_FLIP
Definition:
transpose.h:31
TRANSPOSE_REVERSAL
@ TRANSPOSE_REVERSAL
Definition:
transpose.h:35
TRANSPOSE_PT_TYPE_LANDSCAPE
@ TRANSPOSE_PT_TYPE_LANDSCAPE
Definition:
transpose.h:26
TRANSPOSE_VFLIP
@ TRANSPOSE_VFLIP
Definition:
transpose.h:37
src
INIT_CLIP pixel * src
Definition:
h264pred_template.c:418
h
h
Definition:
vp9dsp_template.c:2070
TransVtable::transpose_8x8
void(* transpose_8x8)(uint8_t *src, ptrdiff_t src_linesize, uint8_t *dst, ptrdiff_t dst_linesize)
Definition:
transpose.h:41
Generated on Sat Aug 31 2024 19:22:32 for FFmpeg by
1.8.17