[MPlayer-cvslog] r34492 - in trunk: fmt-conversion.c libmpdemux/mp_taglists.c
Reinhard Tartler
siretart at tauware.de
Wed Jan 4 13:31:26 CET 2012
On Di, Jan 03, 2012 at 19:29:56 (CET), Reimar Döffinger wrote:
> On 3 Jan 2012, at 16:51, siretart <subversion at mplayerhq.hu> wrote:
>> Author: siretart
>> Date: Tue Jan 3 16:51:26 2012
>> New Revision: 34492
>>
>> Log:
>> Allow compilation with Libav
>>
>> Some CPP Macros and codec ids are not (yet) available in libav, so use
>> them only if they are actually defined. This doesn't work for code ids,
>> as they are defined as enums. Therefore, #ifdefs tests for the presence
>> of the respective codec.
>>
>> This approach should also allow to compile mplayer against earlier
>> versions of FFmpeg.
>>
>> Modified:
>> trunk/fmt-conversion.c
>> trunk/libmpdemux/mp_taglists.c
>>
>> Modified: trunk/fmt-conversion.c
>> ==============================================================================
>> --- trunk/fmt-conversion.c Mon Jan 2 17:48:18 2012 (r34491)
>> +++ trunk/fmt-conversion.c Tue Jan 3 16:51:26 2012 (r34492)
>> @@ -57,9 +57,11 @@ static const struct {
>> {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},
>> + {IMGFMT_GBR24P, PIX_FMT_GBRP},
>> #endif
>> {IMGFMT_YUY2, PIX_FMT_YUYV422},
>> {IMGFMT_UYVY, PIX_FMT_UYVY422},
>>
>> Modified: trunk/libmpdemux/mp_taglists.c
>> ==============================================================================
>> --- trunk/libmpdemux/mp_taglists.c Mon Jan 2 17:48:18 2012 (r34491)
>> +++ trunk/libmpdemux/mp_taglists.c Tue Jan 3 16:51:26 2012 (r34492)
>> @@ -43,7 +43,9 @@ static const struct AVCodecTag mp_wav_ta
>> { 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 CONFIG_FFWAVESYNTH_DECODER
>> { 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 @@ static const struct AVCodecTag mp_codeci
>> { 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 CONFIG_ESCAPE130_DECODER
>> { 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')},
>
> Please revert, as I said in my reply to the patch, checking CONFIG_* is nonsense.
It seems I have misread your email. In particular, you said you would
accept a non-broken solution but I did not see that you considered this
approach broken. I'm therefore going to change the ifdefs to check for
the LIBAVUTIL_VERSION_MICRO, as you suggest. Thinking more about it, it
also helps with supporting the FFmpeg 0.8 releases, if that was a
conern.
> Also, the ifdef for PIX_FMT is questionable, pixfmts generally are
> enums, too, though in this case it works fine since it is one of the
> formats that differ between little/big-endian, so it should at least
> have a comment so nobody gets the idea to do the same thing for other
> formats in the future where it will not work.
In order to avoid further bikeshedding, how about this?
Index: fmt-conversion.c
===================================================================
--- fmt-conversion.c (revision 34498)
+++ fmt-conversion.c (working copy)
@@ -57,6 +57,8 @@
{IMGFMT_RGB8, PIX_FMT_BGR8},
{IMGFMT_RGB4, PIX_FMT_BGR4},
{IMGFMT_BGR8, PIX_FMT_PAL8},
+// NB: This works only because PIX_FMT_0RGB32 is a CPP Macro.
+// It wouldn't if it was an enum
#ifdef PIX_FMT_0RGB32
{IMGFMT_BGR32, PIX_FMT_0RGB32},
#endif
--
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4
More information about the MPlayer-cvslog
mailing list