FFmpeg
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 {
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  */
39 static inline int err_merge(int err0, int err1)
40 {
41  // prefer "real" errors over EOF
42  if ((err0 >= 0 || err0 == AVERROR_EOF) && err1 < 0)
43  return err1;
44  return (err0 < 0) ? err0 : FFMIN(err1, 0);
45 }
46 
47 static inline void pkt_move(void *dst, void *src)
48 {
50 }
51 
52 static inline void frame_move(void *dst, void *src)
53 {
55 }
56 
57 #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:39
AVERROR_EOF
#define AVERROR_EOF
End of file.
Definition: error.h:57
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:52
Timestamp::ts
int64_t ts
Definition: ffmpeg_utils.h:31
pkt_move
static void pkt_move(void *dst, void *src)
Definition: ffmpeg_utils.h:47
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: packet.c:486
dst
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
Definition: dsp.h:83
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:649
Timestamp::tb
AVRational tb
Definition: ffmpeg_utils.h:32
Timestamp
Definition: ffmpeg_utils.h:30
src
#define src
Definition: vp8dsp.c:248