[MPlayer-dev-eng] Allow compilation with Libav

Reinhard Tartler siretart at tauware.de
Mon Jan 2 00:22:41 CET 2012


Hi,

In order to build mplayer against Libav, a couple of minor patches are
necessary. I've developed them in the course of maintaining the daily
builds at https://launchpad.net/~motumedia/+archive/mplayer-daily/, but
as compatibility with Libav is a requirement for the distro mplayer
package in debian, I feel they should better go to svn properly.

So here we go:

--- mplayer-1.0~svn34481.orig/fmt-conversion.c
+++ mplayer-1.0~svn34481/fmt-conversion.c
@@ -24,6 +24,11 @@
 #include "libaf/af_format.h"
 #include "fmt-conversion.h"
 
+// libav.org's libavutil is missing this
+#ifndef PIX_FMT_GBR24P
+#define PIX_FMT_GBR24P PIX_FMT_GBRP
+#endif
+
 static const struct {
     int fmt;
     enum PixelFormat pix_fmt;
@@ -57,7 +62,9 @@
     {IMGFMT_RGB8,    PIX_FMT_BGR8},
     {IMGFMT_RGB4,    PIX_FMT_BGR4},
     {IMGFMT_BGR8,    PIX_FMT_PAL8},
+#ifdef PIX_FMT_0RGB32
     {IMGFMT_BGR32,   PIX_FMT_0RGB32},
+#endif
 #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51, 20, 1)
     {IMGFMT_GBR24P,  PIX_FMT_GBR24P},
 #endif

I think these hunks should be rather safe. Instead of using
PIX_FMT_GBR24P, we could also use PIX_FMT_GBRP directly, as this #define
was copied FFmpeg's libavcodec.

--- mplayer-1.0~svn34481.orig/libmpdemux/mp_taglists.c
+++ mplayer-1.0~svn34481/libmpdemux/mp_taglists.c
@@ -43,7 +43,9 @@
     { CODEC_ID_COOK,              MKTAG('c', 'o', 'o', 'k')},
     { CODEC_ID_DSICINAUDIO,       MKTAG('D', 'C', 'I', 'A')},
     { CODEC_ID_EAC3,              MKTAG('E', 'A', 'C', '3')},
+#ifdef CODEC_ID_FFWAVESYNTH
     { CODEC_ID_FFWAVESYNTH,       MKTAG('F', 'F', 'W', 'S')},
+#endif
     { CODEC_ID_G723_1,            MKTAG('7', '2', '3', '1')},
     { CODEC_ID_INTERPLAY_DPCM,    MKTAG('I', 'N', 'P', 'A')},
     { CODEC_ID_MLP,               MKTAG('M', 'L', 'P', ' ')},
@@ -85,7 +87,9 @@
     { CODEC_ID_DVVIDEO,           MKTAG('d', 'v', 's', 'd')},
     { CODEC_ID_EAC3,              MKTAG('E', 'A', 'C', '3')},
     { CODEC_ID_ESCAPE124,         MKTAG('E', '1', '2', '4')},
+#ifdef CODEC_ID_ESCAPE130
     { CODEC_ID_ESCAPE130,         MKTAG('E', '1', '3', '0')},
+#endif
     { CODEC_ID_FLV1,              MKTAG('F', 'L', 'V', '1')},
     { CODEC_ID_G729,              MKTAG('G', '7', '2', '9')},
     { CODEC_ID_H264,              MKTAG('H', '2', '6', '4')},

These codec id's do not exist in Libav's libavcodec.

Actually, there used to be a couple of more patches in the daily builds,
but I think they are no longer necessary. In case I'm wrong, I'll sent
another email with those included. The patches above, however, are
definitly necessary.

Please tell me which of the above changes are acceptable and what
additional work the other ones require to become acceptable.

Happy new year,
Reinhard

-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4


More information about the MPlayer-dev-eng mailing list