[arch-commits] Commit in transcode/trunk (PKGBUILD transcode-1.1.7-ffmpeg29.patch)

Antonio Rojas arojas at archlinux.org
Sun Jul 23 09:00:46 UTC 2017


    Date: Sunday, July 23, 2017 @ 09:00:46
  Author: arojas
Revision: 301182

Port away from removed ffmpeg API (FS#54907)

Modified:
  transcode/trunk/PKGBUILD
  transcode/trunk/transcode-1.1.7-ffmpeg29.patch

--------------------------------+
 PKGBUILD                       |    6 +--
 transcode-1.1.7-ffmpeg29.patch |   66 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-07-22 23:20:40 UTC (rev 301181)
+++ PKGBUILD	2017-07-23 09:00:46 UTC (rev 301182)
@@ -6,7 +6,7 @@
 pkgname=transcode
 _sripver=0.3-4
 pkgver=1.1.7
-pkgrel=22
+pkgrel=23
 pkgdesc="A video/DVD ripper and encoder for the terminal/console"
 arch=('i686' 'x86_64')
 url="http://www.transcoding.org/"
@@ -26,7 +26,7 @@
 	transcode-1.1.7-preset-force.patch
 	transcode-1.1.7-ffmpeg2.patch
         transcode-1.1.7-ffmpeg-2.4.patch
-	transcode-1.1.7-ffmpeg29.patch
+	transcode-1.1.7-ffmpeg29.patch # rpmfusion
 	transcode-ffmpeg3.patch)
 sha1sums=('e35df68b960eb56ef0a59a4cdbed1491be56aee6'
           'd93ff3578dd5f722c8f4ef16bc0903eec5781a0d'
@@ -40,7 +40,7 @@
           '034853427bc784a80b333d2e2f4bab44f0b86ce0'
           '764de67996e2c4947346c7a91586cc4ca826a8e2'
           'b590dfc30cdc4bc2a6825de247928b46a8928a9a'
-          '0e8769c1e8ec9f0ed87266c404ba13560db3578d'
+          'f034f9871a0e96d5aa682b69451961f3dd9c7309'
           '6aefa6a13fa70f8cc92ed03dd5383a4adcd4a6d0')
 
 prepare() {

Modified: transcode-1.1.7-ffmpeg29.patch
===================================================================
--- transcode-1.1.7-ffmpeg29.patch	2017-07-22 23:20:40 UTC (rev 301181)
+++ transcode-1.1.7-ffmpeg29.patch	2017-07-23 09:00:46 UTC (rev 301182)
@@ -350,3 +350,69 @@
          src_fmt = IMG_YUV444P;
          YUV_INIT_PLANES(src_planes, frame, src_fmt,
                          lavc_dec_context->width, lavc_dec_context->height);
+Index: transcode-1.1.7/export/aud_aux.c
+===================================================================
+--- transcode-1.1.7.orig/export/aud_aux.c
++++ transcode-1.1.7/export/aud_aux.c
+@@ -846,6 +846,9 @@ static int tc_audio_encode_ffmpeg(char *
+ #ifdef HAVE_FFMPEG
+     int  in_size, out_size;
+     char *in_buf;
++    int got_packet;
++    AVPacket avpkt = { 0 };
++    AVFrame *frame = av_frame_alloc();
+ 
+     //-- input buffer and amount of bytes --
+     in_size = aud_size;
+@@ -866,10 +869,14 @@ static int tc_audio_encode_ffmpeg(char *
+ 
+     ac_memcpy(&mpa_buf[mpa_buf_ptr], in_buf, bytes_needed);
+ 
++    frame->nb_samples = mpa_ctx.frame_size;
++    avcodec_fill_audio_frame(frame, mpa_ctx.channels, mpa_ctx.sample_fmt, (const uint8_t *)mpa_buf, mpa_bytes_pf, 1);
++    avpkt.data = output;
++    avpkt.size = OUTPUT_SIZE;
+     TC_LOCK_LIBAVCODEC;
+-    out_size = avcodec_encode_audio(&mpa_ctx, (unsigned char *)output,
+-                    OUTPUT_SIZE, (short *)mpa_buf);
++    out_size = avcodec_encode_audio2(&mpa_ctx, &avpkt, frame, &got_packet);
+     TC_UNLOCK_LIBAVCODEC;
++    out_size = avpkt.size;
+     tc_audio_write(output, out_size, avifile);
+ 
+         in_size -= bytes_needed;
+@@ -884,6 +891,7 @@ static int tc_audio_encode_ffmpeg(char *
+ 
+     ac_memcpy(&mpa_buf[mpa_buf_ptr], aud_buffer, bytes_avail);
+         mpa_buf_ptr += bytes_avail;
++        av_frame_free(&frame);
+         return (0);
+       }
+     } //bytes availabe from last call?
+@@ -893,10 +901,15 @@ static int tc_audio_encode_ffmpeg(char *
+     //----------------------------------------------------
+ 
+     while (in_size >= mpa_bytes_pf) {
++      av_frame_unref(frame);
++      frame->nb_samples = mpa_ctx.frame_size;
++      avcodec_fill_audio_frame(frame, mpa_ctx.channels, mpa_ctx.sample_fmt, (const uint8_t *)in_buf, mpa_bytes_pf, 1);
++      avpkt.data = output;
++      avpkt.size = OUTPUT_SIZE;
+       TC_LOCK_LIBAVCODEC;
+-      out_size = avcodec_encode_audio(&mpa_ctx, (unsigned char *)output,
+-                      OUTPUT_SIZE, (short *)in_buf);
++      out_size = avcodec_encode_audio2(&mpa_ctx, &avpkt, frame, &got_packet);
+       TC_UNLOCK_LIBAVCODEC;
++      out_size = avpkt.size;
+ 
+       tc_audio_write(output, out_size, avifile);
+ 
+@@ -904,6 +917,8 @@ static int tc_audio_encode_ffmpeg(char *
+       in_buf  += mpa_bytes_pf;
+     }
+ 
++    av_frame_free(&frame);
++
+     //-- hold rest of bytes in mpa-buffer --
+     //--------------------------------------
+     if (in_size > 0) {



More information about the arch-commits mailing list