summaryrefslogtreecommitdiff
path: root/plugins/ffmpeg
diff options
context:
space:
mode:
authorGravatar Igor Murzov <e-mail@date.by>2011-07-04 16:47:25 +0400
committerGravatar waker <wakeroid@gmail.com>2011-07-06 19:03:18 +0200
commit2bb5828e58fa8c187377f8ba75f8eb73a53ed7ca (patch)
tree02870331dffeeca827c1e15fb11ea94a3e061dfd /plugins/ffmpeg
parent8267376ed6e3cc8f47bc8a324da0c156b64f20b6 (diff)
ffmpeg: define fallback macro AV_VERSION_INT()
For ffmpeg < 0.5. Copied from libavutil 0.5. ffmpeg: don't use deprecated CODEC_TYPE_AUDIO with new lavc fixes build with lavc 53. ffmpeg: fix erroneous version comparisons Comparing versions this way: (x.y < x1.y1) is obviously equivalent to (x < x1 || (x == x1 && y < y1)), not to (x <= x1 && y < y1). ffmpeg: use av_register_protocol2() if available fixes usage with ffmpeg-0.8
Diffstat (limited to 'plugins/ffmpeg')
-rw-r--r--plugins/ffmpeg/ffmpeg.c37
1 files changed, 30 insertions, 7 deletions
diff --git a/plugins/ffmpeg/ffmpeg.c b/plugins/ffmpeg/ffmpeg.c
index cd7edf4a..0cb9955a 100644
--- a/plugins/ffmpeg/ffmpeg.c
+++ b/plugins/ffmpeg/ffmpeg.c
@@ -44,6 +44,10 @@
#define av_register_protocol register_protocol
#endif
+#ifndef AV_VERSION_INT
+#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c)
+#endif
+
#endif
//#define trace(...) { fprintf(stderr, __VA_ARGS__); }
@@ -140,7 +144,12 @@ ffmpeg_init (DB_fileinfo_t *_info, DB_playItem_t *it) {
for (i = 0; i < info->fctx->nb_streams; i++)
{
info->ctx = info->fctx->streams[i]->codec;
- if (info->ctx->codec_type == CODEC_TYPE_AUDIO)
+ if (info->ctx->codec_type ==
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
+ AVMEDIA_TYPE_AUDIO)
+#else
+ CODEC_TYPE_AUDIO)
+#endif
{
info->codec = avcodec_find_decoder (info->ctx->codec_id);
if (info->codec != NULL) {
@@ -279,10 +288,10 @@ ffmpeg_read (DB_fileinfo_t *_info, char *bytes, int size) {
int out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
int len;
//trace ("in: out_size=%d(%d), size=%d\n", out_size, AVCODEC_MAX_AUDIO_FRAME_SIZE, size);
-#if (LIBAVCODEC_VERSION_MAJOR <= 52) && (LIBAVCODEC_VERSION_MINOR <= 25)
- len = avcodec_decode_audio2 (info->ctx, (int16_t *)info->buffer, &out_size, info->pkt.data, info->pkt.size);
-#else
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52,25,0)
len = avcodec_decode_audio3 (info->ctx, (int16_t *)info->buffer, &out_size, &info->pkt);
+#else
+ len = avcodec_decode_audio2 (info->ctx, (int16_t *)info->buffer, &out_size, info->pkt.data, info->pkt.size);
#endif
trace ("out: out_size=%d, len=%d\n", out_size, len);
if (len <= 0) {
@@ -418,7 +427,7 @@ static const char *map[] = {
static int
ffmpeg_read_metadata_internal (DB_playItem_t *it, AVFormatContext *fctx) {
-#if LIBAVFORMAT_VERSION_MAJOR <= 52 && LIBAVFORMAT_VERSION_MINOR < 43
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(52,43,0)
if (!strlen (fctx->title)) {
// title is empty, this call will set track title to filename without extension
deadbeef->pl_add_meta (it, "title", NULL);
@@ -490,7 +499,12 @@ ffmpeg_insert (ddb_playlist_t *plt, DB_playItem_t *after, const char *fname) {
for (i = 0; i < fctx->nb_streams; i++)
{
ctx = fctx->streams[i]->codec;
- if (ctx->codec_type == CODEC_TYPE_AUDIO)
+ if (ctx->codec_type ==
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
+ AVMEDIA_TYPE_AUDIO)
+#else
+ CODEC_TYPE_AUDIO)
+#endif
{
codec = avcodec_find_decoder(ctx->codec_id);
if (codec != NULL && !strcasecmp (codec->name, "alac")) { // only open alac streams
@@ -704,7 +718,11 @@ ffmpeg_start (void) {
ffmpeg_init_exts ();
avcodec_init ();
av_register_all ();
+#if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
+ av_register_protocol2 (&vfswrapper, sizeof(vfswrapper));
+#else
av_register_protocol (&vfswrapper);
+#endif
return 0;
}
@@ -745,7 +763,12 @@ ffmpeg_read_metadata (DB_playItem_t *it) {
for (i = 0; i < fctx->nb_streams; i++)
{
ctx = fctx->streams[i]->codec;
- if (ctx->codec_type == CODEC_TYPE_AUDIO)
+ if (ctx->codec_type ==
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(52, 64, 0)
+ AVMEDIA_TYPE_AUDIO)
+#else
+ CODEC_TYPE_AUDIO)
+#endif
{
codec = avcodec_find_decoder(ctx->codec_id);
if (codec != NULL)