FFmpeg
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
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 May 25 2013 03:58:31 for FFmpeg by
1.8.2