shithub: aubio

Download patch

ref: 82502145e3f024648ceb7627150723ea33b6a92e
parent: 7a2666f1213f55dc8fb22e086eddc2d8771a8f06
author: Paul Brossier <piem@piem.org>
date: Fri Apr 7 11:16:43 EDT 2017

src/io/source_avcodec.c: avoid double free with libavformat56

Note: when using ffmpeg 3.2.x, valgrind will complain that `40 bytes in
1 blocks are still reachable`. This is supposedly harmless; for more
information see https://trac.ffmpeg.org/ticket/3194.

--- a/src/io/source_avcodec.c
+++ b/src/io/source_avcodec.c
@@ -42,9 +42,12 @@
       )
 
 // backward compatibility with libavcodec55
-#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
-#warning "libavcodec55 is deprecated"
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(57,0,0)
 #define HAVE_AUBIO_LIBAVCODEC_DEPRECATED 1
+#endif
+
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(55,28,1)
+#warning "libavcodec < 56 is deprecated"
 #define av_frame_alloc  avcodec_alloc_frame
 #define av_frame_free avcodec_free_frame
 #define av_packet_unref av_free_packet
@@ -574,9 +577,6 @@
   s->avCodecCtx = NULL;
   if (s->avFormatCtx != NULL) {
     avformat_close_input(&s->avFormatCtx);
-#ifndef HAVE_AUBIO_LIBAVCODEC_DEPRECATED // avoid crash on old libavcodec54
-    avformat_free_context(s->avFormatCtx);
-#endif
     s->avFormatCtx = NULL;
   }
   av_packet_unref(&s->avPacket);
--- a/this_version.py
+++ b/this_version.py
@@ -1,5 +1,6 @@
 #! python
 import os
+import sys
 
 __version_info = {} # keep a reference to parse VERSION once
 
@@ -81,7 +82,7 @@
     try:
         gitsha = subprocess.check_output(gitcmd).strip().decode('utf8')
     except Exception as e:
-        print('git command error :%s' % e)
+        sys.stderr.write('git command error :%s\n' % e)
         return None
     # check if we have a clean tree
     gitcmd = ['git', '-C', aubio_dir, 'status', '--porcelain']
@@ -88,11 +89,11 @@
     try:
         output = subprocess.check_output(gitcmd).decode('utf8')
         if len(output):
-            print('Info: current tree is not clean\n')
-            print(output)
+            sys.stderr.write('Info: current tree is not clean\n\n')
+            sys.stderr.write(output + '\n')
             gitsha += '+mods'
     except subprocess.CalledProcessError as e:
-        print (e)
+        sys.stderr.write('git command error :%s\n' % e)
         pass
     return gitsha