FFmpeg
2.8.17
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
libavcodec
hap.c
Go to the documentation of this file.
1
/*
2
* Vidvox Hap utility functions
3
* Copyright (C) 2015 Tom Butterworth <bangnoise@gmail.com>
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
* Hap utilities
25
*/
26
#include "
hap.h
"
27
28
int
ff_hap_set_chunk_count
(
HapContext
*ctx,
int
count
,
int
first_in_frame)
29
{
30
int
ret = 0;
31
if
(first_in_frame == 1 && ctx->
chunk_count
!= count) {
32
int
ret =
av_reallocp_array
(&ctx->
chunks
, count,
sizeof
(
HapChunk
));
33
if
(ret == 0)
34
ret =
av_reallocp_array
(&ctx->
chunk_results
, count,
sizeof
(
int
));
35
if
(ret < 0) {
36
ctx->
chunk_count
= 0;
37
}
else
{
38
ctx->
chunk_count
=
count
;
39
}
40
}
else
if
(ctx->
chunk_count
!= count) {
41
/* If this is not the first chunk count calculated for a frame and a
42
* different count has already been encountered, then reject the frame:
43
* each table in the Decode Instructions Container must describe the
44
* same number of chunks. */
45
ret =
AVERROR_INVALIDDATA
;
46
}
47
return
ret;
48
}
49
50
av_cold
void
ff_hap_free_context
(
HapContext
*ctx)
51
{
52
av_freep
(&ctx->
tex_buf
);
53
av_freep
(&ctx->
chunks
);
54
av_freep
(&ctx->
chunk_results
);
55
}
HapContext
Definition:
hap.h:60
AVERROR_INVALIDDATA
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition:
error.h:59
HapContext::chunks
HapChunk * chunks
Definition:
hap.h:70
av_cold
#define av_cold
Definition:
attributes.h:74
ff_hap_set_chunk_count
int ff_hap_set_chunk_count(HapContext *ctx, int count, int first_in_frame)
Definition:
hap.c:28
hap.h
av_reallocp_array
int av_reallocp_array(void *ptr, size_t nmemb, size_t size)
Allocate or reallocate an array through a pointer to a pointer.
Definition:
mem.c:215
HapContext::chunk_results
int * chunk_results
Definition:
hap.h:71
count
GLsizei count
Definition:
opengl_enc.c:109
ff_hap_free_context
av_cold void ff_hap_free_context(HapContext *ctx)
Definition:
hap.c:50
HapContext::chunk_count
int chunk_count
Definition:
hap.h:69
HapContext::tex_buf
uint8_t * tex_buf
Definition:
hap.h:75
HapChunk
Definition:
hap.h:52
av_freep
#define av_freep(p)
Definition:
tableprint_vlc.h:35
Generated on Wed Jul 8 2020 07:31:53 for FFmpeg by
1.8.8