[SCM] k9copy packaging branch, master, updated. c226678d86145710b8bc778bffbd339954111612

Eshat Cakar eshat-guest at alioth.debian.org
Thu Sep 8 18:29:03 UTC 2011


The following commit has been merged in the master branch:
commit c226678d86145710b8bc778bffbd339954111612
Author: Eshat Cakar <info at eshat.de>
Date:   Thu Sep 8 20:28:20 2011 +0200

    AHHH!
    Revert the Revert  to undelete debian folder
---
 .gitignore                                 |    2 +
 debian/changelog                           |   23 +++
 debian/compat                              |    1 +
 debian/control                             |   48 ++++++
 debian/copyright                           |  115 +++++++++++++
 debian/gbp.conf                            |    2 +
 debian/manpage/k9copy.1                    |   64 +++++++
 debian/manpage/k9play.1                    |   57 +++++++
 debian/manpage/k9xineplayer.1              |   58 +++++++
 debian/manpages                            |    3 +
 debian/patches/fix-deprecated-func.patch   |   14 ++
 debian/patches/fix-desktop-files.patch     |   35 ++++
 debian/patches/fix-ftbfs-kfreebsd.patch    |   11 ++
 debian/patches/german-spelling-error.patch |   12 ++
 debian/patches/link_libav_directly.patch   |  253 ++++++++++++++++++++++++++++
 debian/patches/rename_deprecated_var.patch |   12 ++
 debian/patches/series                      |    6 +
 debian/rules                               |   10 +
 debian/source/format                       |    1 +
 debian/source/local-options                |    1 +
 debian/watch                               |    2 +
 21 files changed, 730 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..29d04fd
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+k9copy-2.3.7.kdev4
+.pc
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..162a4f9
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,23 @@
+k9copy (2.3.7-3) unstable; urgency=low
+
+  * Fix FTBFS on kfreebsd, thanks to Christoph Egger (Closes: #637773)
+  * Prepare package for libav (Closes: #638248)
+  * Link directly agains libav*, thanks to Reinhard Tartler
+
+ -- Eshat Cakar <info at eshat.de>  Sun, 21 Aug 2011 22:00:49 +0200
+
+k9copy (2.3.7-2) unstable; urgency=low
+
+  * Add libswscale to build-deps and fix called ffmpeg library names,
+    so that DVDauthor mode works (Closes: #634249)
+  * Add wodim and genisofs to Recommends (Closes: #634387)
+  * Add debug package
+
+ -- Eshat Cakar <info at eshat.de>  Thu, 28 Jul 2011 23:44:44 +0200
+
+k9copy (2.3.7-1) unstable; urgency=low
+
+  * Initial release. (Closes: #320045)
+  * Make .Desktop files follow  FreeDesktop specification
+
+ -- Eshat Cakar <info at eshat.de>  Tue, 28 Jun 2011 15:23:11 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..45a4fb7
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+8
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..b065247
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,48 @@
+Source: k9copy
+Section: video
+Priority: optional
+Maintainer: Eshat Cakar <info at eshat.de>
+Build-Depends: debhelper (>= 8.0.0),
+	       kdelibs5-dev (>= 4:4.2.1),
+	       pkg-kde-tools,
+ 	       cmake,
+	       libxine-dev,
+	       libmpeg2-4-dev,
+	       libavformat-dev,
+	       libavcodec-dev,
+	       libswscale-dev,
+	       libx11-dev
+Standards-Version: 3.9.2
+Homepage: http://k9copy.sourceforge.net/
+Vcs-Git: git://git.debian.org/git/pkg-kde/kde-extras/k9copy.git
+Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-kde/kde-extras/k9copy.git
+
+Package: k9copy
+Architecture: any
+Depends: ${shlibs:Depends}, 
+	 ${misc:Depends}, 
+	 dvd+rw-tools, 
+	 dvdauthor, 
+	 mencoder, 
+	 ffmpeg
+Recommends: genisoimage,
+	    wodim
+Description: KDE tool to backup DVDs
+ k9copy provides the following features:
+  - The video stream can be compressed to make the video fit on any 
+    configurable target size
+  - DVD Burning
+  - Transcode DVD using mencoder or ffmpeg with configurable presets
+  - Creation of ISO images
+  - The possibility of choosing which audio and subtitle tracks to copy
+  - Title preview (video only)
+  - The ability to preserve the original menus
+
+Package: k9copy-dbg
+Architecture: any
+Section: debug
+Priority: extra
+Depends: k9copy (= ${binary:Version}), 
+	 ${misc:Depends}
+Description: KDE tool to backup DVDs (debugging symbols)
+ This package contains the debugging symbols for k9copy
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..f28fd42
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,115 @@
+This package was debianized by Steve Stalcup <vorian at kubuntu.org> on
+Wed, 07 May 2008 14:48:00 -0400.
+
+It was downloaded from http://k9copy.sourceforge.net/
+
+Upstream Author: 
+      Jean-Michel Petit <jm_petit at laposte.net> 
+
+Copyright: 
+      © 2008 Jean-Michel Petit <jm_petit at laposte.net> 
+
+License:
+
+    | This program is free software; you can redistribute it and/or modify
+    | it under the terms of the GNU General Public License as published by
+    | the Free Software Foundation; version 2 dated June, 1991.
+    |
+    | This package is distributed in the hope that it will be useful,
+    | but WITHOUT ANY WARRANTY; without even the implied warranty of
+    | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    | GNU General Public License for more details.
+    |
+    | You should have received a copy of the GNU General Public License
+    | along with this program; if not, write to the Free Software Foundation,
+    | Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+  The full text of the GNU General Public License version 2 is available on
+  Debian systems in /usr/share/common-licenses/GPL-2.
+
+The Following files are licenced under the GNU General Public License version 2
+
+ * core/bswap.h 
+ * mpeg2/bswap.h 
+Are copyrighted © 2000-2001 by Billy Biggs <vektor at dumbterm.net>
+
+ * dvdnav/vm.h 
+ * dvdnav/vm.c 
+ * dvdnav/dvdnav.h 
+ * dvdnav/highlight.c 
+ * dvdnav/navigation.c 
+ * dvdnav/dvdnav_events.h 
+ * dvdnav/read_cache.h 
+ * dvdnav/dvdnav_internal.h 
+ * dvdnav/read_cache.c 
+ * dvdnav/dvdnav.c 
+ * dvdnav/settings.c 
+ * dvdnav/searching.c 
+Are copyrighted © 2000 by Rich Wareham <richwareham at users.sourceforge.net>
+
+ * dvdnav/decoder.h
+ * dvdnav/vmcmd.h
+ * dvdnav/decoder.c
+ * dvdnav/vmcmd.c
+ * dvdnav/vm.h 
+ * dvdnav/vm.c 
+ * dvdnav/dvd_types.h
+Are copyrighted © 2000-2001 by Håkan Hjort
+
+ * dvdnav/decoder.h 
+ * dvdnav/vmcmd.h 
+ * dvdnav/decoder.c 
+ * dvdnav/vmcmd.c 
+Are copyrighted © 2000-2001 by Martin Norbå
+
+ * vamps/ac.h 
+Is copyrighted © 2002 by Thomas Astreich
+
+ * dvdnav/dvd_types.h 
+Is copyrighted © 2000-2001 by Bjrn Englund
+
+ * mpeg2/motion_comp_alpha.cpp 
+Is copyrighted © 2002-2003 by Falk Hueffner <falk at debian.org>
+
+ * dvdnav/compat.h 
+Is copyrighted © 2000-2001 by the xine project
+
+ * mpeg2/rgb_mmx.cpp 
+Is copyrighted © 2000-2003 by Silicon Integrated System Corp
+
+ * mpeg2/motion_comp_vis.cpp 
+ * mpeg2/vis.h 
+ * mpeg2/rgb_vis.cpp 
+Are copyrighted © 2003 by David S. Miller <davem at redhat.com>
+
+ * mpeg2/motion_comp_alpha.cpp 
+Is copyrighted © 2002-2003 by Falk Hueffner <falk at debian.org>
+
+ * mpeg2/mpeg2_internal.h 
+ * mpeg2/motion_comp_altivec.cpp
+ * mpeg2/idct_alpha.cpp 
+ * mpeg2/vlc.h 
+ * mpeg2/slice.cpp 
+ * mpeg2/idct_altivec.cpp 
+ * mpeg2/header.cpp 
+ * mpeg2/decode.cpp 
+ * mpeg2/rgb.cpp 
+ * mpeg2/cpu_state.cpp 
+ * mpeg2/idct.cpp 
+ * mpeg2/convert_internal.h 
+ * mpeg2/motion_comp_mmx.cpp 
+ * mpeg2/tendra.h 
+ * mpeg2/mmx.h 
+ * mpeg2/mpeg2convert.h 
+ * mpeg2/cpu_accel.cpp 
+ * mpeg2/video_out.h 
+ * mpeg2/uyvy.cpp  
+ * mpeg2/mpeg2.h  
+ * mpeg2/motion_comp.cpp 
+ * mpeg2/alloc.cpp  
+ * mpeg2/attributes.h 
+Are copyrighted © 1999-2000 by Aaron Holtzman and
+<aholtzma at ess.engr.uvic.ca> and 2000-2003 by Michel Lespinasse <walken at zoy.org>
+
+The Debian packaging is © 2008, Steve Stalcup <vorian at kubuntu.org> and
+© 2011, Eshat Cakar <info at eshat.de> and is licensed under the GPL-2, see above.
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..cec628c
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,2 @@
+[DEFAULT]
+pristine-tar = True
diff --git a/debian/manpage/k9copy.1 b/debian/manpage/k9copy.1
new file mode 100644
index 0000000..070e1f2
--- /dev/null
+++ b/debian/manpage/k9copy.1
@@ -0,0 +1,64 @@
+.TH "k9copy" "1"
+.if n .ad l
+.nh
+
+.SH "NAME"
+k9copy \- DVD copy tool for KDE
+
+.SH "SYNOPSIS"
+.B k9copy
+.RI [ Qt-options ]
+.RI [ KDE-options ] 
+\&...
+
+.SH "DESCRIPTION"
+k9copy is a DVD backup utility which allow the copy of one or more titles from a DVD9 to a DVD5.
+
+.SH OPTIONS
+.PP
+All KDE and Qt
+programs accept a some common command-line options. k9copy has no
+application-specific options.
+.PP
+
+.TP
+.BR \-\-`help
+Show help about options
+
+.TP
+.BR \-\-`help\-qt
+Show Qt specific options
+
+.TP 
+.BR \-\-`help\-kde
+Show KDE specific options
+
+.TP 
+.BR \-\-`help\-all
+Show all options
+
+.TP
+.BR \-\-`author
+Show author information
+
+.TP
+.BR \-\-`version 
+Show version information
+
+.TP
+.BR \-\-`license
+Show license information
+
+.TP
+.BR \-\- 
+Indicates end of options
+
+.SH COPYRIGHT
+This manual page was written by Anthony Mercatante
+<anthony.mercatante at laposte.net for the Debian system (but may be used by 
+others). Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU General Public License, Version 2 or any later 
+version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License can be found in
+/usr/share/common\-licenses.
diff --git a/debian/manpage/k9play.1 b/debian/manpage/k9play.1
new file mode 100644
index 0000000..69ddf38
--- /dev/null
+++ b/debian/manpage/k9play.1
@@ -0,0 +1,57 @@
+.TH "k9player" "1"
+.if n .ad l
+.nh
+
+.SH "NAME"
+k9play \- A movie playing utility
+
+.SH "SYNOPSIS"
+.B k9player
+.RI [ Qt-options ]
+.RI [ KDE-options ] 
+\&...
+
+.SH "DESCRIPTION"
+k9copy is a DVD backup utility which allow the copy of one or more titles from a DVD9 to a DVD5.
+
+.SH OPTIONS
+.PP
+All KDE and Qt
+programs accept a some common command-line options. k9copy has no
+application-specific options.
+.PP
+
+.TP
+.BR \-\-`help
+Show help about options
+
+.TP
+.BR \-\-`help\-qt
+Show Qt specific options
+
+.TP 
+.BR \-\-`help\-kde
+Show KDE specific options
+
+.TP 
+.BR \-\-`help\-all
+Show all options
+
+.TP
+.BR \-\-`author
+Show author information
+
+.TP
+.BR \-\-`version 
+Show version information
+
+.TP
+.BR \-\-`license
+Show license information
+
+.TP
+.BR \-\- 
+Indicates end of options
+
+This manual page was written by Steve Stalcup <vorian at ubuntu.com> 
+for the BKubuntu GNU/LinuxP system.
diff --git a/debian/manpage/k9xineplayer.1 b/debian/manpage/k9xineplayer.1
new file mode 100644
index 0000000..9ac5c39
--- /dev/null
+++ b/debian/manpage/k9xineplayer.1
@@ -0,0 +1,58 @@
+.TH "k9xineplayer" "1"
+.if n .ad l
+.nh
+
+.SH "NAME"
+k9xineplayer \- A movie playing utility
+
+.SH "SYNOPSIS"
+.B k9xineplayer
+.RI [ Qt-options ]
+.RI [ KDE-options ] 
+\&...
+
+.SH "DESCRIPTION"
+k9copy is a DVD backup utility which allow the copy of one or more titles from a DVD9 to a DVD5.
+
+.SH OPTIONS
+.PP
+All KDE and Qt
+programs accept a some common command-line options. k9copy has no
+application-specific options.
+.PP
+
+.TP
+.BR \-\-`help
+Show help about options
+
+.TP
+.BR \-\-`help\-qt
+Show Qt specific options
+
+.TP 
+.BR \-\-`help\-kde
+Show KDE specific options
+
+.TP 
+.BR \-\-`help\-all
+Show all options
+
+.TP
+.BR \-\-`author
+Show author information
+
+.TP
+.BR \-\-`version 
+Show version information
+
+.TP
+.BR \-\-`license
+Show license information
+
+.TP
+.BR \-\- 
+Indicates end of options
+
+.SH COPYRIGHT
+This manual page was written by Steve Stalcup <vorian at ubuntu.com> 
+for the BKubuntu GNU/LinuxP system.
diff --git a/debian/manpages b/debian/manpages
new file mode 100644
index 0000000..3768b7a
--- /dev/null
+++ b/debian/manpages
@@ -0,0 +1,3 @@
+debian/manpage/k9xineplayer.1
+debian/manpage/k9play.1
+debian/manpage/k9copy.1
diff --git a/debian/patches/fix-deprecated-func.patch b/debian/patches/fix-deprecated-func.patch
new file mode 100644
index 0000000..7bce907
--- /dev/null
+++ b/debian/patches/fix-deprecated-func.patch
@@ -0,0 +1,14 @@
+Function has been deprecated for a long time
+--- a/src/import/k9avidecode.cpp
++++ b/src/import/k9avidecode.cpp
+@@ -242,8 +242,8 @@
+         // Is this a packet from the video stream?
+         if (packet.stream_index==m_videoStream) {
+             // Decode video frame
+-            avcodec_decode_video(m_CodecCtx, m_Frame, &frameFinished,
+-                                 packet.data, packet.size);
++            avcodec_decode_video2(m_CodecCtx, m_Frame, &frameFinished,
++                                 &packet);
+ 
+             // Did we get a video frame?
+             if (frameFinished) {
diff --git a/debian/patches/fix-desktop-files.patch b/debian/patches/fix-desktop-files.patch
new file mode 100644
index 0000000..6767687
--- /dev/null
+++ b/debian/patches/fix-desktop-files.patch
@@ -0,0 +1,35 @@
+Lintian says, these do no belong the FreeDesktop specs
+--- a/k9copy.desktop
++++ b/k9copy.desktop
+@@ -1,6 +1,4 @@
+-#!/usr/bin/env xdg-open
+ [Desktop Entry]
+-Encoding=UTF-8
+ Type=Application
+ Name=k9copy
+ Exec=k9copy -caption "%c" %i %m  %u
+@@ -12,7 +10,6 @@
+ GenericName[fr]=Backup de DVD Video
+ GenericName[tr]=DVD Vidyo Yedekleme Aracı
+ GenericName[ru]=Копирование с видео-DVD
+-MimeTypes=
+ Terminal=false
+ Icon=k9copy
+ X-DocPath=k9copy/index.html
+--- a/k9copy_assistant.desktop
++++ b/k9copy_assistant.desktop
+@@ -1,6 +1,4 @@
+-#!/usr/bin/env xdg-open
+ [Desktop Entry]
+-Encoding=UTF-8
+ Type=Application
+ Name=k9copy assistant
+ Exec=k9copy --assistant -caption "%c" %i %m  %u
+@@ -12,7 +10,6 @@
+ GenericName[fr]=Backup de DVD Video
+ GenericName[tr]=DVD Vidyo Yedekleme Aracı
+ GenericName[ru]=Копирование с видео-DVD
+-MimeTypes=
+ Terminal=false
+ Icon=k9copy
+ X-DocPath=k9copy/index.html
diff --git a/debian/patches/fix-ftbfs-kfreebsd.patch b/debian/patches/fix-ftbfs-kfreebsd.patch
new file mode 100644
index 0000000..9fcb97a
--- /dev/null
+++ b/debian/patches/fix-ftbfs-kfreebsd.patch
@@ -0,0 +1,11 @@
+--- a/src/core/bswap.h
++++ b/src/core/bswap.h
+@@ -35,7 +35,7 @@
+ #include <sys/param.h>
+ #endif
+ 
+-#if defined(__linux__)
++#if defined(__GLIBC__)
+ #include <byteswap.h>
+ #define B2N_16(x) x = bswap_16(x)
+ #define B2N_32(x) x = bswap_32(x)
diff --git a/debian/patches/german-spelling-error.patch b/debian/patches/german-spelling-error.patch
new file mode 100644
index 0000000..7de368a
--- /dev/null
+++ b/debian/patches/german-spelling-error.patch
@@ -0,0 +1,12 @@
+Just a little spelling mistake
+--- a/po/de.po
++++ b/po/de.po
+@@ -2560,7 +2560,7 @@
+ #: src/import/k9avidecode.cpp:48 src/vamps/k9ffmpeg.cpp:33
+ #: src/vamps/k9ffmpeg.cpp:37 src/vamps/k9ffmpeg.cpp:46
+ msgid "Cannot open then library %1"
+-msgstr "Kann Bibliothek %1 nocht öffnen"
++msgstr "Kann Bibliothek %1 nicht öffnen"
+ 
+ #: src/import/k9avidecode.cpp:112
+ msgid "Couldn't open the file %1"
diff --git a/debian/patches/link_libav_directly.patch b/debian/patches/link_libav_directly.patch
new file mode 100644
index 0000000..d66df1d
--- /dev/null
+++ b/debian/patches/link_libav_directly.patch
@@ -0,0 +1,253 @@
+Description: Instead of loading libav* libraries at runtime, link them directly
+Author: Reinhard Tartler
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -15,11 +15,15 @@ INCLUDE(CMakeDetermineSystem)
+ INCLUDE(CheckIncludeFiles)
+ INCLUDE(FindLibMpeg2)
+ INCLUDE(FindXine)
+-INCLUDE(FindAvcodec)
+-INCLUDE(FindAvformat)
++#INCLUDE(FindAvcodec)
++#INCLUDE(FindAvformat)
+ INCLUDE(FindFFmpegScale)
+ #INCLUDE(FindLibDvdread)
+ 
++#use pkg-config to find various modes 
++INCLUDE(FindPkgConfig OPTIONAL) 
++pkg_check_modules(LIBAV REQUIRED libavformat libavcodec libavutil libswscale)
++
+ set (VERSION 2.3.7)
+ 
+ 
+@@ -65,9 +69,6 @@ ENDIF (LIBDL_LIBRARY)
+ #FINDLIBDVDREAD("dvdread/ifo_types.h" "dvdread")
+ 
+ 
+-FINDAVFORMAT("avformat")
+-FINDAVCODEC("avcodec")
+-
+ add_definitions( -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS)
+ add_subdirectory( src/dvdnav)
+ add_subdirectory( src/core )
+@@ -350,7 +351,7 @@ kde4_add_executable(k9xineplayer ${k9xin
+ 
+  MESSAGE(STATUS "Found library solid: ${KDE4_SOLID_LIBS}")
+ 
+-target_link_libraries(k9copy k9copylib ${KDE4_KDEUI_LIBS} ${PHONON_LIBRARY} ${KDE4_SOLID_LIBS})
++target_link_libraries(k9copy k9copylib ${KDE4_KDEUI_LIBS} ${PHONON_LIBRARY} ${KDE4_SOLID_LIBS} ${LIBAV_LIBRARIES})
+ target_link_libraries(k9play k9copylib ${KDE4_KDEUI_LIBS}  )
+ target_link_libraries(k9xineplayer ${KDE4_KDEUI_LIBS} ${XINE_LIBRARY} ${X11_X11_LIB} )
+ 
+--- a/src/import/k9avidecode.cpp
++++ b/src/import/k9avidecode.cpp
+@@ -10,17 +10,12 @@
+ //
+ //
+ #include "k9avidecode.h"
+-#include <avcodec.h>
+ #include <qimage.h>
+ #include <dlfcn.h>
+ #include "k9common.h"
+ 
+ #ifdef HAVE_SWSCALE
+-
+-#include "swscale.h"
+-
+ static int sws_flags = SWS_BICUBIC;
+-
+ #endif
+ 
+ void av_free_packet_internal(AVPacket *pkt)
+@@ -35,64 +30,9 @@ void av_free_packet_internal(AVPacket *p
+ 
+ k9AviDecode::k9AviDecode(QObject *parent, const char *)
+         : QObject(parent) {
+-    CodecHandle=0;
+-    FormatHandle=0;
+-    SwscaleHandle=0;
+-    glibref=0;
+-    if (glibref==0) {
+-        CodecHandle=dlopen("libavcodec.so",RTLD_LAZY ); //| RTLD_GLOBAL
+-        FormatHandle=dlopen("libavformat.so",RTLD_LAZY);
+-#ifdef HAVE_SWSCALE
+-	SwscaleHandle=dlopen("libswscale.so",RTLD_LAZY);
+-#endif
+-    }
+     m_error="";
+     QStringList errs;
+-    if (!CodecHandle) {
+-        errs << i18n("Cannot open then library %1").arg("libavcodec");
+-    }
+-    if (!FormatHandle ) {
+-        errs << i18n("Cannot open then library %1").arg("libavformat");
+-    }
+-#ifdef HAVE_SWSCALE
+-    if (!SwscaleHandle) {
+-        errs << i18n("Cannot open then library %1").arg("libswscale");
+-    }
+-#endif
+ 
+-    av_register_all = (av_register_all_t)dlsym(FormatHandle,"av_register_all");
+-    av_open_input_file = (av_open_input_file_t)dlsym(FormatHandle,"av_open_input_file");
+-    av_find_stream_info = (av_find_stream_info_t)dlsym(FormatHandle,"av_find_stream_info");
+-    avcodec_find_decoder =(avcodec_find_decoder_t) dlsym(CodecHandle,"avcodec_find_decoder");
+-    avcodec_open = (avcodec_open_t)dlsym(CodecHandle,"avcodec_open");
+-    avcodec_alloc_frame = (avcodec_alloc_frame_t)dlsym(CodecHandle,"avcodec_alloc_frame");
+-    avpicture_get_size = (avpicture_get_size_t)dlsym(CodecHandle,"avpicture_get_size");
+-    av_malloc = (av_malloc_t)dlsym(CodecHandle,"av_malloc");
+-    avpicture_fill = (avpicture_fill_t)dlsym(CodecHandle,"avpicture_fill");
+-    av_read_frame = (av_read_frame_t)dlsym(FormatHandle,"av_read_frame");
+-    avcodec_decode_video = (avcodec_decode_video_t)dlsym(CodecHandle,"avcodec_decode_video");
+-#ifndef HAVE_SWSCALE
+-    img_convert = (img_convert_t)dlsym(CodecHandle,"img_convert");
+-//if img_convert is null (deprecated in ffmpeg), we need libswscale
+-    if (!img_convert)
+-      errs << i18n("Cannot open then library %1").arg("libswscale");
+-#endif
+-    av_free = (av_free_t)dlsym(CodecHandle,"av_free");
+-    av_free_packet = (av_free_packet_t)dlsym(CodecHandle,"av_free_packet");
+-    if (av_free_packet==0)
+-         av_free_packet=av_free_packet_internal;
+-    avcodec_close = (avcodec_close_t)dlsym(FormatHandle,"avcodec_close");
+-    av_close_input_file = (av_close_input_file_t)dlsym(FormatHandle,"av_close_input_file");
+-    av_seek_frame=(av_seek_frame_t)dlsym(FormatHandle,"av_seek_frame");
+-    av_rescale_q=(av_rescale_q_t)dlsym(FormatHandle,"av_rescale_q");
+-    avcodec_flush_buffers=(avcodec_flush_buffers_t)dlsym(CodecHandle,"avcodec_flush_buffers");
+-#ifdef HAVE_SWSCALE
+-    sws_freeContext= (sws_freeContext_t)dlsym(SwscaleHandle,"sws_freeContext");
+-    sws_getContext=(sws_getContext_t)dlsym(SwscaleHandle,"sws_getContext");
+-    sws_scale= (sws_scale_t)dlsym(SwscaleHandle,"sws_scale");
+-#endif
+-    av_gettime=(av_gettime_t)dlsym(FormatHandle,"av_gettime");
+-    
+     if (errs.count() >0) {
+         m_error=errs.join("
");
+         k9Dialogs::error(m_error,"k9copy",QStringList());
+@@ -101,28 +41,12 @@ k9AviDecode::k9AviDecode(QObject *parent
+     
+     av_register_all();
+     m_opened=false;
+-
+-    glibref++;
+ }
+ 
+ 
+ k9AviDecode::~k9AviDecode() {
+     if (m_opened)
+         close();
+-    glibref--;
+-    if (glibref==0) {
+-	if (FormatHandle)
+-        	dlclose(FormatHandle);
+-	if (CodecHandle)
+-        	dlclose(CodecHandle);
+-#ifdef HAVE_SWSCALE
+-	if (SwscaleHandle)
+-        	dlclose(CodecHandle);
+-#endif
+-	FormatHandle=0;
+-	CodecHandle=0;
+-    }
+-
+ }
+ 
+ bool k9AviDecode::open(const QString & _fileName) {
+--- a/src/import/k9avidecode.h
++++ b/src/import/k9avidecode.h
+@@ -14,49 +14,24 @@
+ 
+ #include "k9common.h"
+ #include <qobject.h>
+-#include <avformat.h>
++
++extern "C" {
++#include <libavformat/avformat.h>
++}
++
+ #include <qimage.h>
+ #include <cstdlib>
+ #include <QObject>
+ #ifdef HAVE_SWSCALE
+-#include <swscale.h>
++extern "C" {
++#include <libswscale/swscale.h>
++}
+ #endif
+ /**
+ 	@author Jean-Michel PETIT <k9copy at free.fr>
+ */
+ 
+ 
+-//typedef dvd_file_t * (*DVDOpenFile_t) ( dvd_reader_t *, int, dvd_read_domain_t );
+-typedef void (*av_register_all_t) (void);
+-typedef int64_t (*av_gettime_t) (void);
+-typedef int (*av_open_input_file_t)(AVFormatContext **, const char *,AVInputFormat *,int, AVFormatParameters *);
+-typedef int (*av_find_stream_info_t)(AVFormatContext *);
+-typedef AVCodec* (*avcodec_find_decoder_t)(enum CodecID);
+-typedef int (*avcodec_open_t)(AVCodecContext *, AVCodec *);
+-typedef AVFrame * (*avcodec_alloc_frame_t)(void);
+-
+-typedef int (*avpicture_get_size_t)(int , int , int );
+-typedef void * (*av_malloc_t)(unsigned int );
+-typedef int (*avpicture_fill_t)(AVPicture *, uint8_t *,int , int , int);
+-typedef int (*av_read_frame_t)(AVFormatContext *, AVPacket *);
+-
+-typedef int (*avcodec_decode_video_t)(AVCodecContext *, AVFrame *,int *, uint8_t *, int );
+-typedef int (*img_convert_t)(AVPicture *, int , const AVPicture *, int ,int, int);
+-typedef void (*av_free_t)(void *);
+-typedef int (*avcodec_close_t)(AVCodecContext *);
+-typedef void (*av_close_input_file_t)(AVFormatContext *);
+-typedef int (*av_seek_frame_t)(AVFormatContext *,int,int64_t timestamp,int flags); 		typedef int64_t (*av_rescale_q_t)(int64_t , AVRational , AVRational )	;
+-typedef void (*avcodec_flush_buffers_t)(AVCodecContext *);
+-typedef void (*av_free_packet_t)(AVPacket *);
+-
+-#ifdef HAVE_SWSCALE
+-typedef void (*sws_freeContext_t)(struct SwsContext *swsContext);
+-typedef struct SwsContext* (*sws_getContext_t)(int srcW, int srcH, int srcFormat, int dstW, int dstH, int dstFormat, int flags,
+-                                  SwsFilter *srcFilter, SwsFilter *dstFilter, double *param);
+-typedef int (*sws_scale_t)(struct SwsContext *context, uint8_t* src[], int srcStride[], int srcSliceY,int srcSliceH, uint8_t* dst[], int dstStride[]);
+-#endif
+-
+-
+ class k9AviDecode : public QObject
+ {
+ Q_OBJECT
+@@ -76,36 +51,6 @@ public:
+ 	QString getError() const;
+ 	
+ private:
+-    av_register_all_t av_register_all;
+-    av_open_input_file_t av_open_input_file;
+-    av_find_stream_info_t av_find_stream_info;
+-    avcodec_find_decoder_t avcodec_find_decoder;
+-    avcodec_open_t avcodec_open;
+-    avcodec_alloc_frame_t avcodec_alloc_frame;
+-    av_seek_frame_t av_seek_frame;
+-    avpicture_get_size_t avpicture_get_size;
+-    av_malloc_t av_malloc;
+-    avpicture_fill_t avpicture_fill;
+-    av_read_frame_t av_read_frame;
+-    avcodec_decode_video_t avcodec_decode_video;
+-    img_convert_t img_convert;
+-    av_free_t av_free;
+-    avcodec_close_t avcodec_close;
+-    av_close_input_file_t av_close_input_file;
+-    av_rescale_q_t av_rescale_q;
+-    av_gettime_t av_gettime;
+-    avcodec_flush_buffers_t avcodec_flush_buffers;
+-    av_free_packet_t av_free_packet;
+-#ifdef HAVE_SWSCALE
+-    sws_freeContext_t sws_freeContext;
+-    sws_getContext_t sws_getContext;
+-    sws_scale_t sws_scale;
+-#endif
+-    void *CodecHandle;
+-    void *FormatHandle;
+-    void *SwscaleHandle;
+-    int glibref;
+-
+     AVFormatContext *m_FormatCtx;
+     AVCodecContext *m_CodecCtx;
+     AVCodec *m_Codec;
diff --git a/debian/patches/rename_deprecated_var.patch b/debian/patches/rename_deprecated_var.patch
new file mode 100644
index 0000000..cc1a612
--- /dev/null
+++ b/debian/patches/rename_deprecated_var.patch
@@ -0,0 +1,12 @@
+CODEC_TYPE_VIDEO is no longer defined, use AVMEDIA_TYPE_VIDEO instead.
+--- a/src/import/k9avidecode.cpp
++++ b/src/import/k9avidecode.cpp
+@@ -145,7 +145,7 @@
+ // Find the first video stream
+     m_videoStream=-1;
+     for (i=0; i<m_FormatCtx->nb_streams; i++)
+-        if (m_FormatCtx->streams[i]->codec->codec_type==CODEC_TYPE_VIDEO) {
++        if (m_FormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO) {
+             m_videoStream=i;
+             break;
+         }
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..8e93c3b
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,6 @@
+fix-deprecated-func.patch
+fix-ftbfs-kfreebsd.patch
+german-spelling-error.patch
+fix-desktop-files.patch
+rename_deprecated_var.patch
+link_libav_directly.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..4db4bbf
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,10 @@
+#!/usr/bin/make -f
+
+%:
+	dh $@ --parallel --with kde
+
+override_dh_strip:
+	dh_strip --dbg-package=k9copy-dbg
+
+override_dh_auto_install:
+	dh_auto_install --destdir=debian/k9copy
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/local-options b/debian/source/local-options
new file mode 100644
index 0000000..4aceb10
--- /dev/null
+++ b/debian/source/local-options
@@ -0,0 +1 @@
+unapply-patches
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..04c6f05
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,2 @@
+version=3
+http://sf.net/k9copy/k9copy-(.*)\.tar\.gz debian uupdate

-- 
k9copy packaging



More information about the pkg-kde-commits mailing list