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
libavformat
avio_internal.h
Go to the documentation of this file.
1
/*
2
*
3
* This file is part of FFmpeg.
4
*
5
* FFmpeg 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
* FFmpeg 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 FFmpeg; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
20
#ifndef AVFORMAT_AVIO_INTERNAL_H
21
#define AVFORMAT_AVIO_INTERNAL_H
22
23
#include "
avio.h
"
24
#include "
url.h
"
25
26
#include "
libavutil/log.h
"
27
28
extern
const
AVClass
ffio_url_class
;
29
30
int
ffio_init_context
(
AVIOContext
*
s
,
31
unsigned
char
*
buffer
,
32
int
buffer_size,
33
int
write_flag,
34
void
*opaque,
35
int
(*
read_packet
)(
void
*opaque,
uint8_t
*
buf
,
int
buf_size),
36
int
(*
write_packet
)(
void
*opaque,
uint8_t
*buf,
int
buf_size),
37
int64_t (*seek)(
void
*opaque, int64_t
offset
,
int
whence));
38
39
40
/**
41
* Read size bytes from AVIOContext into buf.
42
* This reads at most 1 packet. If that is not enough fewer bytes will be
43
* returned.
44
* @return number of bytes read or AVERROR
45
*/
46
int
ffio_read_partial
(
AVIOContext
*s,
unsigned
char
*buf,
int
size
);
47
48
void
ffio_fill
(
AVIOContext
*s,
int
b
,
int
count
);
49
50
static
av_always_inline
void
ffio_wfourcc
(
AVIOContext
*pb,
const
uint8_t
*s)
51
{
52
avio_wl32
(pb,
MKTAG
(s[0], s[1], s[2], s[3]));
53
}
54
55
/**
56
* Rewind the AVIOContext using the specified buffer containing the first buf_size bytes of the file.
57
* Used after probing to avoid seeking.
58
* Joins buf and s->buffer, taking any overlap into consideration.
59
* @note s->buffer must overlap with buf or they can't be joined and the function fails
60
*
61
* @param s The read-only AVIOContext to rewind
62
* @param buf The probe buffer containing the first buf_size bytes of the file
63
* @param buf_size The size of buf
64
* @return 0 in case of success, a negative value corresponding to an
65
* AVERROR code in case of failure
66
*/
67
int
ffio_rewind_with_probe_data
(
AVIOContext
*s,
unsigned
char
**buf,
int
buf_size);
68
69
uint64_t
ffio_read_varlen
(
AVIOContext
*bc);
70
71
/** @warning must be called before any I/O */
72
int
ffio_set_buf_size
(
AVIOContext
*s,
int
buf_size);
73
74
/**
75
* Ensures that the requested seekback buffer size will be available
76
*
77
* Will ensure that when reading sequentially up to buf_size, seeking
78
* within the current pos and pos+buf_size is possible.
79
* Once the stream position moves outside this window this gurantee is lost.
80
*/
81
int
ffio_ensure_seekback
(
AVIOContext
*s,
int
buf_size);
82
83
int
ffio_limit
(
AVIOContext
*s,
int
size
);
84
85
void
ffio_init_checksum
(
AVIOContext
*s,
86
unsigned
long
(*update_checksum)(
unsigned
long
c
,
const
uint8_t
*p,
unsigned
int
len
),
87
unsigned
long
checksum);
88
unsigned
long
ffio_get_checksum
(
AVIOContext
*s);
89
unsigned
long
ff_crc04C11DB7_update
(
unsigned
long
checksum,
const
uint8_t
*buf,
90
unsigned
int
len
);
91
92
/**
93
* Open a write only packetized memory stream with a maximum packet
94
* size of 'max_packet_size'. The stream is stored in a memory buffer
95
* with a big-endian 4 byte header giving the packet size in bytes.
96
*
97
* @param s new IO context
98
* @param max_packet_size maximum packet size (must be > 0)
99
* @return zero if no error.
100
*/
101
int
ffio_open_dyn_packet_buf
(
AVIOContext
**s,
int
max_packet_size);
102
103
/**
104
* Create and initialize a AVIOContext for accessing the
105
* resource referenced by the URLContext h.
106
* @note When the URLContext h has been opened in read+write mode, the
107
* AVIOContext can be used only for writing.
108
*
109
* @param s Used to return the pointer to the created AVIOContext.
110
* In case of failure the pointed to value is set to NULL.
111
* @return 0 in case of success, a negative value corresponding to an
112
* AVERROR code in case of failure
113
*/
114
int
ffio_fdopen
(
AVIOContext
**s,
URLContext
*h);
115
116
#endif
/* AVFORMAT_AVIO_INTERNAL_H */
Generated on Wed Jul 10 2013 23:48:11 for FFmpeg by
1.8.2