dav1d
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
dav1d
dav1d.h
Go to the documentation of this file.
1
/*
2
* Copyright © 2018, VideoLAN and dav1d authors
3
* Copyright © 2018, Two Orioles, LLC
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright notice, this
10
* list of conditions and the following disclaimer.
11
*
12
* 2. Redistributions in binary form must reproduce the above copyright notice,
13
* this list of conditions and the following disclaimer in the documentation
14
* and/or other materials provided with the distribution.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
20
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
#ifndef DAV1D_H
29
#define DAV1D_H
30
31
#ifdef __cplusplus
32
extern
"C"
{
33
#endif
34
35
#include <errno.h>
36
#include <stdarg.h>
37
38
#include "
common.h
"
39
#include "
picture.h
"
40
#include "
data.h
"
41
#include "version.h"
42
43
typedef
struct
Dav1dContext
Dav1dContext
;
44
typedef
struct
Dav1dRef
Dav1dRef
;
45
46
#define DAV1D_MAX_FRAME_THREADS 256
47
#define DAV1D_MAX_TILE_THREADS 64
48
49
typedef
struct
Dav1dLogger
{
50
void
*
cookie
;
51
58
void (*
callback
)(
void
*
cookie
,
const
char
*format, va_list ap);
59
}
Dav1dLogger
;
60
61
typedef
struct
Dav1dSettings
{
62
int
n_frame_threads
;
63
int
n_tile_threads
;
64
int
apply_grain
;
65
int
operating_point
;
66
int
all_layers
;
67
unsigned
frame_size_limit
;
68
uint8_t
reserved
[32];
69
Dav1dPicAllocator
allocator
;
70
Dav1dLogger
logger
;
71
}
Dav1dSettings
;
72
76
DAV1D_API
const
char
*
dav1d_version
(
void
);
77
83
DAV1D_API
void
dav1d_default_settings
(
Dav1dSettings
*s);
84
97
DAV1D_API
int
dav1d_open
(
Dav1dContext
**c_out,
const
Dav1dSettings
*s);
98
112
DAV1D_API
int
dav1d_parse_sequence_header
(
Dav1dSequenceHeader
*out,
113
const
uint8_t *buf,
const
size_t
sz);
114
130
DAV1D_API
int
dav1d_send_data
(
Dav1dContext
*c,
Dav1dData
*in);
131
182
DAV1D_API
int
dav1d_get_picture
(
Dav1dContext
*c,
Dav1dPicture
*out);
183
189
DAV1D_API
void
dav1d_close
(
Dav1dContext
**c_out);
190
201
DAV1D_API
void
dav1d_flush
(
Dav1dContext
*c);
202
203
# ifdef __cplusplus
204
}
205
# endif
206
207
#endif
/* DAV1D_H */
Generated on Fri Mar 13 2020 23:37:04 for dav1d by
1.8.3.1