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
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
int
ffio_limit
(
AVIOContext
*s,
int
size
);
75
76
void
ffio_init_checksum
(
AVIOContext
*s,
77
unsigned
long
(*update_checksum)(
unsigned
long
c
,
const
uint8_t
*p,
unsigned
int
len
),
78
unsigned
long
checksum);
79
unsigned
long
ffio_get_checksum
(
AVIOContext
*s);
80
unsigned
long
ff_crc04C11DB7_update
(
unsigned
long
checksum,
const
uint8_t
*buf,
81
unsigned
int
len
);
82
83
/**
84
* Open a write only packetized memory stream with a maximum packet
85
* size of 'max_packet_size'. The stream is stored in a memory buffer
86
* with a big-endian 4 byte header giving the packet size in bytes.
87
*
88
* @param s new IO context
89
* @param max_packet_size maximum packet size (must be > 0)
90
* @return zero if no error.
91
*/
92
int
ffio_open_dyn_packet_buf
(
AVIOContext
**s,
int
max_packet_size);
93
94
/**
95
* Create and initialize a AVIOContext for accessing the
96
* resource referenced by the URLContext h.
97
* @note When the URLContext h has been opened in read+write mode, the
98
* AVIOContext can be used only for writing.
99
*
100
* @param s Used to return the pointer to the created AVIOContext.
101
* In case of failure the pointed to value is set to NULL.
102
* @return 0 in case of success, a negative value corresponding to an
103
* AVERROR code in case of failure
104
*/
105
int
ffio_fdopen
(
AVIOContext
**s,
URLContext
*h);
106
107
#endif
/* AVFORMAT_AVIO_INTERNAL_H */
Generated on Sat May 25 2013 04:01:16 for FFmpeg by
1.8.2