1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-22 20:41:26 +00:00

dvdrip is a Command Line Tool to make a copy from a Video DVD for private Use.

It automates the process of Ripping, Authoring, Preview and Burning of a DVD.

PR:		ports/76728
Submitted by:	Ulrich Spoerlein <q@uni.de>
This commit is contained in:
Pav Lucistnik 2005-01-29 15:00:20 +00:00
parent eb301f91bd
commit 6748428452
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=127610
7 changed files with 178 additions and 0 deletions

View File

@ -78,6 +78,7 @@
SUBDIR += linux-realplayer
SUBDIR += linux-xmovie
SUBDIR += lsdvd
SUBDIR += lxdvdrip
SUBDIR += mjpegtools
SUBDIR += mkvtoolnix
SUBDIR += mkxvcd

View File

@ -0,0 +1,38 @@
# New ports collection makefile for: multimedia/lxdvdrip
# Date created: 26.01.2005
# Whom: Ulrich Spoerlein <q@uni.de>
#
# $FreeBSD$
#
PORTNAME= lxdvdrip
PORTVERSION= 1.41
CATEGORIES= multimedia
MASTER_SITES= http://download.berlios.de/lxdvdrip/
DISTNAME= ${PORTNAME}-${PORTVERSION}-3
EXTRACT_SUFX= .tgz
MAINTAINER= q@uni.de
COMMENT= Command Line Tool to make a copy from a Video DVD
LIB_DEPENDS= dvdread.3:${PORTSDIR}/multimedia/libdvdread
SUB_FILES= pkg-message
PKGMESSAGE= ${WRKDIR}/pkg-message
WRKSRC= ${WRKDIR}/${PORTNAME}
do-build:
(cd ${WRKSRC}; ${CC} ${CFLAGS} -I${LOCALBASE}/include -L${LOCALBASE}/lib \
-ldvdread -lm -o lxdvdrip lxdvdrip.c)
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/lxdvdrip ${LOCALBASE}/bin
${INSTALL_DATA} ${WRKSRC}/doc-pak/lxdvdrip.conf.* ${LOCALBASE}/etc
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR}
cd ${WRKSRC}/doc-pak && ${CP} Changelog* README.* TODO freebsd.doc ${DOCSDIR}
.endif
@${CAT} ${PKGMESSAGE}
.include <bsd.port.mk>

View File

@ -0,0 +1,2 @@
MD5 (lxdvdrip-1.41-3.tgz) = bd325a8a4a5519a2146a2ca9ecfea3b3
SIZE (lxdvdrip-1.41-3.tgz) = 456578

View File

@ -0,0 +1,94 @@
--- lxdvdrip.c.orig Wed Jan 12 23:31:49 2005
+++ lxdvdrip.c Wed Jan 26 21:31:51 2005
@@ -229,6 +229,11 @@
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/mount.h>
+#ifndef __FreeBSD__
+#include <sys/statfs.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -621,16 +626,19 @@
// Gibt die Groesse einer Datei zurueck, ohne die stat Beschraenkung auf < 2 GB
long long filesize64 (char * szFileName)
{
+#ifdef __FreeBSD__
+ struct stat buf;
+
+ if (stat(szFileName, &buf) < 0)
+ return 0LL;
+
+ return buf.st_size;
+#else
FILE * fp;
long long lSize;
char szBuffer[128];
char szTempl[32] = "/tmp/groesse.lxdvdrip";
-// FreeBSD hat fopen64 als Standard
-#ifdef _FREEBSD
- fp = (FILE*)fopen (szFileName, "rb");
-#else
fp = (FILE*)fopen64 (szFileName, "rb");
-#endif
if (!fp)
{
return (long long)0;
@@ -644,39 +652,28 @@
system ("rm /tmp/groesse.lxdvdrip");
lSize = atoll (szBuffer);
return lSize;
+#endif
}
// Berechnet freien Festplattenplatz
long long calculate_discfree (char * szPfad, long lSprache)
{
- char szTempl[32] = "/tmp/lxdf.lxdvdrip";
- char szBefehl[1024];
+ struct statfs buf;
long long lGroesse=0;
- sprintf (szBefehl, "stat -f %s -c ", szPfad);
- strcat (szBefehl, "'%a %s' > ");
- strcat (szBefehl, szTempl);
- if (system (szBefehl) == 0)
+
+ if (statfs(szPfad, &buf) < 0)
+ return 0;
+
+ lGroesse = buf.f_bavail*buf.f_bsize;
+
+ switch (lSprache)
{
- FILE * fTmp;
- long long lFrei;
- long long lBlockGroesse;
- fTmp = fopen(szTempl,"r");
- if (fTmp)
- {
- fscanf (fTmp, "%lld %lld", &lFrei, &lBlockGroesse);
- fclose (fTmp);
- lGroesse = lFrei * lBlockGroesse;
- }
- system ("rm /tmp/lxdf.lxdvdrip");
- switch (lSprache)
- {
- case 0: printf ("Frei in %s: %lld Bytes\n", szPfad, lGroesse);
- break;
- case 1: printf ("Free in %s: %lld Bytes\n", szPfad, lGroesse);
- break;
- case 2: printf ("Espace libre sur %s: %lld octets\n", szPfad, lGroesse);
- break;
- }
+ case 0: printf ("Frei in %s: %lld Bytes\n", szPfad, lGroesse);
+ break;
+ case 1: printf ("Free in %s: %lld Bytes\n", szPfad, lGroesse);
+ break;
+ case 2: printf ("Espace libre sur %s: %lld octets\n", szPfad, lGroesse);
+ break;
}
return lGroesse;
}

View File

@ -0,0 +1,3 @@
To use this program, copy one of
%%LOCALBASE%%/etc/lxdvdrip.conf.{DE,EN,FR} to
$HOME/.lxdvdrip.conf

View File

@ -0,0 +1,24 @@
dvdrip is a Command Line Tool to make a copy from a Video DVD for private Use.
It automates the process of Ripping, Authoring, Preview and Burning of a DVD.
Features:
- Automatic Selection of the longest Title
- Automatic Calculation of Factor to Requant
- Automatic Read of Volume-ID
- Automatic Chapter Separation from Original
- Ripping of Audiotracks in every Language
- Selection of dts-Audiotracks as Default
- Selection of two Subpicture-Tracks possible
- Ripping and Re-Authoring
- Preview of VOB-Files with mplayer or xine
- Burning with growisofs or cdrecord-prodvd
- All Program Parameters could be stored in a Config File as Program Defaults
- All Paramaters can be overwritten on the fly at the Command Line
- Program with english, french or german Messages
- Rip of Subpicture-Tracks
- Copy DVD < 4.7 GB with Menus; > 4.7 GB with vamps, without Menus.
- Partial Copy: Copy selected Titles from a DVD (dvdunauthor/vamps)
- High Quality Backup (1 DVD9 => 2 DVD5)
- DVD with Menus for Title-, Audio- and Chapter Selection (dvdwizard)
WWW: http://developer.berlios.de/projects/lxdvdrip/

View File

@ -0,0 +1,16 @@
bin/lxdvdrip
etc/lxdvdrip.conf.DE
etc/lxdvdrip.conf.EN
etc/lxdvdrip.conf.FR
%%PORTDOCS%%%%DOCSDIR%%/Changelog.de
%%PORTDOCS%%%%DOCSDIR%%/Changelog.en
%%PORTDOCS%%%%DOCSDIR%%/Changelog.fr
%%PORTDOCS%%%%DOCSDIR%%/README.de
%%PORTDOCS%%%%DOCSDIR%%/README.dvdwizard.DE
%%PORTDOCS%%%%DOCSDIR%%/README.dvdwizard.EN
%%PORTDOCS%%%%DOCSDIR%%/README.dvdwizard.FR
%%PORTDOCS%%%%DOCSDIR%%/README.en
%%PORTDOCS%%%%DOCSDIR%%/README.fr
%%PORTDOCS%%%%DOCSDIR%%/TODO
%%PORTDOCS%%%%DOCSDIR%%/freebsd.doc
%%PORTDOCS%%@dirrm %%DOCSDIR%%