xref: /third_party/ffmpeg/libavutil/version.c (revision cabdff1a)
1/*
2 * Version functions.
3 *
4 * This file is part of FFmpeg.
5 *
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <stdlib.h>
22
23#include "config.h"
24#include "avassert.h"
25#include "avutil.h"
26#include "common.h"
27#include "libm.h"
28#include "log.h"
29#include "samplefmt.h"
30#include "version.h"
31
32#include "libavutil/ffversion.h"
33const char av_util_ffversion[] = "FFmpeg version " FFMPEG_VERSION;
34
35const char *av_version_info(void)
36{
37    return FFMPEG_VERSION;
38}
39
40unsigned avutil_version(void)
41{
42    av_assert0(AV_SAMPLE_FMT_DBLP == 9);
43    av_assert0(AVMEDIA_TYPE_ATTACHMENT == 4);
44    av_assert0(AV_PICTURE_TYPE_BI == 7);
45    av_assert0(LIBAVUTIL_VERSION_MICRO >= 100);
46    av_assert0(HAVE_MMX2 == HAVE_MMXEXT);
47
48    av_assert0(((size_t)-1) > 0); // C guarantees this but if false on a platform we care about revert at least b284e1ffe343d6697fb950d1ee517bafda8a9844
49
50    if (av_sat_dadd32(1, 2) != 5) {
51        av_log(NULL, AV_LOG_FATAL, "Libavutil has been built with a broken binutils, please upgrade binutils and rebuild\n");
52        abort();
53    }
54
55    if (llrint(1LL<<60) != 1LL<<60) {
56        av_log(NULL, AV_LOG_ERROR, "Libavutil has been linked to a broken llrint()\n");
57    }
58
59    return LIBAVUTIL_VERSION_INT;
60}
61
62const char *avutil_configuration(void)
63{
64    return FFMPEG_CONFIGURATION;
65}
66
67const char *avutil_license(void)
68{
69#define LICENSE_PREFIX "libavutil license: "
70    return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1];
71}
72