[MPlayer-dev-eng] Allow compilation with Libav
Reinhard Tartler
siretart at tauware.de
Mon Jan 2 17:35:08 CET 2012
On Mo, Jan 02, 2012 at 17:29:01 (CET), Reimar Döffinger wrote:
> On 2 Jan 2012, at 00:22, Reinhard Tartler <siretart at tauware.de> wrote:
>> 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.
>
> I'll have to check up on it, but I don't think any of these can work,
> those are not defines but enums only to my knowledge, so the whole
> ifndef stuff shouldn't work one bit.
Yeah, sorry, Uoti pointed this out to me on IRC as well.
While I still guess the PIX_FMT #definery should still work, the
CODEC_ID enums require some other solution. Can you think about a better
way than to hack up configure to see if ffwavesync and escpae130 are
available?
Cheers,
Reinhard
--
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4
More information about the MPlayer-dev-eng
mailing list