1 /*
2  *  transform.h
3  *
4  *  Copyright (C) Georg Martius - June 2007 - 2013
5  *
6  *  This file is part of transcode, a video stream processing tool
7  *
8  *  transcode is free software; you can redistribute it and/or modify
9  *  it under the terms of the GNU General Public License as published by
10  *  the Free Software Foundation; either version 2, or (at your option)
11  *  any later version.
12  *
13  *  transcode is distributed in the hope that it will be useful,
14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *  GNU General Public License for more details.
17  *
18  *  You should have received a copy of the GNU General Public License
19  *  along with GNU Make; see the file COPYING.  If not, write to
20  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  */
23 #ifndef __TRANSFORMTYPE_H
24 #define __TRANSFORMTYPE_H
25 
26 #include <stdio.h>
27 #include "vsvector.h"
28 
29 /* structure to hold information about frame transformations
30    x,y are translations, alpha is a rotation around the center in RAD,
31    zoom is a percentage to zoom in and
32    extra is for additional information like scene cut (unused)
33  */
34 typedef struct _transform {
35     double x;
36     double y;
37     double alpha;
38     double zoom;
39     double barrel;
40     double rshutter;
41     int extra;    /* -1: ignore transform (only internal use);
42                      0 for normal trans; 1 for inter scene cut (unused) */
43 } VSTransform;
44 
45 /** stores x y and size of a measurement field */
46 typedef struct _field {
47   int x;     // middle position x
48   int y;     // middle position y
49   int size;  // size of field
50 } Field;
51 
52 /** stores x y coordinates (integer) */
53 typedef struct _vec {
54   int x;     // middle position x
55   int y;     // middle position y
56 } Vec;
57 
58 /* structure to hold information about local motion.
59  */
60 typedef struct _localmotion {
61     Vec v;
62     Field f;
63     double contrast; // local contrast of the measurement field
64     double match;    // quality of match
65 } LocalMotion;
66 
67 typedef VSVector LocalMotions;
68 
69 #endif
70 
71 /*
72  * Local variables:
73  *   c-file-style: "stroustrup"
74  *   c-file-offsets: ((case-label . *) (statement-case-intro . *))
75  *   indent-tabs-mode: nil
76  *   c-basic-offset: 2 t
77  * End:
78  *
79  * vim: expandtab shiftwidth=2:
80  */
81