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
libavfilter
buffersrc.h
Go to the documentation of this file.
1
/*
2
*
3
* This file is part of Libav.
4
*
5
* Libav is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Lesser General Public
7
* License as published by the Free Software Foundation; either
8
* version 2.1 of the License, or (at your option) any later version.
9
*
10
* Libav is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public
16
* License along with Libav; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
20
#ifndef AVFILTER_BUFFERSRC_H
21
#define AVFILTER_BUFFERSRC_H
22
23
/**
24
* @file
25
* Memory buffer source API.
26
*/
27
28
#include "
libavcodec/avcodec.h
"
29
#include "
avfilter.h
"
30
31
enum
{
32
33
/**
34
* Do not check for format changes.
35
*/
36
AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT
= 1,
37
38
#if FF_API_AVFILTERBUFFER
39
/**
40
* Ignored
41
*/
42
AV_BUFFERSRC_FLAG_NO_COPY = 2,
43
#endif
44
45
/**
46
* Immediately push the frame to the output.
47
*/
48
AV_BUFFERSRC_FLAG_PUSH
= 4,
49
50
/**
51
* Keep a reference to the frame.
52
* If the frame if reference-counted, create a new reference; otherwise
53
* copy the frame data.
54
*/
55
AV_BUFFERSRC_FLAG_KEEP_REF
= 8,
56
57
};
58
59
/**
60
* Add buffer data in picref to buffer_src.
61
*
62
* @param buffer_src pointer to a buffer source context
63
* @param picref a buffer reference, or NULL to mark EOF
64
* @param flags a combination of AV_BUFFERSRC_FLAG_*
65
* @return >= 0 in case of success, a negative AVERROR code
66
* in case of failure
67
*/
68
int
av_buffersrc_add_ref
(
AVFilterContext
*buffer_src,
69
AVFilterBufferRef *picref,
int
flags
);
70
71
/**
72
* Get the number of failed requests.
73
*
74
* A failed request is when the request_frame method is called while no
75
* frame is present in the buffer.
76
* The number is reset when a frame is added.
77
*/
78
unsigned
av_buffersrc_get_nb_failed_requests
(
AVFilterContext
*buffer_src);
79
80
#if FF_API_AVFILTERBUFFER
81
/**
82
* Add a buffer to the filtergraph s.
83
*
84
* @param buf buffer containing frame data to be passed down the filtergraph.
85
* This function will take ownership of buf, the user must not free it.
86
* A NULL buf signals EOF -- i.e. no more frames will be sent to this filter.
87
*
88
* @deprecated use av_buffersrc_write_frame() or av_buffersrc_add_frame()
89
*/
90
attribute_deprecated
91
int
av_buffersrc_buffer(
AVFilterContext
*
s
, AVFilterBufferRef *
buf
);
92
#endif
93
94
/**
95
* Add a frame to the buffer source.
96
*
97
* @param s an instance of the buffersrc filter.
98
* @param frame frame to be added. If the frame is reference counted, this
99
* function will make a new reference to it. Otherwise the frame data will be
100
* copied.
101
*
102
* @return 0 on success, a negative AVERROR on error
103
*
104
* This function is equivalent to av_buffersrc_add_frame_flags() with the
105
* AV_BUFFERSRC_FLAG_KEEP_REF flag.
106
*/
107
int
av_buffersrc_write_frame
(
AVFilterContext
*
s
,
const
AVFrame
*
frame
);
108
109
/**
110
* Add a frame to the buffer source.
111
*
112
* @param s an instance of the buffersrc filter.
113
* @param frame frame to be added. If the frame is reference counted, this
114
* function will take ownership of the reference(s) and reset the frame.
115
* Otherwise the frame data will be copied. If this function returns an error,
116
* the input frame is not touched.
117
*
118
* @return 0 on success, a negative AVERROR on error.
119
*
120
* @note the difference between this function and av_buffersrc_write_frame() is
121
* that av_buffersrc_write_frame() creates a new reference to the input frame,
122
* while this function takes ownership of the reference passed to it.
123
*
124
* This function is equivalent to av_buffersrc_add_frame_flags() without the
125
* AV_BUFFERSRC_FLAG_KEEP_REF flag.
126
*/
127
int
av_buffersrc_add_frame
(
AVFilterContext
*ctx,
AVFrame
*
frame
);
128
129
/**
130
* Add a frame to the buffer source.
131
*
132
* By default, if the frame is reference-counted, this function will take
133
* ownership of the reference(s) and reset the frame. This can be controled
134
* using the flags.
135
*
136
* If this function returns an error, the input frame is not touched.
137
*
138
* @param buffer_src pointer to a buffer source context
139
* @param frame a frame, or NULL to mark EOF
140
* @param flags a combination of AV_BUFFERSRC_FLAG_*
141
* @return >= 0 in case of success, a negative AVERROR code
142
* in case of failure
143
*/
144
int
av_buffersrc_add_frame_flags
(
AVFilterContext
*buffer_src,
145
AVFrame
*
frame
,
int
flags
);
146
147
148
#endif
/* AVFILTER_BUFFERSRC_H */
Generated on Wed Jul 10 2013 23:48:09 for FFmpeg by
1.8.2