Apply patch to fix build with newer versions of ffmpeg/libav (bug #373213).
authorTim Harder <radhermit@gentoo.org>
Sun, 24 Jul 2011 00:58:57 +0000 (00:58 +0000)
committerTim Harder <radhermit@gentoo.org>
Sun, 24 Jul 2011 00:58:57 +0000 (00:58 +0000)
Package-Manager: portage-2.2.0_alpha46/cvs/Linux x86_64

media-sound/audacity/ChangeLog
media-sound/audacity/Manifest
media-sound/audacity/audacity-1.3.13.ebuild
media-sound/audacity/files/audacity-1.3.13-ffmpeg.patch [new file with mode: 0644]

index 84ddf571db2fd05260e09ca91c83f73168bee9b0..89bb4be49c9e831fe0be09ae747f0e41fb82dfac 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for media-sound/audacity
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/audacity/ChangeLog,v 1.156 2011/07/15 20:15:55 maekke Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/audacity/ChangeLog,v 1.157 2011/07/24 00:58:57 radhermit Exp $
+
+  24 Jul 2011; Tim Harder <radhermit@gentoo.org> audacity-1.3.13.ebuild,
+  +files/audacity-1.3.13-ffmpeg.patch:
+  Apply patch to fix build with newer versions of ffmpeg/libav (bug #373213).
 
   15 Jul 2011; Markus Meier <maekke@gentoo.org> audacity-1.3.13.ebuild:
   x86 stable, bug #372757
index 905cc3dbb083467cb262edec03bdd2b91785c9b3..efb9627a1ec976af9ec676372045a5df009857c8 100644 (file)
@@ -1,5 +1,5 @@
 -----BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
+Hash: SHA512
 
 AUX audacity-1.3.12-automagic.patch 2227 RMD160 be4438ab70efa46b638e8bcc29d9c6fa6de2998c SHA1 280564911fd67b19ca79c01af10cf396ce6fe405 SHA256 f1f106f0f1e57d91f74dd0a4466edc6efd861bff7909caa4cf0e596aea38b850
 AUX audacity-1.3.12-ffmpeg.patch 2247 RMD160 278ecc43b796dc272be6d70cd4d233d5e5704ddd SHA1 601b893304d359596919acd1429764910035692d SHA256 07d325b3a3aacb2b264327c4d57d5769dbab3dce13f32c91cafe8c64db7e8a08
@@ -7,20 +7,25 @@ AUX audacity-1.3.12-gcc45.patch 3166 RMD160 173af2b6202e195b18b378855d5124b72b33
 AUX audacity-1.3.12-portaudio-shell.patch 372 RMD160 6c53e1a94b82c41691adf18a9933bb9ac483d263 SHA1 53e0db1b0db818f27a8563d1ae402d5bda24e298 SHA256 0d89f40ebc9a73a656319b009828ea50b0e3e15d220493c313f6ad02f8321974
 AUX audacity-1.3.12-widget-extra-only-needed-cflags.patch 944 RMD160 8aa031e43d7c2ec19c02840d21bb341dc9d0a686 SHA1 df5834728ed26f414ca0aa2904aac3f88e0b4afb SHA256 e8765b9d8abe0b4fb5e1b83a3c2dfdabd48c808795220db9e893c83a0e8fcd3f
 AUX audacity-1.3.13-automagic.patch 2306 RMD160 1b5177bdeee1acd55f09b8c428114d0a7e8fc719 SHA1 7ea05df2066602d080308f33813518cde5878bf6 SHA256 5ed3dddb9e095b7f17437ea0d62f357e14cef7e64987b393aa47589541cccbb2
+AUX audacity-1.3.13-ffmpeg.patch 7127 RMD160 6704ed714e88776a3a1ab9d5916619eedf31681c SHA1 26c2ad8e611705b2762a318e66312169f59cc218 SHA256 004c0b8ad34ab5dc0c3da4c07d8b61a3f6c8249a5b4325a6994b91f978661a00
 AUX audacity-1.3.8-automagic.patch 2625 RMD160 af4edacf4d9d331b7daa56d20ee55da5ae7759dc SHA1 4e91de0cecde8a75f14830e9446d6fbb0fc3036a SHA256 a7cc0fd0566877d50d5c8d0568a26dc163f2db1b74314791ff0b4060dafdae81
 AUX audacity-1.3.8-gsocket-conflict.patch 410 RMD160 c5e2716c4a7e9df8d4ebf05a3f226c719c1715e0 SHA1 fe9a1c08399bad5d34839c78c023bd9fea9228fd SHA256 2b77e18c378696392d04e5e1e14285433ee9e904bc95bdd1ec245edfd31efb20
 DIST audacity-minsrc-1.3.12-beta.tar.bz2 6087920 RMD160 47dd021c24fb6ed05a845604db28056d981c28d3 SHA1 3df2187c9e869be6745fb1e1396586b9b0486485 SHA256 f0f55839ca3013d2e43e5114c73d195bc34503685aeab683eafca4d1bbf3b768
 DIST audacity-minsrc-1.3.13-beta.tar.bz2 6450901 RMD160 36c7e8b6dbd5dbfd265afe00fd7ea6e34894a29e SHA1 47a1340699958c8e1804f374209835be865d7027 SHA256 4c2eda638e16e16dfddd202e86ccbe1d170b04c26cfb2c12ffcba0b79e7e1e83
 DIST audacity-minsrc-1.3.8.tar.bz2 6734200 RMD160 3ae7ed409520b62f40e4c9fcd49ea5a25827b8a3 SHA1 8b8e5dbbf38546c08eb77005f77648d28836dfd4 SHA256 50132fead4de4382e603fa14f0a7ffe87c4db86ddcfda1a472b8fa0dc7fb41cf
 EBUILD audacity-1.3.12.ebuild 2772 RMD160 3626dbb4cec3c2e14d4d3f828499a82ddaf7f6c6 SHA1 d897f91815c794e26b8507286447ed68b74e066e SHA256 f220192354e2c266e8a05ac50d0b0446409632a6849bff852bdeb4e170f15390
-EBUILD audacity-1.3.13.ebuild 2607 RMD160 84b2b573327d9db4e4b774e1f726e922c5b04c68 SHA1 ef755c3f7ba10aaf73aa8f12cbb7624b9c35d9aa SHA256 69523f50746004910ff65f516ab07974bff5c95d125ce27f87310d8b82fa88be
+EBUILD audacity-1.3.13.ebuild 2646 RMD160 239be87d4b68d0c67c3536f6d5892850bc42c0c2 SHA1 5d0a0b240fcdc36d5002d57f9ead3458a26a657a SHA256 00ca02a4dd441896fe95b7ce93f3aaffb7f65ff49cb4ef8205d4dc6288d1333e
 EBUILD audacity-1.3.8.ebuild 2677 RMD160 89512b1e82eadf2f21a530071ffbf439e7998f3a SHA1 96b1b2f80905e5012f80fcb910711546582b8f74 SHA256 3d6eae20c95271a3d6625245594a5f6a6c5ec41023b747daca05b6ec42e3fb6f
-MISC ChangeLog 25937 RMD160 041aa8577d1f0a68f158e2ac2937ae21b47fc52b SHA1 dc7a3bd8840a462c6650a5b28db05a25fae00ced SHA256 33d25f5bc8facc32812d02208e96d5040dfb67086cc5b747d956a50a75ebb581
+MISC ChangeLog 26131 RMD160 2d731f41dc6f1e30defcf5b51d37d33226daa5db SHA1 37d63e39fb8658e64c0673b12a5de60a8d5cdc16 SHA256 540ee2766a4821aa41bdcf1c28e6e58bbe58a8ac884f01ae6e5a2a8cff208f7e
 MISC metadata.xml 727 RMD160 3306c64d261828fe7ef77a6b10b86bdef95a7e90 SHA1 037f78e7a8bcd2a9691ea7a09078941b385b6737 SHA256 43d8778afc3c468b262cddd50200c8b0c54674fda12b8d8e55b0ce0f8f1a6e85
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.17 (GNU/Linux)
 
-iEYEARECAAYFAk4goCEACgkQkKaRLQcq0GIXUACdEhHjb6YcR4wgppZoy/fJc7Si
-pbYAoK7FuefSy0ZiuSjBc+NO16WQKMDG
-=8MfI
+iQEcBAEBCgAGBQJOK25aAAoJEEqz6FtPBkyj9OEIAJw9mzDRXbXj+SJPBTzPJvkN
+h/D1QZvgvcB72+MFLpGsD5zAumZVJmsz+X6QPMBrWgUNHu5hXyPaH18PBabGW5Jn
+FyEwOIBSQOboqwr5FqpPp7R2lW5OClL1ii3gDs7zTMhKz3MUPflQxoQ91wbYQQ3A
+QhniUyZDaBelit5MJ0qM+hLWu6Xq2vbuLh6NbIWACErhlNoOlo3edzkphgnmVfTj
+wXFhXhmkfEp/O266k6I8uWEYWbWbgiQIXX2d2GqfySWm8dl+hAWh+rFxiP/CAkd3
+DSii3xH1vQTu91cI7XKi0bJtq0xkJEWv+5RRVS+EDwLonNWVIS0x/XE2kiv9Jp8=
+=ur/C
 -----END PGP SIGNATURE-----
index 63e9089b3d07c6454d873284a4466c6a493986f3..e484a533e01e19c2fec5bc0da67a54727ab94d45 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-sound/audacity/audacity-1.3.13.ebuild,v 1.4 2011/07/15 20:15:55 maekke Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-sound/audacity/audacity-1.3.13.ebuild,v 1.5 2011/07/24 00:58:57 radhermit Exp $
 
 EAPI=4
 
@@ -49,7 +49,8 @@ REQUIRED_USE="soundtouch? ( midi )"
 S=${WORKDIR}/${MY_P}
 
 src_prepare() {
-       epatch "${FILESDIR}/${P}-automagic.patch"
+       epatch "${FILESDIR}/${P}-automagic.patch" \
+               "${FILESDIR}"/${P}-ffmpeg.patch
        AT_M4DIR="${S}/m4" eautoreconf
 }
 
diff --git a/media-sound/audacity/files/audacity-1.3.13-ffmpeg.patch b/media-sound/audacity/files/audacity-1.3.13-ffmpeg.patch
new file mode 100644 (file)
index 0000000..6754709
--- /dev/null
@@ -0,0 +1,164 @@
+--- audacity-src-1.3.13-beta.orig/src/export/ExportFFmpeg.cpp
++++ audacity-src-1.3.13-beta/src/export/ExportFFmpeg.cpp
+@@ -352,7 +352,7 @@
+    avcodec_get_context_defaults(mEncAudioCodecCtx);
+ 
+    mEncAudioCodecCtx->codec_id = ExportFFmpegOptions::fmts[mSubFormat].codecid;
+-   mEncAudioCodecCtx->codec_type = CODEC_TYPE_AUDIO;
++   mEncAudioCodecCtx->codec_type = AVMEDIA_TYPE_AUDIO;
+    mEncAudioCodecCtx->codec_tag = av_codec_get_tag((const AVCodecTag **)mEncFormatCtx->oformat->codec_tag,mEncAudioCodecCtx->codec_id);
+    mSampleRate = (int)project->GetRate();
+    mEncAudioCodecCtx->global_quality = -99999; //quality mode is off by default;
+@@ -403,7 +403,6 @@
+       mEncAudioCodecCtx->flags2 = 0;
+       if (gPrefs->Read(wxT("/FileFormats/FFmpegBitReservoir"),true)) mEncAudioCodecCtx->flags2 |= CODEC_FLAG2_BIT_RESERVOIR;
+       if (gPrefs->Read(wxT("/FileFormats/FFmpegVariableBlockLen"),true)) mEncAudioCodecCtx->flags2 |= 0x0004; //WMA only?
+-      mEncAudioCodecCtx->use_lpc = gPrefs->Read(wxT("/FileFormats/FFmpegUseLPC"),true);
+       mEncAudioCodecCtx->compression_level = gPrefs->Read(wxT("/FileFormats/FFmpegCompLevel"),-1);
+       mEncAudioCodecCtx->frame_size = gPrefs->Read(wxT("/FileFormats/FFmpegFrameSize"),(long)0);
+       mEncAudioCodecCtx->lpc_coeff_precision = gPrefs->Read(wxT("/FileFormats/FFmpegLPCCoefPrec"),(long)0);
+@@ -569,7 +569,7 @@
+       pkt.stream_index = mEncAudioStream->index;
+       pkt.data = mEncAudioEncodedBuf;
+       pkt.size = nEncodedBytes;
+-      pkt.flags |= PKT_FLAG_KEY;
++      pkt.flags |= AV_PKT_FLAG_KEY;
+ 
+       // Set presentation time of frame (currently in the codec's timebase) in the stream timebase.
+       if(mEncAudioCodecCtx->coded_frame && mEncAudioCodecCtx->coded_frame->pts != int64_t(AV_NOPTS_VALUE))
+@@ -656,7 +656,7 @@
+ 
+       pkt.stream_index = mEncAudioStream->index;
+       pkt.data = mEncAudioEncodedBuf;
+-      pkt.flags |= PKT_FLAG_KEY;
++      pkt.flags |= AV_PKT_FLAG_KEY;
+ 
+       // Write the encoded audio frame to the output file.
+       if ((ret = av_interleaved_write_frame(mEncFormatCtx, &pkt)) != 0)
+--- audacity-src-1.3.13-beta.orig/src/export/ExportFFmpegDialogs.cpp
++++ audacity-src-1.3.13-beta/src/export/ExportFFmpegDialogs.cpp
+@@ -1288,7 +1288,7 @@
+    while ((codec = av_codec_next(codec)))
+    {
+       // We're only interested in audio and only in encoders
+-      if (codec->type == CODEC_TYPE_AUDIO && codec->encode)
++      if (codec->type == AVMEDIA_TYPE_AUDIO && codec->encode)
+       {
+          mCodecNames.Add(wxString::FromUTF8(codec->name));
+          mCodecLongNames.Add(wxString::Format(wxT("%s - %s"),mCodecNames.Last().c_str(),wxString::FromUTF8(codec->long_name).c_str()));
+@@ -1528,7 +1528,7 @@
+          // Find the codec, that is claimed to be compatible
+          AVCodec *codec = avcodec_find_encoder(CompatibilityList[i].codec);
+          // If it exists, is audio and has encoder
+-         if (codec != NULL && (codec->type == CODEC_TYPE_AUDIO) && codec->encode)
++         if (codec != NULL && (codec->type == AVMEDIA_TYPE_AUDIO) && codec->encode)
+          {
+             // If it was selected - remember it's new index
+             if ((id >= 0) && codec->id == id) index = mShownCodecNames.GetCount();
+@@ -1543,7 +1543,7 @@
+       AVCodec *codec = NULL;
+       while ((codec = av_codec_next(codec)))
+       {
+-         if (codec->type == CODEC_TYPE_AUDIO && codec->encode)
++         if (codec->type == AVMEDIA_TYPE_AUDIO && codec->encode)
+          {
+             if (mShownCodecNames.Index(wxString::FromUTF8(codec->name)) < 0)
+             {
+@@ -1563,7 +1563,7 @@
+       if (format != NULL)
+       {
+          AVCodec *codec = avcodec_find_encoder(format->audio_codec);
+-         if (codec != NULL && (codec->type == CODEC_TYPE_AUDIO) && codec->encode)
++         if (codec != NULL && (codec->type == AVMEDIA_TYPE_AUDIO) && codec->encode)
+          {
+             if ((id >= 0) && codec->id == id) index = mShownCodecNames.GetCount();
+             mShownCodecNames.Add(wxString::FromUTF8(codec->name));
+--- audacity-src-1.3.13-beta.orig/src/FFmpeg.cpp
++++ audacity-src-1.3.13-beta/src/FFmpeg.cpp
+@@ -316,7 +316,7 @@
+    pd.buf_size = 0;
+    pd.buf = (unsigned char *) av_malloc(PROBE_BUF_MAX + AVPROBE_PADDING_SIZE);
+    if (pd.buf == NULL) {
+-      err = AVERROR_NOMEM;
++      err = AVERROR(ENOMEM);
+       goto fail;
+    }
+ 
+@@ -381,7 +381,7 @@
+ 
+    // Didn't find a suitable format, so bail
+    if (!fmt) {
+-      err = AVERROR_NOFMT;
++      err = AVERROR(EILSEQ);
+       goto fail;
+    }
+ 
+@@ -855,7 +855,6 @@
+    FFMPEG_INITDYN(codec, avcodec_find_decoder);
+    FFMPEG_INITDYN(codec, avcodec_get_context_defaults);
+    FFMPEG_INITDYN(codec, avcodec_open);
+-   FFMPEG_INITDYN(codec, avcodec_decode_audio2);
+    FFMPEG_INITDYN(codec, avcodec_decode_audio3);
+    FFMPEG_INITDYN(codec, avcodec_encode_audio);
+    FFMPEG_INITDYN(codec, avcodec_close);
+--- audacity-src-1.3.13-beta.orig/src/FFmpeg.h
++++ audacity-src-1.3.13-beta/src/FFmpeg.h
+@@ -559,7 +559,11 @@
+    FFMPEG_FUNCTION_WITH_RETURN(
+       void*,
+       av_fast_realloc,
++#if LIBAVUTIL_VERSION_MAJOR < 51
+       (void *ptr, unsigned int *size, unsigned int min_size),
++#else
++      (void *ptr, unsigned int *size, size_t min_size),
++#endif
+       (ptr, size, min_size)
+    );
+    FFMPEG_FUNCTION_WITH_RETURN(
+@@ -747,7 +751,11 @@
+    FFMPEG_FUNCTION_WITH_RETURN(
+       void*,
+       av_malloc,
++#if LIBAVUTIL_VERSION_MAJOR < 51
+       (unsigned int size),
++#else
++      (size_t size),
++#endif
+       (size)
+    );
+    FFMPEG_FUNCTION_NO_RETURN(
+--- audacity-src-1.3.13-beta.orig/src/import/ImportFFmpeg.cpp
++++ audacity-src-1.3.13-beta/src/import/ImportFFmpeg.cpp
+@@ -416,7 +416,7 @@
+    // Fill the stream contexts
+    for (unsigned int i = 0; i < mFormatContext->nb_streams; i++)
+    {
+-      if (mFormatContext->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
++      if (mFormatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+       {
+          //Create a context
+          streamContext *sc = new streamContext;
+--- audacity-src-1.3.13-beta.orig/src/ondemand/ODDecodeFFmpegTask.cpp
++++ audacity-src-1.3.13-beta/src/ondemand/ODDecodeFFmpegTask.cpp
+@@ -156,7 +156,7 @@
+    //test the audio stream(s)
+    for (unsigned int i = 0; i < ic->nb_streams; i++)
+    {
+-      if (ic->streams[i]->codec->codec_type == CODEC_TYPE_AUDIO)
++      if (ic->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
+       {  
+          audioStreamExists = true;                 
+          st = ic->streams[i];
+@@ -573,10 +573,10 @@
+       }
+    }
+ 
+-   // avcodec_decode_audio2() expects the size of the output buffer as the 3rd parameter but
++   // avcodec_decode_audio3() expects the size of the output buffer as the 3rd parameter but
+    // also returns the number of bytes it decoded in the same parameter.
+    sc->m_decodedAudioSamplesValidSiz = sc->m_decodedAudioSamplesSiz;
+-   nBytesDecoded = avcodec_decode_audio2(sc->m_codecCtx, 
++   nBytesDecoded = avcodec_decode_audio3(sc->m_codecCtx, 
+       sc->m_decodedAudioSamples,                    // out
+       &sc->m_decodedAudioSamplesValidSiz,     // in/out
+       pDecode, nDecodeSiz);                              // in