[main/transcode] Fix some libav compability + log what ffmpeg/libav we are using

This commit is contained in:
ejurgensen 2017-09-16 23:01:42 +02:00
parent 7cc9a8b02b
commit eec98e3b7e
4 changed files with 37 additions and 9 deletions

View File

@ -227,15 +227,24 @@ FORK_MODULES_CHECK([FORKED], [LIBAV],
[libavfilter/buffersink.h]) [libavfilter/buffersink.h])
FORK_CHECK_DECLS([avfilter_graph_parse_ptr], FORK_CHECK_DECLS([avfilter_graph_parse_ptr],
[libavfilter/avfilter.h]) [libavfilter/avfilter.h])
FORK_CHECK_DECLS([av_packet_unref], [libavcodec/avcodec.h]) FORK_CHECK_DECLS([av_packet_unref],
FORK_CHECK_DECLS([av_packet_rescale_ts], [libavcodec/avcodec.h]) [libavcodec/avcodec.h])
FORK_CHECK_DECLS([av_packet_rescale_ts],
[libavcodec/avcodec.h])
FORK_CHECK_DECLS([avformat_alloc_output_context2], FORK_CHECK_DECLS([avformat_alloc_output_context2],
[libavformat/avformat.h]) [libavformat/avformat.h])
FORK_CHECK_DECLS([av_frame_alloc], [libavutil/frame.h]) FORK_CHECK_DECLS([avformat_network_init],
[libavformat/avformat.h])
FORK_CHECK_DECLS([av_version_info],
[libavutil/avutil.h])
FORK_CHECK_DECLS([av_frame_alloc],
[libavutil/frame.h])
FORK_CHECK_DECLS([av_frame_get_best_effort_timestamp], FORK_CHECK_DECLS([av_frame_get_best_effort_timestamp],
[libavutil/frame.h]) [libavutil/frame.h])
FORK_CHECK_DECLS([av_image_fill_arrays], [libavutil/imgutils.h]) FORK_CHECK_DECLS([av_image_fill_arrays],
FORK_CHECK_DECLS([av_image_get_buffer_size], [libavutil/imgutils.h]) [libavutil/imgutils.h])
FORK_CHECK_DECLS([av_image_get_buffer_size],
[libavutil/imgutils.h])
AC_CHECK_HEADERS([libavutil/channel_layout.h libavutil/mathematics.h]) AC_CHECK_HEADERS([libavutil/channel_layout.h libavutil/mathematics.h])
]) ])
]) ])

View File

@ -49,6 +49,7 @@
#ifdef HAVE_LIBEVENT_PTHREADS #ifdef HAVE_LIBEVENT_PTHREADS
# include <event2/thread.h> # include <event2/thread.h>
#endif #endif
#include <libavutil/avutil.h>
#include <libavutil/log.h> #include <libavutil/log.h>
#include <libavformat/avformat.h> #include <libavformat/avformat.h>
#include <libavfilter/avfilter.h> #include <libavfilter/avfilter.h>
@ -466,6 +467,7 @@ main(int argc, char **argv)
char *ffid; char *ffid;
char *pidfile; char *pidfile;
char **buildopts; char **buildopts;
const char *av_version;
const char *gcry_version; const char *gcry_version;
sigset_t sigs; sigset_t sigs;
int sigfd; int sigfd;
@ -599,6 +601,18 @@ main(int argc, char **argv)
DPRINTF(E_LOG, L_MAIN, "- %s\n", buildopts[i]); DPRINTF(E_LOG, L_MAIN, "- %s\n", buildopts[i]);
} }
#if HAVE_DECL_AV_VERSION_INFO
av_version = av_version_info();
#else
av_version = "(unknown version)";
#endif
#ifdef HAVE_FFMPEG
DPRINTF(E_INFO, L_MAIN, "Initialized with ffmpeg %s\n", av_version);
#else
DPRINTF(E_INFO, L_MAIN, "Initialized with libav %s\n", av_version);
#endif
ret = av_lockmgr_register(ffmpeg_lockmgr); ret = av_lockmgr_register(ffmpeg_lockmgr);
if (ret < 0) if (ret < 0)
{ {
@ -610,7 +624,7 @@ main(int argc, char **argv)
av_register_all(); av_register_all();
avfilter_register_all(); avfilter_register_all();
#if LIBAVFORMAT_VERSION_MAJOR >= 54 || (LIBAVFORMAT_VERSION_MAJOR == 53 && LIBAVFORMAT_VERSION_MINOR >= 13) #if HAVE_DECL_AVFORMAT_NETWORK_INIT
avformat_network_init(); avformat_network_init();
#endif #endif
av_log_set_callback(logger_ffmpeg); av_log_set_callback(logger_ffmpeg);
@ -916,7 +930,7 @@ main(int argc, char **argv)
#ifdef HAVE_LIBCURL #ifdef HAVE_LIBCURL
curl_global_cleanup(); curl_global_cleanup();
#endif #endif
#if LIBAVFORMAT_VERSION_MAJOR >= 54 || (LIBAVFORMAT_VERSION_MAJOR == 53 && LIBAVFORMAT_VERSION_MINOR >= 13) #if HAVE_DECL_AVFORMAT_NETWORK_INIT
avformat_network_deinit(); avformat_network_deinit();
#endif #endif
av_lockmgr_register(NULL); av_lockmgr_register(NULL);

View File

@ -48,6 +48,11 @@
static char *buildopts[] = static char *buildopts[] =
{ {
#ifdef HAVE_FFMPEG
"ffmpeg",
#else
"libav",
#endif
#ifdef ITUNES #ifdef ITUNES
"iTunes XML", "iTunes XML",
#endif #endif

View File

@ -27,7 +27,7 @@
#include <libavcodec/avcodec.h> #include <libavcodec/avcodec.h>
#include <libavformat/avformat.h> #include <libavformat/avformat.h>
#include <libavfilter/avfiltergraph.h> #include <libavfilter/avfilter.h>
#include <libavfilter/buffersink.h> #include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h> #include <libavfilter/buffersrc.h>
#include <libavutil/opt.h> #include <libavutil/opt.h>
@ -384,7 +384,7 @@ stream_add(struct encode_ctx *ctx, struct stream_ctx *s, enum AVCodecID codec_id
} }
if (ctx->ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) if (ctx->ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
s->codec->flags |= CODEC_FLAG_GLOBAL_HEADER; s->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
ret = avcodec_open2(s->codec, NULL, NULL); ret = avcodec_open2(s->codec, NULL, NULL);
if (ret < 0) if (ret < 0)