FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavutil
stereo3d.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2013 Vittorio Giovara <vittorio.giovara@gmail.com>
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef AVUTIL_STEREO3D_H
22
#define AVUTIL_STEREO3D_H
23
24
#include <stdint.h>
25
26
#include "
frame.h
"
27
28
/**
29
* List of possible 3D Types
30
*/
31
enum
AVStereo3DType
{
32
/**
33
* Video is not stereoscopic (and metadata has to be there).
34
*/
35
AV_STEREO3D_2D
,
36
37
/**
38
* Views are next to each other.
39
*
40
* LLLLRRRR
41
* LLLLRRRR
42
* LLLLRRRR
43
* ...
44
*/
45
AV_STEREO3D_SIDEBYSIDE
,
46
47
/**
48
* Views are on top of each other.
49
*
50
* LLLLLLLL
51
* LLLLLLLL
52
* RRRRRRRR
53
* RRRRRRRR
54
*/
55
AV_STEREO3D_TOPBOTTOM
,
56
57
/**
58
* Views are alternated temporally.
59
*
60
* frame0 frame1 frame2 ...
61
* LLLLLLLL RRRRRRRR LLLLLLLL
62
* LLLLLLLL RRRRRRRR LLLLLLLL
63
* LLLLLLLL RRRRRRRR LLLLLLLL
64
* ... ... ...
65
*/
66
AV_STEREO3D_FRAMESEQUENCE
,
67
68
/**
69
* Views are packed in a checkerboard-like structure per pixel.
70
*
71
* LRLRLRLR
72
* RLRLRLRL
73
* LRLRLRLR
74
* ...
75
*/
76
AV_STEREO3D_CHECKERBOARD
,
77
78
/**
79
* Views are next to each other, but when upscaling
80
* apply a checkerboard pattern.
81
*
82
* LLLLRRRR L L L L R R R R
83
* LLLLRRRR => L L L L R R R R
84
* LLLLRRRR L L L L R R R R
85
* LLLLRRRR L L L L R R R R
86
*/
87
AV_STEREO3D_SIDEBYSIDE_QUINCUNX
,
88
89
/**
90
* Views are packed per line, as if interlaced.
91
*
92
* LLLLLLLL
93
* RRRRRRRR
94
* LLLLLLLL
95
* ...
96
*/
97
AV_STEREO3D_LINES
,
98
99
/**
100
* Views are packed per column.
101
*
102
* LRLRLRLR
103
* LRLRLRLR
104
* LRLRLRLR
105
* ...
106
*/
107
AV_STEREO3D_COLUMNS
,
108
};
109
110
111
/**
112
* Inverted views, Right/Bottom represents the left view.
113
*/
114
#define AV_STEREO3D_FLAG_INVERT (1 << 0)
115
116
/**
117
* Stereo 3D type: this structure describes how two videos are packed
118
* within a single video surface, with additional information as needed.
119
*
120
* @note The struct must be allocated with av_stereo3d_alloc() and
121
* its size is not a part of the public ABI.
122
*/
123
typedef
struct
AVStereo3D
{
124
/**
125
* How views are packed within the video.
126
*/
127
enum
AVStereo3DType
type
;
128
129
/**
130
* Additional information about the frame packing.
131
*/
132
int
flags
;
133
}
AVStereo3D
;
134
135
/**
136
* Allocate an AVStereo3D structure and set its fields to default values.
137
* The resulting struct can be freed using av_freep().
138
*
139
* @return An AVStereo3D filled with default values or NULL on failure.
140
*/
141
AVStereo3D
*
av_stereo3d_alloc
(
void
);
142
143
/**
144
* Allocate a complete AVFrameSideData and add it to the frame.
145
*
146
* @param frame The frame which side data is added to.
147
*
148
* @return The AVStereo3D structure to be filled by caller.
149
*/
150
AVStereo3D
*
av_stereo3d_create_side_data
(
AVFrame
*
frame
);
151
152
#endif
/* AVUTIL_STEREO3D_H */
Generated on Fri Dec 5 2014 04:42:16 for FFmpeg by
1.8.2