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
compat
avisynth
avisynth_c_25.h
Go to the documentation of this file.
1
// Copyright (c) 2011 FFmpegSource Project
2
//
3
// Permission is hereby granted, free of charge, to any person obtaining a copy
4
// of this software and associated documentation files (the "Software"), to deal
5
// in the Software without restriction, including without limitation the rights
6
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
// copies of the Software, and to permit persons to whom the Software is
8
// furnished to do so, subject to the following conditions:
9
//
10
// The above copyright notice and this permission notice shall be included in
11
// all copies or substantial portions of the Software.
12
//
13
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
// THE SOFTWARE.
20
21
/* these are defines/functions that are used and were changed in the switch to 2.6
22
* and are needed to maintain full compatility with 2.5 */
23
24
enum
{
25
AVS_CS_YV12_25
= 1<<3 |
AVS_CS_YUV
|
AVS_CS_PLANAR
,
// y-v-u, planar
26
AVS_CS_I420_25
= 1<<4 |
AVS_CS_YUV
|
AVS_CS_PLANAR
,
// y-u-v, planar
27
};
28
29
AVSC_INLINE
int
avs_get_height_p_25
(
const
AVS_VideoFrame
* p,
int
plane) {
30
switch
(plane)
31
{
32
case
AVS_PLANAR_U
:
case
AVS_PLANAR_V
:
33
if
(p->
pitchUV
)
34
return
p->
height
>>1;
35
return
0;
36
}
37
return
p->
height
;}
38
39
AVSC_INLINE
int
avs_get_row_size_p_25
(
const
AVS_VideoFrame
* p,
int
plane) {
40
int
r
;
41
switch
(plane)
42
{
43
case
AVS_PLANAR_U
:
case
AVS_PLANAR_V
:
44
if
(p->
pitchUV
)
45
return
p->
row_size
>>1;
46
else
47
return
0;
48
case
AVS_PLANAR_U_ALIGNED
:
case
AVS_PLANAR_V_ALIGNED
:
49
if
(p->
pitchUV
)
50
{
51
r = ((p->
row_size
+
AVS_FRAME_ALIGN
-1)&(~(
AVS_FRAME_ALIGN
-1)) )>>1;
// Aligned rowsize
52
if
(r < p->pitchUV)
53
return
r
;
54
return
p->
row_size
>>1;
55
}
56
else
57
return
0;
58
case
AVS_PLANAR_Y_ALIGNED
:
59
r = (p->
row_size
+
AVS_FRAME_ALIGN
-1)&(~(
AVS_FRAME_ALIGN
-1));
// Aligned rowsize
60
if
(r <= p->pitch)
61
return
r
;
62
return
p->
row_size
;
63
}
64
return
p->
row_size
;
65
}
66
67
AVSC_INLINE
int
avs_is_yv12_25
(
const
AVS_VideoInfo
* p)
68
{
return
((p->
pixel_type
&
AVS_CS_YV12_25
) ==
AVS_CS_YV12_25
)||((p->
pixel_type
&
AVS_CS_I420_25
) ==
AVS_CS_I420_25
); }
Generated on Sat Jan 25 2014 19:51:42 for FFmpeg by
1.8.2