FFmpeg
fftools
ffmpeg_utils.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef FFTOOLS_FFMPEG_UTILS_H
20
#define FFTOOLS_FFMPEG_UTILS_H
21
22
#include <stdint.h>
23
24
#include "
libavutil/common.h
"
25
#include "
libavutil/frame.h
"
26
#include "
libavutil/rational.h
"
27
28
#include "
libavcodec/packet.h
"
29
30
typedef
struct
Timestamp
{
31
int64_t
ts
;
32
AVRational
tb
;
33
}
Timestamp
;
34
35
/**
36
* Merge two return codes - return one of the error codes if at least one of
37
* them was negative, 0 otherwise.
38
* Currently just picks the first one, eventually we might want to do something
39
* more sophisticated, like sorting them by priority.
40
*/
41
static
inline
int
err_merge
(
int
err0,
int
err1)
42
{
43
return
(err0 < 0) ? err0 :
FFMIN
(err1, 0);
44
}
45
46
static
inline
void
pkt_move
(
void
*dst,
void
*
src
)
47
{
48
av_packet_move_ref
(dst,
src
);
49
}
50
51
static
inline
void
frame_move
(
void
*dst,
void
*
src
)
52
{
53
av_frame_move_ref
(dst,
src
);
54
}
55
56
#endif // FFTOOLS_FFMPEG_UTILS_H
err_merge
static int err_merge(int err0, int err1)
Merge two return codes - return one of the error codes if at least one of them was negative,...
Definition:
ffmpeg_utils.h:41
rational.h
int64_t
long long int64_t
Definition:
coverity.c:34
frame_move
static void frame_move(void *dst, void *src)
Definition:
ffmpeg_utils.h:51
Timestamp::ts
int64_t ts
Definition:
ffmpeg_utils.h:31
pkt_move
static void pkt_move(void *dst, void *src)
Definition:
ffmpeg_utils.h:46
AVRational
Rational number (pair of numerator and denominator).
Definition:
rational.h:58
av_packet_move_ref
void av_packet_move_ref(AVPacket *dst, AVPacket *src)
Move every field in src to dst and reset src.
Definition:
avpacket.c:484
frame.h
packet.h
common.h
FFMIN
#define FFMIN(a, b)
Definition:
macros.h:49
av_frame_move_ref
void av_frame_move_ref(AVFrame *dst, AVFrame *src)
Move everything contained in src to dst and reset src.
Definition:
frame.c:603
Timestamp::tb
AVRational tb
Definition:
ffmpeg_utils.h:32
src
INIT_CLIP pixel * src
Definition:
h264pred_template.c:418
Timestamp
Definition:
ffmpeg_utils.h:30
Generated on Thu Sep 26 2024 23:14:45 for FFmpeg by
1.8.17