decoder/ffmpeg: drop support for pre-0.5 ffmpeg
All modern distros ship 0.5, so there's no need to support old and buggy ffmpeg versions.
This commit is contained in:
parent
c2ada39fd3
commit
9d91aa23e6
1
NEWS
1
NEWS
|
@ -7,6 +7,7 @@ ver 0.17 (2011/??/??)
|
||||||
- curl: enable CURLOPT_NETRC
|
- curl: enable CURLOPT_NETRC
|
||||||
* decoder:
|
* decoder:
|
||||||
- mpg123: implement seeking
|
- mpg123: implement seeking
|
||||||
|
- ffmpeg: drop support for pre-0.5 ffmpeg
|
||||||
* output:
|
* output:
|
||||||
- osx: allow user to specify other audio devices
|
- osx: allow user to specify other audio devices
|
||||||
- raop: new output plugin
|
- raop: new output plugin
|
||||||
|
|
13
configure.ac
13
configure.ac
|
@ -771,20 +771,9 @@ AM_CONDITIONAL(HAVE_FAAD, test x$enable_aac = xyes)
|
||||||
AM_CONDITIONAL(HAVE_MP4, test x$enable_mp4 = xyes)
|
AM_CONDITIONAL(HAVE_MP4, test x$enable_mp4 = xyes)
|
||||||
|
|
||||||
dnl ---------------------------------- ffmpeg ---------------------------------
|
dnl ---------------------------------- ffmpeg ---------------------------------
|
||||||
MPD_AUTO_PKG(ffmpeg, FFMPEG, [libavformat >= 52 libavcodec >= 51 libavutil >= 49],
|
MPD_AUTO_PKG(ffmpeg, FFMPEG, [libavformat >= 52.31 libavcodec >= 52.20 libavutil >= 49.15],
|
||||||
[ffmpeg decoder library], [libavformat+libavcodec+libavutil not found])
|
[ffmpeg decoder library], [libavformat+libavcodec+libavutil not found])
|
||||||
|
|
||||||
if test x$enable_ffmpeg = xyes; then
|
|
||||||
# prior to ffmpeg svn12865, you had to specify include files
|
|
||||||
# without path prefix
|
|
||||||
old_CPPCFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS $FFMPEG_CFLAGS"
|
|
||||||
AC_CHECK_HEADER(libavcodec/avcodec.h,,
|
|
||||||
AC_DEFINE(OLD_FFMPEG_INCLUDES, 1,
|
|
||||||
[Define if avcodec.h instead of libavcodec/avcodec.h should be included]))
|
|
||||||
CPPCFLAGS=$old_CPPFLAGS
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test x$enable_ffmpeg = xyes; then
|
if test x$enable_ffmpeg = xyes; then
|
||||||
AC_DEFINE(HAVE_FFMPEG, 1, [Define for FFMPEG support])
|
AC_DEFINE(HAVE_FFMPEG, 1, [Define for FFMPEG support])
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -32,22 +32,14 @@
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef OLD_FFMPEG_INCLUDES
|
|
||||||
#include <avcodec.h>
|
|
||||||
#include <avformat.h>
|
|
||||||
#include <avio.h>
|
|
||||||
#else
|
|
||||||
#include <libavcodec/avcodec.h>
|
#include <libavcodec/avcodec.h>
|
||||||
#include <libavformat/avformat.h>
|
#include <libavformat/avformat.h>
|
||||||
#include <libavformat/avio.h>
|
#include <libavformat/avio.h>
|
||||||
#include <libavutil/log.h>
|
#include <libavutil/log.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef G_LOG_DOMAIN
|
#undef G_LOG_DOMAIN
|
||||||
#define G_LOG_DOMAIN "ffmpeg"
|
#define G_LOG_DOMAIN "ffmpeg"
|
||||||
|
|
||||||
#ifndef OLD_FFMPEG_INCLUDES
|
|
||||||
|
|
||||||
static GLogLevelFlags
|
static GLogLevelFlags
|
||||||
level_ffmpeg_to_glib(int level)
|
level_ffmpeg_to_glib(int level)
|
||||||
{
|
{
|
||||||
|
@ -79,8 +71,6 @@ mpd_ffmpeg_log_callback(G_GNUC_UNUSED void *ptr, int level,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* !OLD_FFMPEG_INCLUDES */
|
|
||||||
|
|
||||||
struct mpd_ffmpeg_stream {
|
struct mpd_ffmpeg_stream {
|
||||||
struct decoder *decoder;
|
struct decoder *decoder;
|
||||||
struct input_stream *input;
|
struct input_stream *input;
|
||||||
|
@ -143,9 +133,7 @@ mpd_ffmpeg_stream_close(struct mpd_ffmpeg_stream *stream)
|
||||||
static bool
|
static bool
|
||||||
ffmpeg_init(G_GNUC_UNUSED const struct config_param *param)
|
ffmpeg_init(G_GNUC_UNUSED const struct config_param *param)
|
||||||
{
|
{
|
||||||
#ifndef OLD_FFMPEG_INCLUDES
|
|
||||||
av_log_set_callback(mpd_ffmpeg_log_callback);
|
av_log_set_callback(mpd_ffmpeg_log_callback);
|
||||||
#endif
|
|
||||||
|
|
||||||
av_register_all();
|
av_register_all();
|
||||||
return true;
|
return true;
|
||||||
|
@ -230,7 +218,6 @@ ffmpeg_send_packet(struct decoder *decoder, struct input_stream *is,
|
||||||
static enum sample_format
|
static enum sample_format
|
||||||
ffmpeg_sample_format(G_GNUC_UNUSED const AVCodecContext *codec_context)
|
ffmpeg_sample_format(G_GNUC_UNUSED const AVCodecContext *codec_context)
|
||||||
{
|
{
|
||||||
#if LIBAVCODEC_VERSION_INT >= ((51<<16)+(41<<8)+0)
|
|
||||||
switch (codec_context->sample_fmt) {
|
switch (codec_context->sample_fmt) {
|
||||||
case SAMPLE_FMT_S16:
|
case SAMPLE_FMT_S16:
|
||||||
return SAMPLE_FORMAT_S16;
|
return SAMPLE_FORMAT_S16;
|
||||||
|
@ -243,10 +230,6 @@ ffmpeg_sample_format(G_GNUC_UNUSED const AVCodecContext *codec_context)
|
||||||
codec_context->sample_fmt);
|
codec_context->sample_fmt);
|
||||||
return SAMPLE_FORMAT_UNDEFINED;
|
return SAMPLE_FORMAT_UNDEFINED;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
/* XXX fixme 16-bit for older ffmpeg (13 Aug 2007) */
|
|
||||||
return SAMPLE_FORMAT_S16;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static AVInputFormat *
|
static AVInputFormat *
|
||||||
|
@ -400,7 +383,6 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
|
||||||
mpd_ffmpeg_stream_close(stream);
|
mpd_ffmpeg_stream_close(stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(31<<8)+0)
|
|
||||||
typedef struct ffmpeg_tag_map {
|
typedef struct ffmpeg_tag_map {
|
||||||
enum tag_type type;
|
enum tag_type type;
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -438,8 +420,6 @@ ffmpeg_copy_metadata(struct tag *tag, AVMetadata *m,
|
||||||
return mt != NULL;
|
return mt != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//no tag reading in ffmpeg, check if playable
|
//no tag reading in ffmpeg, check if playable
|
||||||
static struct tag *
|
static struct tag *
|
||||||
ffmpeg_stream_tag(struct input_stream *is)
|
ffmpeg_stream_tag(struct input_stream *is)
|
||||||
|
@ -471,7 +451,6 @@ ffmpeg_stream_tag(struct input_stream *is)
|
||||||
? f->duration / AV_TIME_BASE
|
? f->duration / AV_TIME_BASE
|
||||||
: 0;
|
: 0;
|
||||||
|
|
||||||
#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(31<<8)+0)
|
|
||||||
av_metadata_conv(f, NULL, f->iformat->metadata_conv);
|
av_metadata_conv(f, NULL, f->iformat->metadata_conv);
|
||||||
|
|
||||||
for (unsigned i = 0; i < sizeof(ffmpeg_tag_maps)/sizeof(ffmpeg_tag_map); i++) {
|
for (unsigned i = 0; i < sizeof(ffmpeg_tag_maps)/sizeof(ffmpeg_tag_map); i++) {
|
||||||
|
@ -480,31 +459,6 @@ ffmpeg_stream_tag(struct input_stream *is)
|
||||||
if (idx >= 0)
|
if (idx >= 0)
|
||||||
ffmpeg_copy_metadata(tag, f->streams[idx]->metadata, ffmpeg_tag_maps[i]);
|
ffmpeg_copy_metadata(tag, f->streams[idx]->metadata, ffmpeg_tag_maps[i]);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
if (f->author[0])
|
|
||||||
tag_add_item(tag, TAG_ARTIST, f->author);
|
|
||||||
if (f->title[0])
|
|
||||||
tag_add_item(tag, TAG_TITLE, f->title);
|
|
||||||
if (f->album[0])
|
|
||||||
tag_add_item(tag, TAG_ALBUM, f->album);
|
|
||||||
|
|
||||||
if (f->track > 0) {
|
|
||||||
char buffer[16];
|
|
||||||
snprintf(buffer, sizeof(buffer), "%d", f->track);
|
|
||||||
tag_add_item(tag, TAG_TRACK, buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (f->comment[0])
|
|
||||||
tag_add_item(tag, TAG_COMMENT, f->comment);
|
|
||||||
if (f->genre[0])
|
|
||||||
tag_add_item(tag, TAG_GENRE, f->genre);
|
|
||||||
if (f->year > 0) {
|
|
||||||
char buffer[16];
|
|
||||||
snprintf(buffer, sizeof(buffer), "%d", f->year);
|
|
||||||
tag_add_item(tag, TAG_DATE, buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
av_close_input_stream(f);
|
av_close_input_stream(f);
|
||||||
mpd_ffmpeg_stream_close(stream);
|
mpd_ffmpeg_stream_close(stream);
|
||||||
|
|
|
@ -21,13 +21,8 @@
|
||||||
#include "input/ffmpeg_input_plugin.h"
|
#include "input/ffmpeg_input_plugin.h"
|
||||||
#include "input_plugin.h"
|
#include "input_plugin.h"
|
||||||
|
|
||||||
#ifdef OLD_FFMPEG_INCLUDES
|
|
||||||
#include <avio.h>
|
|
||||||
#include <avformat.h>
|
|
||||||
#else
|
|
||||||
#include <libavformat/avio.h>
|
#include <libavformat/avio.h>
|
||||||
#include <libavformat/avformat.h>
|
#include <libavformat/avformat.h>
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef G_LOG_DOMAIN
|
#undef G_LOG_DOMAIN
|
||||||
#define G_LOG_DOMAIN "input_ffmpeg"
|
#define G_LOG_DOMAIN "input_ffmpeg"
|
||||||
|
@ -52,14 +47,12 @@ input_ffmpeg_init(G_GNUC_UNUSED const struct config_param *param,
|
||||||
{
|
{
|
||||||
av_register_all();
|
av_register_all();
|
||||||
|
|
||||||
#if LIBAVFORMAT_VERSION_MAJOR >= 52
|
|
||||||
/* disable this plugin if there's no registered protocol */
|
/* disable this plugin if there's no registered protocol */
|
||||||
if (av_protocol_next(NULL) == NULL) {
|
if (av_protocol_next(NULL) == NULL) {
|
||||||
g_set_error(error_r, ffmpeg_quark(), 0,
|
g_set_error(error_r, ffmpeg_quark(), 0,
|
||||||
"No protocol");
|
"No protocol");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue