Update lsdvd to 0.17. Changes:
* Ignore 'phantom' audio, subtitle tracks * Check for garbage in the program chains, which indicate that a track is non-existant, to work around additional copy protection * Fix displaying content type for audio tracks, subtitles * Fix pallete display of first entry * Fix include orders * Ignore read errors in titles that would not be displayed anyway * Fix the chapter count * Make sure the array size and the array limit used when initialising the palette size is the same. * Fix array printing. * Correct subsecond calculations. * Add sector information to the output format. * Clean up code to be closer to ANSI C and compile without warnings with more GCC compiler warnings.
This commit is contained in:
parent
7f428d8725
commit
121fe9c3ad
4 changed files with 8 additions and 129 deletions
|
@ -1,7 +1,6 @@
|
|||
# $NetBSD: Makefile,v 1.18 2014/10/09 14:06:43 wiz Exp $
|
||||
# $NetBSD: Makefile,v 1.19 2014/10/13 18:29:54 snj Exp $
|
||||
|
||||
DISTNAME= lsdvd-0.16
|
||||
PKGREVISION= 5
|
||||
DISTNAME= lsdvd-0.17
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=lsdvd/}
|
||||
DIST_SUBDIR= ${PKGNAME_NOREV}
|
||||
|
@ -9,14 +8,10 @@ DIST_SUBDIR= ${PKGNAME_NOREV}
|
|||
MAINTAINER= snj@NetBSD.org
|
||||
HOMEPAGE= http://sourceforge.net/projects/lsdvd/
|
||||
COMMENT= Application displaying the contents of DVDs
|
||||
LICENSE= gnu-gpl-v2
|
||||
|
||||
GNU_CONFIGURE= YES
|
||||
USE_TOOLS+= autoconf
|
||||
|
||||
BUILDLINK_API_DEPENDS.libdvdread+= libdvdread>=0.9.5nb1
|
||||
|
||||
pre-configure:
|
||||
cd ${WRKSRC}; autoconf
|
||||
USE_TOOLS+= pkg-config
|
||||
|
||||
.include "../../multimedia/libdvdread/buildlink3.mk"
|
||||
.include "../../mk/bsd.pkg.mk"
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
$NetBSD: distinfo,v 1.10 2009/08/23 15:06:36 wiz Exp $
|
||||
$NetBSD: distinfo,v 1.11 2014/10/13 18:29:54 snj Exp $
|
||||
|
||||
SHA1 (lsdvd-0.16/lsdvd-0.16.tar.gz) = d5c0d32bfb220807ebdc0bfbb17679e7294791f4
|
||||
RMD160 (lsdvd-0.16/lsdvd-0.16.tar.gz) = fcd0993aea6ad2203c8be019ec31ba7c8660ca25
|
||||
Size (lsdvd-0.16/lsdvd-0.16.tar.gz) = 100495 bytes
|
||||
SHA1 (patch-aa) = 41ac6688a47ca1f7f20d17c4fd3d2934eecd369c
|
||||
SHA1 (patch-ab) = 5e0ecd45852a51b6e6bffb52057167c7702634eb
|
||||
SHA1 (lsdvd-0.17/lsdvd-0.17.tar.gz) = aa44b8c33c66df2a131e469988ced2b11ebf9aab
|
||||
RMD160 (lsdvd-0.17/lsdvd-0.17.tar.gz) = d2895c2b7dc806b8d3ed10ae022976b09ef6e55a
|
||||
Size (lsdvd-0.17/lsdvd-0.17.tar.gz) = 99250 bytes
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
$NetBSD: patch-aa,v 1.3 2006/08/24 09:58:15 xtraeme Exp $
|
||||
|
||||
--- configure.in.orig 2006-08-24 11:53:41.000000000 +0200
|
||||
+++ configure.in 2006-08-24 11:55:34.000000000 +0200
|
||||
@@ -3,6 +3,7 @@
|
||||
AM_INIT_AUTOMAKE(lsdvd, 0.16)
|
||||
CFLAGS="$CFLAGS -g -D_FILE_OFFSET_BITS=64"
|
||||
AC_PROG_CC
|
||||
+AC_CHECK_HEADERS([stdint.h inttypes.h])
|
||||
|
||||
if eval "test x$GCC = xyes"; then # Enable warnings when using GCC
|
||||
CFLAGS="$CFLAGS -W -Wall"
|
||||
@@ -10,8 +11,8 @@
|
||||
|
||||
AC_CHECK_LIB(dvdread, DVDOpen, , AC_MSG_ERROR([libdvdread not found!]))
|
||||
AC_MSG_CHECKING([for dvdread/ifo_read.h])
|
||||
-AC_TRY_COMPILE([#include <dvdread/ifo_read.h>
|
||||
- #include <stdint.h>], ,
|
||||
+AC_TRY_COMPILE([#include <stdint.h>
|
||||
+ #include <dvdread/ifo_read.h>], ,
|
||||
AC_MSG_RESULT([yes]),
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([Header files for dvdread not found]))
|
|
@ -1,91 +0,0 @@
|
|||
$NetBSD: patch-ab,v 1.5 2009/08/23 15:06:37 wiz Exp $
|
||||
|
||||
--- lsdvd.c.orig 2006-03-02 13:48:11.000000000 +0000
|
||||
+++ lsdvd.c
|
||||
@@ -13,6 +13,7 @@
|
||||
* 2003-04-19 Cleanups get_title_name, added dvdtime2msec, added helper macros,
|
||||
* output info structures in form of a Perl module, by Henk Vergonet.
|
||||
*/
|
||||
+#include <stdint.h>
|
||||
#include <dvdread/ifo_read.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
@@ -131,19 +132,26 @@ int get_title_name(const char* dvd_devic
|
||||
return -1;
|
||||
}
|
||||
|
||||
- if ( fseek(filehandle, 32808, SEEK_SET )) {
|
||||
+ if ( fseek(filehandle, 32768, SEEK_SET )) {
|
||||
fclose(filehandle);
|
||||
fprintf(stderr, "Couldn't seek in %s for title\n", dvd_device);
|
||||
strcpy(title, "unknown");
|
||||
return -1;
|
||||
}
|
||||
|
||||
- if ( 32 != (i = fread(title, 1, 32, filehandle)) ) {
|
||||
+ {
|
||||
+ #define DVD_SEC_SIZ 2048
|
||||
+ char tempBuf[ DVD_SEC_SIZ ];
|
||||
+
|
||||
+ if ( DVD_SEC_SIZ != fread(tempBuf, 1, DVD_SEC_SIZ, filehandle) ) {
|
||||
fclose(filehandle);
|
||||
fprintf(stderr, "Couldn't read enough bytes for title.\n");
|
||||
strcpy(title, "unknown");
|
||||
return -1;
|
||||
}
|
||||
+ snprintf( title, 32, "%s", tempBuf + 40 );
|
||||
+ i=32;
|
||||
+ }
|
||||
|
||||
fclose (filehandle);
|
||||
|
||||
@@ -239,6 +247,7 @@ int main(int argc, char *argv[])
|
||||
int has_title = 0, ret = 0;
|
||||
int max_length = 0, max_track = 0;
|
||||
struct stat dvd_stat;
|
||||
+ struct dvd_info dvd_info;
|
||||
|
||||
program_name = argv[0];
|
||||
|
||||
@@ -276,6 +285,9 @@ int main(int argc, char *argv[])
|
||||
fprintf(stderr, "Can't find device %s\n", dvd_device);
|
||||
return 1;
|
||||
}
|
||||
+
|
||||
+ /* On at least NetBSD this fails if called after DVDOpen */
|
||||
+ has_title = get_title_name(dvd_device, title);
|
||||
|
||||
dvd = DVDOpen(dvd_device);
|
||||
if( !dvd ) {
|
||||
@@ -305,12 +317,8 @@ int main(int argc, char *argv[])
|
||||
return 5;
|
||||
}
|
||||
|
||||
- has_title = get_title_name(dvd_device, title);
|
||||
-
|
||||
vmgi_mat = ifo_zero->vmgi_mat;
|
||||
|
||||
- struct dvd_info dvd_info;
|
||||
-
|
||||
dvd_info.discinfo.device = dvd_device;
|
||||
dvd_info.discinfo.disc_title = has_title ? "unknown" : title;
|
||||
dvd_info.discinfo.vmg_id = vmgi_mat->vmg_identifier;
|
||||
@@ -409,14 +417,16 @@ int main(int argc, char *argv[])
|
||||
|
||||
cell = 0;
|
||||
if (opt_c) {
|
||||
+ int ms;
|
||||
+
|
||||
dvd_info.titles[j].chapter_count = pgc->nr_of_programs;
|
||||
dvd_info.titles[j].chapters = calloc(dvd_info.titles[j].chapter_count, sizeof(*dvd_info.titles[j].chapters));
|
||||
|
||||
- int ms;
|
||||
for (i=0; i<pgc->nr_of_programs; i++)
|
||||
{
|
||||
+ int next;
|
||||
ms=0;
|
||||
- int next = pgc->program_map[i+1];
|
||||
+ next = pgc->program_map[i+1];
|
||||
if (i == pgc->nr_of_programs - 1) next = pgc->nr_of_cells + 1;
|
||||
|
||||
while (cell < next - 1)
|
Loading…
Reference in a new issue