Sync from SUSE:SLFO:Main libdv revision 9f573eefb6c60fbaf76b83e8775543be

This commit is contained in:
Adrian Schröter 2024-05-03 14:53:16 +02:00
commit 99c5b371f1
15 changed files with 2512 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>playdv</package>
</multibuild>

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libdv4

File diff suppressed because it is too large Load Diff

BIN
libdv-1.0.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

71
libdv-endian.patch Normal file
View File

@ -0,0 +1,71 @@
--- libdv-1.0.0.orig/libdv/bitstream.h
+++ libdv-1.0.0/libdv/bitstream.h
@@ -42,16 +42,6 @@
extern "C" {
#endif
-//My new and improved vego-matic endian swapping routine
-//(stolen from the kernel)
-#if (BYTE_ORDER == BIG_ENDIAN)
-#define swab32(x) (x)
-#else // LITTLE_ENDIAN
-# define swab32(x)\
-((((uint8_t*)&x)[0] << 24) | (((uint8_t*)&x)[1] << 16) | \
- (((uint8_t*)&x)[2] << 8) | (((uint8_t*)&x)[3]))
-#endif // LITTLE_ENDIAN
-
bitstream_t *_dv_bitstream_init();
void _dv_bitstream_set_fill_func(bitstream_t *bs,uint32_t (*next_function) (uint8_t **,void *),void *priv);
void _dv_bitstream_next_buffer(bitstream_t * bs);
@@ -66,7 +56,7 @@ static void bitstream_next_word(bitstrea
if ((bs->buflen - bs->bufoffset) >=4 ) {
bs->next_word = *(uint32_t *)(bs->buf + bs->bufoffset);
- bs->next_word = swab32(bs->next_word);
+ bs->next_word = htobe32(bs->next_word);
bs->next_bits = 32;
// fprintf(stderr,"next_word is %08x at %d\n",bs->next_word,bs->bufoffset);
bs->bufoffset += 4;
@@ -195,10 +185,10 @@ static inline void bitstream_flush_large
static inline void bitstream_seek_set(bitstream_t *bs, uint32_t offset) {
bs->bufoffset = ((offset & (~0x1f)) >> 5) << 2;
bs->current_word = *(uint32_t *)(bs->buf + bs->bufoffset);
- bs->current_word = swab32(bs->current_word);
+ bs->current_word = htobe32(bs->current_word);
bs->bufoffset += 4;
bs->next_word = *(uint32_t *)(bs->buf + bs->bufoffset);
- bs->next_word = swab32(bs->next_word);
+ bs->next_word = htobe32(bs->next_word);
bs->bufoffset += 4;
bs->bits_left = 32 - (offset & 0x1f);
bs->next_bits = 32;
--- libdv-1.0.0.orig/libdv/YUY2.c
+++ libdv-1.0.0/libdv/YUY2.c
@@ -275,7 +275,7 @@ dv_mb420_YUY2 (dv_macroblock_t *mb, uint
cb_frame++;
cr_frame++;
-#if (BYTE_ORDER == LITTLE_ENDIAN)
+#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
*pwyuv0++ = ylut[CLAMP(*(Ytmp0 + 0), -256, 511)];
*pwyuv0++ = cb;
*pwyuv0++ = ylut[CLAMP(*(Ytmp0 + 1), -256, 511)];
--- libdv-1.0.0.orig/libdv/dv_types.h
+++ libdv-1.0.0/libdv/dv_types.h
@@ -253,11 +253,13 @@ typedef struct {
counter examples. If we do find out there is one, we'll have to
fix it... */
-#if (BYTE_ORDER == LITTLE_ENDIAN)
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#define LITTLE_ENDIAN_BITFIELD
-#else
+#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
#define BIG_ENDIAN_BITFIELD
-#endif /* (BYTE_ORDER == LITTLE_ENDIAN) */
+#else
+#error "cannot determine endianness"
+#endif
typedef struct {
#if defined(LITTLE_ENDIAN_BITFIELD)

22
libdv-filesizecheck.patch Normal file
View File

@ -0,0 +1,22 @@
The patch checks if the file is smaller than the smallest
video frame size, and if it's smaller, there can't be a
valid video file in it, hence, the file is truncated
and there is nothing to play in it.
See https://bugzilla.novell.com/show_bug.cgi?id=157631
for further information.
--- libdv/playdv/playdv.c 2006/03/21 11:12:19 1.1
+++ libdv/playdv/playdv.c 2006/03/21 11:33:05
@@ -344,6 +344,11 @@
if (!dv_player->no_mmap) {
if(fstat(fd, &dv_player->statbuf)) goto fstatfail;
eof = dv_player->statbuf.st_size;
+ if (eof < sizeof(dv_header_t) + 120000) { /* 1st frame incomplete */
+ fprintf(stderr, "playdv: File size of %d bytes "
+ "smaller than frame size, nothing to play!\n", eof);
+ exit(-1);
+ }
}
dv_player->decoder->quality = dv_player->decoder->video->quality;

View File

@ -0,0 +1,75 @@
---
Makefile.am | 1 +
configure.ac | 16 +++++++---------
playdv/Makefile.am | 2 +-
3 files changed, 9 insertions(+), 10 deletions(-)
Index: libdv-1.0.0/Makefile.am
===================================================================
--- libdv-1.0.0.orig/Makefile.am
+++ libdv-1.0.0/Makefile.am
@@ -1,3 +1,4 @@
+ACLOCAL_AMFLAGS = -I m4
if HAVE_GTK
gtk_subdirs = playdv
else
Index: libdv-1.0.0/configure.ac
===================================================================
--- libdv-1.0.0.orig/configure.ac
+++ libdv-1.0.0/configure.ac
@@ -1,20 +1,22 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(libdv/parse.c)
+AC_INIT
+AC_CONFIG_SRCDIR([libdv/parse.c])
dnl AC_CONFIG_AUX_DIR(config)
-AM_CONFIG_HEADER(config.h)
-
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
RPM_RELEASE=1
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE(libdv, 1.0.0)
AM_MAINTAINER_MODE
-AC_LIBTOOL_PICMODE(no)
dnl Checks for programs.
AC_SUBST(CFLAGS)
-AC_PROG_CC
+AC_PROG_CC_STDC
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
AM_PROG_AS
AS="${CC}" # stupid automake bug
@@ -25,9 +27,6 @@ if test "$GCC" = "yes"; then
CFLAGS="$CFLAGS -Wall"
fi
-AH_TEMPLATE([_GNU_SOURCE],
- [Define to enable GNU extensions of glibc, notably large file support])
-
AH_TEMPLATE([YUV_420_USE_YV12],
[Define to 1 to use planar YUV format for 420 blocks in IEC PAL])
@@ -49,7 +48,6 @@ AH_TEMPLATE([HAVE_GTK],
AH_TEMPLATE([HAVE_LIBXV],
[Define if you have the `Xv' library (-lXv).])
-AC_DEFINE(_GNU_SOURCE)
AC_PROG_INSTALL
AC_PROG_LIBTOOL
Index: libdv-1.0.0/playdv/Makefile.am
===================================================================
--- libdv-1.0.0.orig/playdv/Makefile.am
+++ libdv-1.0.0/playdv/Makefile.am
@@ -15,4 +15,4 @@ bin_PROGRAMS= playdv
noinst_HEADERS= display.h oss.h
playdv_SOURCES= playdv.c display.c display.h oss.c
-playdv_LDADD= $(SDL_LIBS) $(GTK_LIBS) $(XV_LIB) ../libdv/libdv.la $(POPT_LIB)
+playdv_LDADD= $(SDL_LIBS) $(GTK_LIBS) $(XV_LIB) ../libdv/libdv.la $(POPT_LIB) -lX11 -lXext

24
libdv-gtk2.patch Normal file
View File

@ -0,0 +1,24 @@
diff -urNad libdv-1.0.0~/configure libdv-1.0.0/configure
--- libdv-1.0.0~/configure 2006-09-25 16:11:47.000000000 -0400
+++ libdv-1.0.0/configure 2009-03-24 14:34:21.000000000 -0400
@@ -20082,7 +20082,7 @@
have_gtk="false"
if $use_gtk; then
- REQUIRES='glib >= 1.2.4 gtk+ >= 1.2.4'
+ REQUIRES='glib-2.0 >= 2.0.0 gtk+-2.0 >= 2.0.0'
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
diff -urNad libdv-1.0.0~/configure.ac libdv-1.0.0/configure.ac
--- libdv-1.0.0~/configure.ac 2006-08-06 17:38:30.000000000 -0400
+++ libdv-1.0.0/configure.ac 2009-03-24 14:34:45.000000000 -0400
@@ -162,7 +162,7 @@
dnl Checks for libraries.
have_gtk="false"
if $use_gtk; then
- REQUIRES='glib >= 1.2.4 gtk+ >= 1.2.4'
+ REQUIRES='glib-2.0 >= 2.0.0 gtk+-2.0 >= 2.0.0'
PKG_CHECK_MODULES(GTK,$REQUIRES,have_gtk="true",have_gtk="false")
AC_DEFINE(HAVE_GTK)
fi

48
libdv-v4l-2.6.38.patch Normal file
View File

@ -0,0 +1,48 @@
diff -ur libdv-1.0.0.orig/config.h.in libdv-1.0.0/config.h.in
--- libdv-1.0.0.orig/config.h.in 2011-07-08 16:39:36.355076949 +0200
+++ libdv-1.0.0/config.h.in 2011-07-08 16:40:04.411076945 +0200
@@ -39,8 +39,8 @@
/* Define if you have the `Xv' library (-lXv). */
#undef HAVE_LIBXV
-/* Define to 1 if you have the <linux/videodev.h> header file. */
-#undef HAVE_LINUX_VIDEODEV_H
+/* Define to 1 if you have the <libv4l1-videodev.h> header file. */
+#undef HAVE_LIBV4L1_VIDEODEV_H
/* Define to 1 if you have the <machine/endian.h> header file. */
#undef HAVE_MACHINE_ENDIAN_H
diff -ur libdv-1.0.0.orig/configure.ac libdv-1.0.0/configure.ac
--- libdv-1.0.0.orig/configure.ac 2011-07-08 16:39:36.354076949 +0200
+++ libdv-1.0.0/configure.ac 2011-07-08 16:40:20.147076945 +0200
@@ -230,7 +230,7 @@
dnl Checks for header files.
AC_PATH_X
AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h linux/videodev.h sys/soundcard.h \
+AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h libv4l1-videodev.h sys/soundcard.h \
endian.h machine/endian.h inttypes.h)
dnl Checks for typedefs, structures, and compiler characteristics.
diff -ur libdv-1.0.0.orig/libdv/enc_input.c libdv-1.0.0/libdv/enc_input.c
--- libdv-1.0.0.orig/libdv/enc_input.c 2011-07-08 16:39:36.357076949 +0200
+++ libdv-1.0.0/libdv/enc_input.c 2011-07-08 16:44:24.458076915 +0200
@@ -42,7 +42,7 @@
#include <math.h>
#endif
-#if HAVE_LINUX_VIDEODEV_H
+#if HAVE_LIBV4L1_VIDEODEV_H
#define HAVE_DEV_VIDEO 1
#endif
@@ -50,7 +50,8 @@
#define _DEVICE_H_
#define _LINUX_TIME_H
#include <sys/types.h>
-#include <linux/videodev.h>
+#include <libv4l1-videodev.h>
+#include <linux/videodev2.h>
#include <sys/time.h>
#include <unistd.h>
#include <fcntl.h>

165
libdv-visibility.patch Normal file
View File

@ -0,0 +1,165 @@
--- libdv-1.0.0.orig/libdv/Makefile.am
+++ libdv-1.0.0/libdv/Makefile.am
@@ -3,10 +3,13 @@ MAINTAINERCLEANFILES = Makefile.in
CLEANFILES = asmoff.h
-LIBTOOL = $(SHELL) $(top_builddir)/libtool --silent
+AM_CFLAGS = -fvisibility=hidden
+#LIBTOOL = $(SHELL) $(top_builddir)/libtool --silent
lib_LTLIBRARIES= libdv.la
+noinst_LTLIBRARIES = libdv-internal.la
+
if HOST_X86
GASMOFF=gasmoff
endif # HOST_X86
@@ -59,16 +62,18 @@ libdv_la_SOURCES= dv.c dct.c idct_248.c
encode.c headers.c enc_input.c enc_audio_input.c enc_output.c \
$(libdv_la_ASMS)
-libdv_la_LDFLAGS = -version-info 4:3:0
+libdv_la_LDFLAGS = -no-undefined -version-info 4:3:0
+
+libdv_internal_la_SOURCES = $(libdv_la_SOURCES)
dovlc_SOURCES= dovlc.c
-dovlc_LDADD= libdv.la
+dovlc_LDADD= libdv.la libdv-internal.la
testvlc_SOURCES= testvlc.c
-testvlc_LDADD=libdv.la
+testvlc_LDADD=libdv.la libdv-internal.la
testbitstream_SOURCES= testbitstream.c bitstream.h
-testbitstream_LDADD=libdv.la
+testbitstream_LDADD=libdv.la libdv-internal.la
recode_SOURCES=recode.c
recode_LDADD=libdv.la
--- libdv-1.0.0.orig/libdv/dv.h
+++ libdv-1.0.0/libdv/dv.h
@@ -43,7 +43,7 @@
#include <stdio.h>
#include <inttypes.h>
#include <time.h>
-
+#pragma GCC visibility push(default)
#ifdef __cplusplus
extern "C" {
#endif
@@ -154,7 +154,7 @@ extern int dv_get_num_samples (dv_decode
#ifdef __cplusplus
}
#endif
-
+#pragma GCC visibility pop
#endif // DV_H
/*@}*/
--- libdv-1.0.0.orig/libdv/gasmoff.c
+++ libdv-1.0.0/libdv/gasmoff.c
@@ -25,9 +25,7 @@
#include "dv_types.h"
#include <stdio.h>
-
-#define offsetof(S, M) \
- ((int)&(((S*)NULL)->M))
+#include <stddef.h>
#define declare(S, M) \
printf("#define %-40s %d\n", #S "_" #M, offsetof(S, M))
--- libdv-1.0.0.orig/libdv/headers.c
+++ libdv-1.0.0/libdv/headers.c
@@ -31,6 +31,7 @@
#include <string.h>
#include <inttypes.h>
+#include "dv.h"
#include "headers.h"
static void write_header_block(unsigned char* target, int ds, int isPAL)
--- libdv-1.0.0.orig/encodedv/Makefile.am
+++ libdv-1.0.0/encodedv/Makefile.am
@@ -5,22 +5,22 @@ EXTRA_DIST = $(man_MANS)
MAINTAINERCLEANFILES = Makefile.in $(AUX_DIST)
-LIBTOOL = $(SHELL) $(top_builddir)/libtool --silent
-
CLEANFILES =
+AM_CFLAGS = -fvisibility=hidden
+
bin_PROGRAMS= encodedv dvconnect dubdv
noinst_PROGRAMS= fix_headers scan_packet_headers steal_header ppmqscale dvavi
encodedv_SOURCES= encodedv.c
-encodedv_LDADD= ../libdv/libdv.la $(POPT_LIB)
+encodedv_LDADD= ../libdv/libdv.la ../libdv/libdv-internal.la $(POPT_LIB)
dubdv_SOURCES = insert_audio.c
-dubdv_LDADD= ../libdv/libdv.la $(POPT_LIB)
+dubdv_LDADD= ../libdv/libdv.la ../libdv/libdv-internal.la $(POPT_LIB)
fix_headers_SOURCES = fix_headers.c
-fix_headers_LDADD= ../libdv/libdv.la
+fix_headers_LDADD= ../libdv/libdv.la ../libdv/libdv-internal.la
scan_packet_headers_SOURCES = scan_packet_headers.c
@@ -32,4 +32,4 @@ dvconnect_SOURCES = dvconnect.c
dvconnect_LDADD = $(PTHREAD_LIBS) $(POPT_LIB)
dvavi_SOURCES = dvavi.c
-dvavi_LDADD= ../libdv/libdv.la
+dvavi_LDADD= ../libdv/libdv.la ../libdv/libdv-internal.la
--- libdv-1.0.0.orig/playdv/Makefile.am
+++ libdv-1.0.0/playdv/Makefile.am
@@ -6,13 +6,11 @@ MAINTAINERCLEANFILES = Makefile.in
CLEANFILES =
-LIBTOOL = $(SHELL) $(top_builddir)/libtool --silent
-
-AM_CFLAGS = $(SDL_CFLAGS) $(GTK_CFLAGS)
+AM_CFLAGS = -fvisibility=hidden $(SDL_CFLAGS) $(GTK_CFLAGS)
bin_PROGRAMS= playdv
noinst_HEADERS= display.h oss.h
playdv_SOURCES= playdv.c display.c display.h oss.c
-playdv_LDADD= $(SDL_LIBS) $(GTK_LIBS) $(XV_LIB) ../libdv/libdv.la $(POPT_LIB) -lX11 -lXext
+playdv_LDADD= $(SDL_LIBS) $(GTK_LIBS) $(XV_LIB) ../libdv/libdv.la ../libdv/libdv-internal.la $(POPT_LIB) -lX11 -lXext
--- libdv-1.0.0.orig/libdv/vlc_x86.S
+++ libdv-1.0.0/libdv/vlc_x86.S
@@ -88,6 +88,7 @@ dv_decode_vlc:
.align 4
.globl __dv_decode_vlc
.type __dv_decode_vlc,@function
+ .hidden __dv_decode_vlc
__dv_decode_vlc:
pushl %ebx
pushl %ebp
--- libdv-1.0.0.orig/libdv/vlc_x86_64.S
+++ libdv-1.0.0/libdv/vlc_x86_64.S
@@ -5,6 +5,7 @@
.align 4
.globl dv_decode_vlc
.type dv_decode_vlc,@function
+ .hidden dv_decode_vlc
dv_decode_vlc:
push %rbx
push %rbp
@@ -101,6 +102,7 @@ void __dv_decode_vlc(int bits, dv_vlc_t
.align 4
.globl __dv_decode_vlc
.type __dv_decode_vlc,@function
+ .hidden __dv_decode_vlc
__dv_decode_vlc:
push %rbx
push %rbp

232
libdv.changes Normal file
View File

@ -0,0 +1,232 @@
-------------------------------------------------------------------
Tue May 17 06:59:27 UTC 2022 - Dominique Leuenberger <dimstar@opensuse.org>
- Replace SDL-devel BuildRequires with pkgconfig(sdl): allow to use
sdl12_compat as an alternative.
-------------------------------------------------------------------
Mon Jun 7 11:57:22 UTC 2021 - Jan Engelhardt <jengelh@inai.de>
- Drop --with-pic (no effect with --disable-static)
- Upgrade old rpm constructs (rediffs libdv-fix-no-add-needed.patch
as p1)
-------------------------------------------------------------------
Mon Feb 3 13:09:39 UTC 2020 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Cleanup spec file, remove obsolete conditionals.
- Build playdv as a separate package, removes X11, SDL1 and gtk2
build dependencies from the library.
-------------------------------------------------------------------
Fri Mar 6 17:30:12 UTC 2015 - mpluskal@suse.com
- Cleanup spec file with spec-cleaner
- User url for source
-------------------------------------------------------------------
Tue Jan 27 19:59:19 UTC 2015 - crrodriguez@opensuse.org
- libdv-endian.patch : Fix endiannnes tests to rely on the
compiler instead on the precence of C library definitions
This is more important for dv_types.h public header because
BYTE_ORDER is only defined when USE_MISC is.
- libdv-visibility.patch: Export only the public API (dv.h)
private symbols are now hidden so the unprefixed ones
do not name-clash with other components of the system.
-------------------------------------------------------------------
Mon Apr 22 17:42:04 UTC 2013 - dimstar@opensuse.org
- Add libXv-devel BuildRequires: this used to be pulled in by SDL,
but those dependencies were cleaned up.
-------------------------------------------------------------------
Sun Nov 13 09:15:36 UTC 2011 - coolo@suse.com
- add libtool as explicit buildrequire to avoid implicit dependency from prjconf
-------------------------------------------------------------------
Sat Sep 3 20:32:28 UTC 2011 - crrodriguez@opensuse.org
- Fix build with no-add-needed
-------------------------------------------------------------------
Fri Jul 8 14:41:23 UTC 2011 - idonmez@novell.com
- Apply libdv-v4l-2.6.38.patch on openSUSE >= 12.1 to enable v4l
-------------------------------------------------------------------
Fri Jun 4 15:47:33 UTC 2010 - cristian.rodriguez@opensuse.org
- make it work with selinux enforcing "execmod" (patch by PaxTeam)
-------------------------------------------------------------------
Sat Jan 2 17:03:14 CET 2010 - vuntz@opensuse.org
- Add trivial libdv-gtk2.patch to use GTK+ 2 instead of GTK+ 1. The
patch comes from Debian.
- Change gtk1-compat-devel BuildRequires to gtk2-devel.
- Remove AutoReqProv: it's default now.
- Use makeinstall macro.
- Use includedir instead of /usr/include.
-------------------------------------------------------------------
Fri Dec 18 17:24:17 CET 2009 - jengelh@medozas.de
- add baselibs.conf as a source
-------------------------------------------------------------------
Tue Jan 13 20:18:26 CET 2009 - crrodriguez@suse.de
- remove static libraries and "la" files
-------------------------------------------------------------------
Wed Jan 7 12:34:56 CET 2009 - olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
-------------------------------------------------------------------
Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de
- added baselibs.conf file to build xxbit packages
for multilib support
-------------------------------------------------------------------
Mon Aug 6 16:39:35 CEST 2007 - olh@suse.de
- update to version 1.0.0
split libdv4 package which contains only libraries
remove unused update-desktop-files
build parallel
-------------------------------------------------------------------
Wed Sep 20 16:26:16 CEST 2006 - anosek@suse.cz
- fixed compiler warnings [#136823] (warnings.patch)
-------------------------------------------------------------------
Tue Mar 21 17:18:24 CET 2006 - bk@suse.de
- Fix playdv abort with Bus Error on empty file (#157631)
-------------------------------------------------------------------
Thu Mar 9 13:44:05 CET 2006 - bk@suse.de
- Fix reorder_block() on non-x86 (Brent Casavant, SGI) (#155889),
restores the older, known good non-x86 loop (no change on x86*)
-------------------------------------------------------------------
Mon Feb 13 19:00:09 CET 2006 - bk@suse.de
- make use of MMX and x86 optimsations on x86_64, fixes playback
of video, 90% of video frames are dropped without them (~3fps)
- fix memory leak in DV encoder and fix segfault in dvplay
- omit massive printout of warnings which cause interrupted play
- do not require execution stack in assember functions
-------------------------------------------------------------------
Sun Jan 29 17:18:14 CET 2006 - aj@suse.de
- Fix BuildRequires.
-------------------------------------------------------------------
Wed Jan 25 21:37:25 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
-------------------------------------------------------------------
Wed Oct 26 13:37:00 CEST 2005 - rguenther@suse.de
- put some meaningful constraints on the asms in mmx.h to
allow compiling with gcc 4.1 on i386.
-------------------------------------------------------------------
Fri Oct 21 14:20:00 CEST 2005 - kraxel@suse.de
- splitted away -devel package.
-------------------------------------------------------------------
Mon Sep 26 16:31:46 CEST 2005 - sbrabec@suse.cz
- Force gtk2 using gtk1-compat-devel.
-------------------------------------------------------------------
Mon Jan 24 16:10:37 CET 2005 - kraxel@suse.de
- update to version 0.104
-------------------------------------------------------------------
Fri Aug 20 12:06:42 CEST 2004 - kraxel@suse.de
- update to version 0.103
-------------------------------------------------------------------
Tue Apr 20 12:38:33 CEST 2004 - sf@suse.de
- update to version 0.102
-------------------------------------------------------------------
Wed Feb 11 11:45:30 CET 2004 - kraxel@suse.de
- update to version 0.101.
- file list updates.
-------------------------------------------------------------------
Sat Jan 10 18:22:40 CET 2004 - adrian@suse.de
- add %defattr and %run_ldconfig
-------------------------------------------------------------------
Mon May 26 14:28:48 CEST 2003 - kraxel@suse.de
- added dvconnect to the file list.
-------------------------------------------------------------------
Thu May 22 15:37:27 CEST 2003 - coolo@suse.de
- use BuildRoot (dvconnect removed to build on beta)
-------------------------------------------------------------------
Tue Jan 14 15:31:38 CET 2003 - kraxel@suse.de
- updated to version 0.99
-------------------------------------------------------------------
Thu Aug 1 13:50:53 CEST 2002 - uli@suse.de
- update -> 0.98
-------------------------------------------------------------------
Fri Jul 5 10:35:36 CEST 2002 - kukuk@suse.de
- Use %ix86 macro
-------------------------------------------------------------------
Wed May 15 15:33:56 CEST 2002 - ro@suse.de
- fix location for pkgconfig file in filelist
-------------------------------------------------------------------
Mon Apr 22 15:21:24 CEST 2002 - uli@suse.de
- update -> 0.9.5 (bugfixes, enhancements, overhaul of encoder api
options relating to YUV mismatches, fixes annoying mmx init bug)
-------------------------------------------------------------------
Tue Apr 9 16:10:52 CEST 2002 - uli@suse.de
- replaced cpuid mmx detection method with parsing of /proc/cpuinfo
(should be segfault-proof...)
- enabled SDL support
-------------------------------------------------------------------
Tue Apr 2 16:59:26 CEST 2002 - ray@suse.de
- force MMX-support on ix86 platform
-------------------------------------------------------------------
Tue Jan 22 12:42:51 CET 2002 - uli@suse.de
- initial package

View File

@ -0,0 +1,39 @@
This patch simply restores the older reorder_block() inner loop
-------------------------------------------------------------------
https://bugzilla.novell.com/show_bug.cgi?id=155889
Brent Casavant <bcasavan@sgi.com>:
I submitted the following patch to libdv-dev@lists.sourceforge.net, and it is
currently pending acceptance.
Subject: [libdv-dev] [PATCH] Fix reorder_block() zigzag on non-x86
The reorder_block() zigzag behaves incorrectly in the !ARCH_X86 &&
!ARCH_X86_64 case. The current code fails to take into account the
effects of _dv_prepare_reorder_tables(), which changes the indexes
contained in the reorder_88[] and reorder_248[] arrays.
---
Restore older, known good, reorder_block() inner loop.
encode.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff -ru libdv-0.104-orig/libdv/encode.c libdv-0.104-fixed/libdv/encode.c
--- libdv-0.104-orig/libdv/encode.c 2004-11-16 21:36:30.000000000 -0600
+++ libdv-0.104-fixed/libdv/encode.c 2006-03-07 14:07:22.000000000 -0600
@@ -512,10 +512,9 @@
_dv_reorder_block_mmx_x86_64(bl->coeffs, reorder);
emms();
#else
- for (i = 0; i < 64; i++) {
- // *(unsigned short*) ((char*) zigzag + reorder[i])=bl->coeffs[i];
- zigzag[reorder[i] - 1] = bl->coeffs[i];
- }
+ for (i = 0; i < 64; i++)
+ *(unsigned short*) ((char*) zigzag + reorder[i])=bl->coeffs[i];
+
memcpy(bl->coeffs, zigzag, 64 * sizeof(dv_coeff_t));
#endif
}

View File

@ -0,0 +1,32 @@
# --- libdv-2006-01-15/ChangeLog 2006-01-15 22:23:15.000000000 +0100
# +++ libdv-2006-01-15-bk/ChangeLog 2006-02-13 20:36:58.000000000 +0100
# @@ -1,3 +1,7 @@
# +2006-02-13 Bernhard Kaindl <bk@suse.de>
# + * audio.c: reduced excessive warning messages which caused
# + interrupted play on many streams due to excessive output
# +
# 2006-01-15 Dan Dennedy <dan@dennedy.org>
# * encode.c: apply patch from Burkhard Plaum to use gcc
# destructor attribute to invoke dv_cleanup() when unloading
--- libdv-2006-01-15/libdv/audio.c 2006-02-13 18:45:35.000000000 +0100
+++ libdv-2006-01-15-bk/libdv/audio.c 2006-02-13 20:35:21.000000000 +0100
@@ -613,7 +613,7 @@ dv_decode_audio_block(dv_audio_t *dv_aud
* check if some or all samples in block failed
*/
if (full_failure) {
- if (dv_audio -> error_log) {
+ if (dv_audio -> error_log && full_failure != 1) {
if (dv_get_timestamp (dv_audio -> dv_decoder, err_msg1) &&
dv_get_recording_datetime (dv_audio -> dv_decoder, err_msg2)) {
fprintf (dv_audio -> error_log,
--- libdv-2006-01-15/libdv/dv.c 2004-10-20 05:49:24.000000000 +0200
+++ libdv-2006-01-15-bk/libdv/dv.c 2006-02-13 20:35:45.000000000 +0100
@@ -569,7 +569,7 @@ dv_decode_full_audio(dv_decoder_t *dv, c
} /* for */
if (dv -> audio -> sample_failure) {
- if (dv -> audio -> error_log) {
+ if (dv -> audio -> error_log && dv -> audio -> block_failure) {
fprintf (dv -> audio -> error_log,
"# audio block/sample failure for %d blocks, %d samples of %d\n",
dv -> audio -> block_failure,

144
libdv.spec Normal file
View File

@ -0,0 +1,144 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "playdv"
%bcond_without playdv
%define tools_description playdv sample application
%define psuffix -playdv
%else
%bcond_with playdv
%define tools_description encodedv, dubdv and dvconnect tools
%endif
%define sname libdv
Name: libdv%{?psuffix}
Version: 1.0.0
Release: 0
Summary: The Quasar DV Codec
License: GPL-2.0-or-later
Group: Development/Libraries/Other
URL: http://libdv.sourceforge.net/
Source: http://sourceforge.net/projects/libdv/files/libdv/%{version}/%{sname}-%{version}.tar.gz
Source2: baselibs.conf
# PATCH-FIX-UPSTREAM libdv-gtk2.patch vuntz@opensuse.org -- Patch from debian, to use GTK+ 2.x
Patch1: libdv-gtk2.patch
Patch2: libdv.omit-excessive-warnings.patch
Patch3: libdv.non_x86-reorder_block.patch
Patch4: libdv-filesizecheck.patch
Patch5: libdv-1.0.0-textrels-selinux.patch
Patch6: libdv-v4l-2.6.38.patch
Patch7: libdv-fix-no-add-needed.patch
Patch8: libdv-endian.patch
Patch9: libdv-visibility.patch
BuildRequires: libtool
BuildRequires: libv4l-devel >= 0.8.4
BuildRequires: pkg-config
BuildRequires: popt-devel
%if %{with playdv}
BuildRequires: gtk2-devel
BuildRequires: libXv-devel
BuildRequires: xorg-x11-libX11-devel
BuildRequires: xorg-x11-libXext-devel
BuildRequires: pkgconfig(sdl)
%endif
%description
The Quasar DV codec (libdv) is a software codec for DV video, the
encoding format used by most digital camcorders, typically those that
support the IEEE 1394 (FireWire or i.Link) interface. Libdv was
developed according to the official standards for DV video: IEC 61834
and SMPTE 314M.
This package contains the %{tools_description}.
%package -n libdv4
Summary: The Quasar DV Codec
Group: Development/Libraries/Other
%description -n libdv4
The Quasar DV codec (libdv) is a software codec for DV video, the
encoding format used by most digital camcorders, typically those that
support the IEEE 1394 (FireWire or i.Link) interface. Libdv was
developed according to the official standards for DV video: IEC 61834
and SMPTE 314M.
%package devel
Summary: The Quasar DV codec
Group: Development/Libraries/Other
Requires: libdv4 = %{version}
%description devel
The Quasar DV codec (libdv) is a software codec for DV video, the
encoding format used by most digital camcorders, typically those that
support the IEEE 1394 (a.k.a. FireWire or i.Link) interface. Libdv was
developed according to the official standards for DV video: IEC 61834
and SMPTE 314M.
%prep
%autosetup -p1 -n %{sname}-%{version}
%build
mkdir m4
%if %{without playdv}
# Dummy macro for ignored SDL, autoreconf fails otherwise
echo "AC_DEFUN([AM_PATH_SDL], [true])" >> m4/dummy_sdl.m4
%endif
autoreconf -fiv
export CFLAGS="${RPM_OPT_FLAGS/O2/O3} -fomit-frame-pointer -fPIC -DPIC"
export LDFLAGS="-pie"
%configure \
--disable-static \
%if %{with playdv}
--enable-sdl \
%else
--disable-sdl \
--disable-gtk \
%endif
%{nil}
make %{?_smp_mflags}
%install
%if "%{flavor}" == "playdv"
%make_install -C playdv
%else
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%endif
%post -n libdv4 -p /sbin/ldconfig
%postun -n libdv4 -p /sbin/ldconfig
%files
%{_bindir}/*
%doc %{_mandir}/man1/*.1.gz
%if "%{flavor}" != "playdv"
%files -n libdv4
%{_libdir}/libdv.so.*
%files devel
%{_includedir}/libdv
%{_libdir}/libdv.so
%{_libdir}/pkgconfig/libdv.pc
%endif
%changelog