SOURCES: mjpegtools-gcc4.patch, mjpegtools-lavrec-memleak.patch (NEW) - new...
arekm
arekm at pld-linux.org
Sun Nov 9 20:17:40 CET 2008
Author: arekm Date: Sun Nov 9 19:17:40 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- new/updated
---- Files affected:
SOURCES:
mjpegtools-gcc4.patch (1.1 -> 1.2) , mjpegtools-lavrec-memleak.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/mjpegtools-gcc4.patch
diff -u SOURCES/mjpegtools-gcc4.patch:1.1 SOURCES/mjpegtools-gcc4.patch:1.2
--- SOURCES/mjpegtools-gcc4.patch:1.1 Mon Mar 20 02:20:17 2006
+++ SOURCES/mjpegtools-gcc4.patch Sun Nov 9 20:17:35 2008
@@ -19,3 +19,147 @@
#include <iostream>
+--- mjpegtools-1.8.0/mpeg2enc/encodertypes.h.org 2008-11-09 20:07:29.783454289 +0100
++++ mjpegtools-1.8.0/mpeg2enc/encodertypes.h 2008-11-09 20:07:51.390118792 +0100
+@@ -25,6 +25,7 @@
+ */
+
+
++#include <stdlib.h>
+
+
+ class Parity
+--- mjpegtools-1.8.0/mpeg2enc/macroblock.cc.org 2008-11-09 20:08:15.910324594 +0100
++++ mjpegtools-1.8.0/mpeg2enc/macroblock.cc 2008-11-09 20:08:26.857407091 +0100
+@@ -20,6 +20,7 @@
+ */
+
+ #include <stdio.h>
++#include <limits.h>
+
+ #include "macroblock.hh"
+ #include "mpeg2syntaxcodes.h"
+--- mjpegtools-1.8.0/mpeg2enc/picturereader.cc.org 2008-11-09 20:09:58.260106210 +0100
++++ mjpegtools-1.8.0/mpeg2enc/picturereader.cc 2008-11-09 20:10:08.073439077 +0100
+@@ -24,6 +24,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <limits.h>
+ #include <string.h>
+ #include <errno.h>
+ #include "simd.h"
+--- mjpegtools-1.8.0/mplex/inputstrm.cpp.org 2008-11-09 20:11:37.320513190 +0100
++++ mjpegtools-1.8.0/mplex/inputstrm.cpp 2008-11-09 20:11:46.486762448 +0100
+@@ -22,6 +22,7 @@
+
+
+ #include <config.h>
++#include <limits.h>
+ #include <assert.h>
+
+ #include "mjpeg_types.h"
+--- mjpegtools-1.8.0/mplex/multiplexor.cpp.org 2008-11-09 20:12:19.707175286 +0100
++++ mjpegtools-1.8.0/mplex/multiplexor.cpp 2008-11-09 20:12:28.357174433 +0100
+@@ -22,6 +22,7 @@
+ #include <config.h>
+ #include <math.h>
+ #include <stdlib.h>
++#include <string.h>
+
+ #include <mjpeg_types.h>
+ #include <mjpeg_logging.h>
+--- mjpegtools-1.8.0/mplex/padstrm.cpp.org 2008-11-09 20:13:15.013419657 +0100
++++ mjpegtools-1.8.0/mplex/padstrm.cpp 2008-11-09 20:13:23.670088487 +0100
+@@ -24,6 +24,8 @@
+ #include "config.h"
+ #endif
+
++#include <string.h>
++
+ #include "padstrm.hpp"
+
+
+--- mjpegtools-1.8.0/mplex/main.cpp.org 2008-11-09 20:13:52.250083036 +0100
++++ mjpegtools-1.8.0/mplex/main.cpp 2008-11-09 20:14:01.164248184 +0100
+@@ -30,6 +30,7 @@
+ #ifdef HAVE_GETOPT_H
+ #include <getopt.h>
+ #endif
++#include <string.h>
+ #include <string>
+ #include <memory>
+ #include <sys/stat.h>
+--- mjpegtools-1.9.0rc3/y4mdenoise/Set.hh
++++ mjpegtools-1.9.0rc3/y4mdenoise/Set.hh
+@@ -23,7 +23,7 @@
+ // How we implement ourselves.
+
+ public:
+- typedef typename Imp::Allocator Allocator;
++ typedef typename Imp::Allocator_t Allocator;
+ // The type of allocator to use to allocate items in the set.
+
+ Set (const PRED &a_rPred = PRED(),
+--- mjpegtools-1.9.0rc3/y4mdenoise/SkipList.hh
++++ mjpegtools-1.9.0rc3/y4mdenoise/SkipList.hh
+@@ -57,19 +57,19 @@
+ // Will give good sorting for up to e^10 items.
+
+ public:
+- typedef Allocator<Node,HEADERCHUNK> Allocator;
++ typedef Allocator<Node,HEADERCHUNK> Allocator_t;
+ // The type of node allocator to use.
+
+- static Allocator sm_oNodeAllocator;
++ static Allocator_t sm_oNodeAllocator;
+ // The default node allocator.
+
+ SkipList (const PRED &a_rPred = PRED(),
+- Allocator &a_rAlloc = sm_oNodeAllocator);
++ Allocator_t &a_rAlloc = sm_oNodeAllocator);
+ // Default constructor. Must be followed by Init().
+
+ SkipList (Status_t &a_reStatus, bool a_bAllowDuplicates,
+ uint32_t a_nRandSeed, const PRED &a_rPred = PRED(),
+- Allocator &a_rAlloc = sm_oNodeAllocator);
++ Allocator_t &a_rAlloc = sm_oNodeAllocator);
+ // Constructor. Specify whether or not duplicates are allowed,
+ // and provide a random number seed.
+
+@@ -255,7 +255,7 @@
+
+ private:
+
+- Allocator &m_rNodeAllocator;
++ Allocator_t &m_rNodeAllocator;
+ // Where we get memory to allocate nodes.
+
+ bool m_bAllowDuplicates;
+@@ -337,7 +337,7 @@
+
+ // The default node allocator. Allocates 64K at a time.
+ template <class KEY, class VALUE, class KEYFN, class PRED>
+-typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator
++typename SkipList<KEY,VALUE,KEYFN,PRED>::Allocator_t
+ SkipList<KEY,VALUE,KEYFN,PRED>::sm_oNodeAllocator (65536);
+
+
+@@ -345,7 +345,7 @@
+ // Default constructor. Must be followed by Init().
+ template <class KEY, class VALUE, class KEYFN, class PRED>
+ SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (const PRED &a_rPred,
+- Allocator &a_rAlloc)
++ Allocator_t &a_rAlloc)
+ : m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred)
+ {
+ // Set up some defaults.
+@@ -371,7 +371,7 @@
+ template <class KEY, class VALUE, class KEYFN, class PRED>
+ SkipList<KEY,VALUE,KEYFN,PRED>::SkipList (Status_t &a_reStatus,
+ bool a_bAllowDuplicates, uint32_t a_nRandSeed,
+- const PRED &a_rPred, Allocator &a_rAlloc)
++ const PRED &a_rPred, Allocator_t &a_rAlloc)
+ : m_rNodeAllocator (a_rAlloc), m_oPred (a_rPred)
+ {
+ // Make sure they didn't start us off with an error.
================================================================
Index: SOURCES/mjpegtools-lavrec-memleak.patch
diff -u /dev/null SOURCES/mjpegtools-lavrec-memleak.patch:1.1
--- /dev/null Sun Nov 9 20:17:41 2008
+++ SOURCES/mjpegtools-lavrec-memleak.patch Sun Nov 9 20:17:34 2008
@@ -0,0 +1,78 @@
+--- mjpegtools-1.8.0/lavtools/lav_io.c 2005-08-27 13:47:20.000000000 +0200
++++ mjpegtools-1.8.0___fixed/lavtools/lav_io.c 2006-05-14 05:45:48.000000000 +0200
+@@ -540,15 +540,12 @@
+
+ int lav_write_audio(lav_file_t *lav_file, uint8_t *buff, long samps)
+ {
+- int res;
++ int res = -1;
+ #ifdef HAVE_LIBQUICKTIME
+ int i, j;
+- int16_t *qt_audio = (int16_t *)buff, **qt_audion;
++ int16_t *buff16 = (int16_t *)buff, **qt_audion;
+ int channels = lav_audio_channels(lav_file);
+-
+- qt_audion = malloc(channels * sizeof (int16_t **));
+- for (i = 0; i < channels; i++)
+- qt_audion[i] = (int16_t *)malloc(samps * lav_file->bps);
++ int bits = lav_audio_bits(lav_file);
+ #endif
+
+ video_format = lav_file->format; internal_error = 0; /* for error messages */
+@@ -557,24 +554,43 @@
+ {
+ case 'a':
+ case 'A':
+- res = AVI_write_audio( lav_file->avi_fd, buff, samps*lav_file->bps);
++ res = AVI_write_audio(lav_file->avi_fd, buff, samps*lav_file->bps);
+ break;
+ #ifdef HAVE_LIBQUICKTIME
+ case 'q':
+- /* Deinterleave the audio into the two channels. */
+- for (i = 0; i < samps; i++)
+- {
+- for (j = 0; j < channels; j++)
+- qt_audion[j][i] = qt_audio[(channels*i) + j];
+- }
+- res = lqt_encode_audio_track(lav_file->qt_fd, qt_audion, NULL,samps,0);
+- for (j = 0; j < channels; j++)
+- free(qt_audion[j]);
+- free(qt_audion);
+- break;
++ if (bits != 16 || channels > 1)
++ {
++ /* Deinterleave the audio into the two channels and/or convert
++ * bits per sample to the required format.
++ */
++ qt_audion = malloc(channels * sizeof(*qt_audion));
++ for (i = 0; i < channels; i++)
++ qt_audion[i] = malloc(samps * sizeof(**qt_audion));
++
++ if (bits == 16)
++ for (i = 0; i < samps; i++)
++ for (j = 0; j < channels; j++)
++ qt_audion[j][i] = buff16[channels * i + j];
++ else
++ if (bits == 8)
++ for (i = 0; i < samps; i++)
++ for (j = 0; j < channels; j++)
++ qt_audion[j][i] = ((int16_t)(buff[channels * i + j]) << 8) ^ 0x8000;
++
++ if (bits == 8 || bits == 16)
++ res = lqt_encode_audio_track(lav_file->qt_fd, qt_audion, NULL, samps, 0);
++
++ for (i = 0; i < channels; i++)
++ free(qt_audion[i]);
++ free(qt_audion);
++ } else {
++ qt_audion = &buff16;
++ res = lqt_encode_audio_track(lav_file->qt_fd, qt_audion, NULL, samps, 0);
++ }
++ break;
+ #endif
+ default:
+- res = -1;
++ break;
+ }
+
+ return res;
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mjpegtools-gcc4.patch?r1=1.1&r2=1.2&f=u
More information about the pld-cvs-commit
mailing list