De: "Mathieu Bouchard" matju@artengine.ca
Though ideally, I'd be replacing it with gmerlin, a newer library by the same author. Last time I looked, something about installing it was a mess, but I don't remember what it was, and it was years ago, so it's surely much better now.
It's still a mess on windows, on msys apply this following patch for resolving missing X11 headers:
http://comments.gmane.org/gmane.comp.video.gmerlin.general/325
there are plenty of errors popping from *_ffmpeg.c, I've manually resolved some, but this is not really elegant.
========================================================== --- lib/demux_ffmpeg.c.old 2012-03-17 21:28:15 +0000 +++ lib/demux_ffmpeg.c 2012-03-17 21:23:33 +0000 @@ -577,11 +577,11 @@
/* With the current implementation in ffmpeg, this can be called multiple times */ -#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52, 29, 0)
-#else
-#endif +// #if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52, 29, 0)
+// #else
+// #endif
#if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52, 26, 0) avfc = av_alloc_format_context(); @@ -626,14 +626,12 @@ { switch(avfc->streams[i]->codec->codec_type) {
case CODEC_TYPE_AUDIO:
case AVMEDIA_TYPE_AUDIO:
init_audio_stream(ctx, avfc->streams[i], i);
break;
case CODEC_TYPE_VIDEO:
case AVMEDIA_TYPE_VIDEO:
init_video_stream(ctx, avfc->streams[i], i);
break;
case CODEC_TYPE_SUBTITLE:
break;
default:
break;
}
@@ -650,7 +648,7 @@ ctx->stream_description = bgav_sprintf(TRD("%s (via ffmpeg)"), priv->avfc->iformat->long_name);
@@ -660,7 +658,7 @@ if(avfc->album[0]) ctx->tt->cur->metadata.album = bgav_strdup(avfc->album); if(avfc->genre[0])
ctx->tt->cur->metadata.genre = bgav_strdup(avfc->genre);*/
return 1; }
@@ -736,8 +734,8 @@ s->data.video.palette_changed = 1; }
// if(pkt.flags&PKT_FLAG_KEY)
// PACKET_SET_KEYFRAME(p); bgav_packet_done_write(p);
av_free_packet(&pkt);
==========================================================
--- lib/video_ffmpeg.c.old 2012-03-17 21:28:00 +0000 +++ lib/video_ffmpeg.c 2012-03-17 21:23:47 +0000 @@ -55,6 +55,12 @@
#define LOG_DOMAIN "ffmpeg_video"
+#ifdef WIN32 +#define AV_DLLIMPORT __declspec(dllimport) +#else +#define AV_DLLIMPORT +#endif
// #define DUMP_DECODE // #define DUMP_EXTRADATA // #define DUMP_PACKET @@ -815,7 +821,7 @@ if(s->action == BGAV_STREAM_PARSE) return 1;
priv->ctx->codec_type = AVMEDIA_TYPE_VIDEO;
priv->ctx->bit_rate = 0;
@@ -2305,6 +2311,7 @@ { // TODO: Enable postprocessing for non-gavl pixelformats // (but not as long as it makes no sense)
#ifdef HAVE_LIBSWSCALE sws_scale(priv->swsContext, priv->frame->data, priv->frame->linesize,
==============================================================
./configure --without-doxygen --disable-speex
will make the gmerlin lib on msys