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
libavcodec
avpicture.c
Go to the documentation of this file.
1
/*
2
* AVPicture management routines
3
* Copyright (c) 2001, 2002, 2003 Fabrice Bellard
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
/**
23
* @file
24
* AVPicture management routines
25
*/
26
27
#include "
avcodec.h
"
28
#include "
internal.h
"
29
#include "
libavutil/common.h
"
30
#include "
libavutil/pixdesc.h
"
31
#include "
libavutil/imgutils.h
"
32
#include "
libavutil/colorspace.h
"
33
34
int
avpicture_fill
(
AVPicture
*picture,
const
uint8_t
*ptr,
35
enum
AVPixelFormat
pix_fmt
,
int
width
,
int
height
)
36
{
37
return
av_image_fill_arrays
(picture->
data
, picture->
linesize
,
38
ptr, pix_fmt, width, height, 1);
39
}
40
41
int
avpicture_layout
(
const
AVPicture
*
src
,
enum
AVPixelFormat
pix_fmt
,
int
width
,
int
height
,
42
unsigned
char
*dest,
int
dest_size)
43
{
44
return
av_image_copy_to_buffer
(dest, dest_size,
45
(
const
uint8_t
*
const
*)src->
data
, src->
linesize
,
46
pix_fmt, width, height, 1);
47
}
48
49
int
avpicture_get_size
(
enum
AVPixelFormat
pix_fmt
,
int
width
,
int
height
)
50
{
51
return
av_image_get_buffer_size
(pix_fmt, width, height, 1);
52
}
53
54
int
avpicture_alloc
(
AVPicture
*picture,
55
enum
AVPixelFormat
pix_fmt
,
int
width
,
int
height
)
56
{
57
int
ret
=
av_image_alloc
(picture->
data
, picture->
linesize
,
58
width, height, pix_fmt, 1);
59
if
(ret < 0) {
60
memset(picture, 0,
sizeof
(
AVPicture
));
61
return
ret
;
62
}
63
64
return
0;
65
}
66
67
void
avpicture_free
(
AVPicture
*picture)
68
{
69
av_free
(picture->
data
[0]);
70
}
71
72
void
av_picture_copy
(
AVPicture
*dst,
const
AVPicture
*
src
,
73
enum
AVPixelFormat
pix_fmt
,
int
width
,
int
height
)
74
{
75
av_image_copy
(dst->
data
, dst->
linesize
, (
const
uint8_t
**)src->
data
,
76
src->
linesize
, pix_fmt, width, height);
77
}
78
Generated on Sat Jan 25 2014 19:51:45 for FFmpeg by
1.8.2