* Fixed package building (both RPMs and .debs).
* Fixed `make snapshot' rule.
* Added some magic to filename detection. To read a DVD you now just
need to run 'vlc dvd:/dev/hdc' for instance. Same for file:// URIs.
* Fixed a segfault in the slider when no stream was playing.
* Made the slider go from 0 to 100 (instead of 99 :)
* The vlc now doesn't exit when finished playing. As a side effect of
the playlist code being very recent, it continuously loops.
mv /tmp/vlc-@VLC_VERSION@.tar.gz /tmp/vlc-@VLC_VERSION@.tar.bz2 ..
# removing CSS stuff
- find /tmp/vlc-@VLC_VERSION@ -type f -name '*css*' | xargs rm -f
- for x in Makefile.in src/input/input_dvd.c src/input/input_dvd.h ; do \
- rm -f /tmp/vlc-@VLC_VERSION@/$$x ; \
- perl -ne 'if (/^#e(lse|ndif)/) { $$i=0; } \
- if (/^#if.*DVD/) { $$i=1; print "#if 0\n"; } \
- elsif (!$$i || /^#/) { print $$_; }' \
- < $$x | grep -vi css >| /tmp/vlc-@VLC_VERSION@/$$x ; \
- done
- rm -f /tmp/vlc-@VLC_VERSION@/debian/changelog
- sed 's/\(^vlc ([^-]*\)-/\1nocss-/' < debian/changelog \
- > /tmp/vlc-@VLC_VERSION@/debian/changelog
-
- # build nocss archives
- (cd /tmp ; mv vlc-@VLC_VERSION@ vlc-@VLC_VERSION@nocss ; \
- tar cf vlc-@VLC_VERSION@nocss.tar vlc-@VLC_VERSION@nocss ; \
- bzip2 -f -9 < vlc-@VLC_VERSION@nocss.tar \
- > vlc-@VLC_VERSION@nocss.tar.bz2 ; \
- gzip -f -9 vlc-@VLC_VERSION@nocss.tar )
- mv /tmp/vlc-@VLC_VERSION@nocss.tar.gz \
- /tmp/vlc-@VLC_VERSION@nocss.tar.bz2 ..
-
- # clean up
- rm -rf /tmp/vlc-@VLC_VERSION@nocss
+# find /tmp/vlc-@VLC_VERSION@ -type f -name '*css*' | xargs rm -f
+# for x in Makefile.in src/input/input_dvd.c src/input/input_dvd.h ; do \
+# rm -f /tmp/vlc-@VLC_VERSION@/$$x ; \
+# perl -ne 'if (/^#e(lse|ndif)/) { $$i=0; } \
+# if (/^#if.*DVD/) { $$i=1; print "#if 0\n"; } \
+# elsif (!$$i || /^#/) { print $$_; }' \
+# < $$x | grep -vi css >| /tmp/vlc-@VLC_VERSION@/$$x ; \
+# done
+# rm -f /tmp/vlc-@VLC_VERSION@/debian/changelog
+# sed 's/\(^vlc ([^-]*\)-/\1nocss-/' < debian/changelog \
+# > /tmp/vlc-@VLC_VERSION@/debian/changelog
+#
+# # build nocss archives
+# (cd /tmp ; mv vlc-@VLC_VERSION@ vlc-@VLC_VERSION@nocss ; \
+# tar cf vlc-@VLC_VERSION@nocss.tar vlc-@VLC_VERSION@nocss ; \
+# bzip2 -f -9 < vlc-@VLC_VERSION@nocss.tar \
+# > vlc-@VLC_VERSION@nocss.tar.bz2 ; \
+# gzip -f -9 vlc-@VLC_VERSION@nocss.tar )
+# mv /tmp/vlc-@VLC_VERSION@nocss.tar.gz \
+# /tmp/vlc-@VLC_VERSION@nocss.tar.bz2 ..
+#
+# # clean up
+ rm -rf /tmp/vlc-@VLC_VERSION@*
plugins: $(PLUGINS:%=lib/%.so)
echo "$ac_t""$host" 1>&6
-VLC_VERSION=0.2.60
+VLC_VERSION=0.2.61
VLC_CODENAME=Urumov
AC_CANONICAL_HOST
-VLC_VERSION=0.2.60
+VLC_VERSION=0.2.61
AC_SUBST(VLC_VERSION)
VLC_CODENAME=Urumov
AC_SUBST(VLC_CODENAME)
+vlc (0.2.61-1) unstable; urgency=low
+
+ * New release. The package build works again.
+
+ -- Samuel Hocevar <sam@zoy.org> Fri, 16 Feb 2001 08:09:59 +0100
+
vlc (0.2.60-1) unstable; urgency=low
* New release. The package build is most presumably FUBAR.
Section: graphics
Priority: optional
Maintainer: Samuel Hocevar <sam@zoy.org>
-Build-Depends: debhelper (>=2.2.0), xlib6g-dev, libgnome-dev, libggi2-dev, libglide-dev, libesd0-dev, libsdl1.1-dev, alsa-headers
+Build-Depends: debhelper (>=2.2.0), xlib6g-dev, libgnome-dev, libesd0-dev, libsdl1.1-dev, alsa-headers
Standards-Version: 3.0.1
Package: vlc
Architecture: any
-Depends: ${shlibs:Depends}
-Suggests: vlc-gnome, vlc-sdl, vlc-esd
+Depends: ${shlibs:Depends}, vlc-gnome
+Suggests: vlc-sdl, vlc-esd
Description: the free MPEG and DVD player VideoLAN Client
VideoLAN is a free MPEG, MPEG2 and DVD software solution.
.
.
This plugin adds a Gnome interface to the VideoLAN Client.
-Package: vlc-ggi
-Architecture: any
-Depends: vlc (= ${Source-Version}), ${shlibs:Depends}
-Description: GGI plugin for the VideoLAN Client
- VideoLAN is a free MPEG, MPEG2 and DVD software solution.
- .
- This is a GGI plugin for the VideoLAN Client.
-
-Package: vlc-glide
-Architecture: i386
-Depends: vlc (= ${Source-Version}), libglide2
-Description: Glide plugin for the VideoLAN Client
- VideoLAN is a free MPEG, MPEG2 and DVD software solution.
- .
- This is a Glide (3dfx) plugin for the VideoLAN Client.
-
Package: vlc-esd
Architecture: any
Depends: vlc (= ${Source-Version}), ${shlibs:Depends}
build-stamp:
dh_testdir
- if [ $(DEB_BUILD_ARCH) = i386 ]; then \
./configure --prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
- --enable-gnome --enable-fb --with-glide --with-ggi \
- --with-sdl --enable-esd --enable-alsa --disable-ppro ; \
- else \
- ./configure --prefix=/usr \
- --mandir=\$${prefix}/share/man \
- --infodir=\$${prefix}/share/info \
- --enable-gnome --enable-fb --with-ggi \
- --with-sdl --enable-esd --enable-alsa ; \
- fi
+ --enable-gnome \
+ --with-sdl --enable-esd --enable-alsa --disable-ppro ;
$(MAKE)
$(MAKE) install prefix=`pwd`/debian/vlc/usr
# make symlinks for packages
- for alias in ggi gnome glide esd sdl alsa ; do \
+ for alias in gnome esd sdl alsa ; do \
mkdir -p debian/vlc-$$alias/usr/share/doc/ ; \
ln -s vlc debian/vlc-$$alias/usr/share/doc/vlc-$$alias ; \
mkdir -p debian/vlc-$$alias/usr/lib/videolan/vlc/ ; \
mkdir -p debian/vlc-gnome/usr/share/man/man1/
ln -s vlc.1.gz debian/vlc-gnome/usr/share/man/man1/gvlc.1.gz
- ln -s vlc.1.gz debian/vlc/usr/share/man/man1/fbvlc.1.gz
-
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# dh_installpam
# dh_installinit
dh_installcron
- dh_installmanpages -Nvlc-gnome -Nvlc-ggi -Nvlc-glide -Nvlc-esd -Nvlc-sdl -Nvlc-alsa
+ dh_installmanpages -Nvlc-gnome -Nvlc-esd -Nvlc-sdl -Nvlc-alsa
dh_installinfo
# dh_undocumented
- dh_installchangelogs -Nvlc-gnome -Nvlc-ggi -Nvlc-glide -Nvlc-esd -Nvlc-sdl -Nvlc-alsa
+ dh_installchangelogs -Nvlc-gnome -Nvlc-esd -Nvlc-sdl -Nvlc-alsa
dh_link
dh_strip
dh_compress
# dh_makeshlibs
dh_installdeb
# dh_perl
- dh_shlibdeps -Nvlc-glide
+ dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
* -dvd_udf to find files
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
- * $Id: input_dvd.c,v 1.11 2001/02/14 15:58:29 henri Exp $
+ * $Id: input_dvd.c,v 1.12 2001/02/16 09:25:03 sam Exp $
*
* Author: Stéphane Borel <stef@via.ecp.fr>
*
*****************************************************************************/
static int DVDProbe( probedata_t *p_data )
{
+ input_thread_t * p_input = (input_thread_t *)p_data;
+
+ char * psz_name = p_input->p_source;
+ int i_handle;
+ int i_score = 5;
+
if( TestMethod( INPUT_METHOD_VAR, "dvd" ) )
{
return( 999 );
}
- return 5;
+ if( ( strlen(psz_name) > 4 ) && !strncasecmp( psz_name, "dvd:", 4 ) )
+ {
+ /* If the user specified "dvd:" then it's probably a DVD */
+ i_score = 100;
+ psz_name += 4;
+ }
+
+ i_handle = open( psz_name, 0 );
+ if( i_handle == -1 )
+ {
+ return( 0 );
+ }
+ close( i_handle );
+
+ return( i_score );
}
/*****************************************************************************
intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
GtkAdjustment *p_adj = gtk_range_get_adjustment( GTK_RANGE(widget) );
- off_t i_seek = (p_adj->value * p_intf->p_input->stream.i_size) / 100;
+ off_t i_seek;
vlc_mutex_lock( &p_intf->p_sys->change_lock );
- p_intf->p_sys->b_scale_isfree = 1;
if( p_intf->p_input != NULL )
{
+ i_seek = (p_adj->value * p_intf->p_input->stream.i_size) / 100;
input_Seek( p_intf->p_input, i_seek );
}
+ p_intf->p_sys->b_scale_isfree = 1;
vlc_mutex_unlock( &p_intf->p_sys->change_lock );
GtkWidget *toolbar_prev;
GtkWidget *toolbar_next;
GtkWidget *vbox2;
- GtkWidget *label6;
GtkWidget *entry1;
+ GtkWidget *label6;
GtkWidget *hscale;
GtkWidget *label13;
GtkWidget *appbar;
gtk_widget_show (vbox2);
gnome_app_set_contents (GNOME_APP (intf_window), vbox2);
- label6 = gtk_label_new (_("File name: this part of the interface doesn't work yet.mpeg"));
+ entry1 = gtk_entry_new ();
+ gtk_widget_ref (entry1);
+ gtk_object_set_data_full (GTK_OBJECT (intf_window), "entry1", entry1,
+ (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (entry1);
+ gtk_box_pack_start (GTK_BOX (vbox2), entry1, FALSE, FALSE, 0);
+ gtk_entry_set_text (GTK_ENTRY (entry1), _("Tired of boring stub messages ? Write your own exciting message here !!"));
+
+ label6 = gtk_label_new (_("This part of the interface doesn't work yet. You can drag the slider below, though:"));
gtk_widget_ref (label6);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "label6", label6,
(GtkDestroyNotify) gtk_widget_unref);
gtk_misc_set_alignment (GTK_MISC (label6), 0, 0.5);
gtk_misc_set_padding (GTK_MISC (label6), 5, 0);
- entry1 = gtk_entry_new ();
- gtk_widget_ref (entry1);
- gtk_object_set_data_full (GTK_OBJECT (intf_window), "entry1", entry1,
- (GtkDestroyNotify) gtk_widget_unref);
- gtk_widget_show (entry1);
- gtk_box_pack_start (GTK_BOX (vbox2), entry1, FALSE, FALSE, 0);
- gtk_entry_set_text (GTK_ENTRY (entry1), _("Tired of boring stub messages ? Write your own exciting message here !!"));
-
- hscale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 5, 1)));
+ hscale = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (43.75, 0, 100, 1, 6.25, 0)));
gtk_widget_ref (hscale);
gtk_object_set_data_full (GTK_OBJECT (intf_window), "hscale", hscale,
(GtkDestroyNotify) gtk_widget_unref);
<spacing>0</spacing>
<widget>
- <class>GtkLabel</class>
- <name>label6</name>
- <label>File name: this part of the interface doesn't work yet.mpeg</label>
- <justify>GTK_JUSTIFY_LEFT</justify>
- <wrap>False</wrap>
- <xalign>0</xalign>
- <yalign>0.5</yalign>
- <xpad>5</xpad>
- <ypad>0</ypad>
+ <class>GtkEntry</class>
+ <name>entry1</name>
+ <can_focus>True</can_focus>
+ <editable>True</editable>
+ <text_visible>True</text_visible>
+ <text_max_length>0</text_max_length>
+ <text>Tired of boring stub messages ? Write your own exciting message here !!</text>
<child>
<padding>0</padding>
<expand>False</expand>
</widget>
<widget>
- <class>GtkEntry</class>
- <name>entry1</name>
- <can_focus>True</can_focus>
- <editable>True</editable>
- <text_visible>True</text_visible>
- <text_max_length>0</text_max_length>
- <text>Tired of boring stub messages ? Write your own exciting message here !!</text>
+ <class>GtkLabel</class>
+ <name>label6</name>
+ <label>This part of the interface doesn't work yet. You can drag the slider below, though:</label>
+ <justify>GTK_JUSTIFY_LEFT</justify>
+ <wrap>False</wrap>
+ <xalign>0</xalign>
+ <yalign>0.5</yalign>
+ <xpad>5</xpad>
+ <ypad>0</ypad>
<child>
<padding>0</padding>
<expand>False</expand>
<value_pos>GTK_POS_BOTTOM</value_pos>
<digits>1</digits>
<policy>GTK_UPDATE_DELAYED</policy>
- <value>0</value>
+ <value>43.75</value>
<lower>0</lower>
<upper>100</upper>
<step>1</step>
- <page>5</page>
- <page_size>1</page_size>
+ <page>6.25</page>
+ <page_size>0</page_size>
<child>
<padding>0</padding>
<expand>False</expand>
* input_ps.c: PS demux and packet management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: input_ps.c,v 1.5 2001/02/12 07:52:40 sam Exp $
+ * $Id: input_ps.c,v 1.6 2001/02/16 09:25:03 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
#include <string.h>
#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
+
#include "config.h"
#include "common.h"
#include "threads.h"
*****************************************************************************/
static int PSProbe( probedata_t *p_data )
{
+ input_thread_t * p_input = (input_thread_t *)p_data;
+
+ char * psz_name = p_input->p_source;
+ int i_handle;
+ int i_score = 10;
+
if( TestMethod( INPUT_METHOD_VAR, "ps" ) )
{
return( 999 );
}
- return 10;
+ if( ( strlen(psz_name) > 5 ) && !strncasecmp( psz_name, "file:", 5 ) )
+ {
+ /* If the user specified "file:" then it's probably a file */
+ i_score = 100;
+ psz_name += 5;
+ }
+
+ i_handle = open( psz_name, 0 );
+ if( i_handle == -1 )
+ {
+ return( 0 );
+ }
+ close( i_handle );
+
+ return( i_score );
}
/*****************************************************************************
* input_ts.c: TS demux and netlist management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: input_ts.c,v 1.2 2001/02/14 15:58:29 henri Exp $
+ * $Id: input_ts.c,v 1.3 2001/02/16 09:25:03 sam Exp $
*
* Authors:
*
#include <errno.h>
#include <sys/uio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <fcntl.h>
#include "config.h"
#include "common.h"
*****************************************************************************/
static int TSProbe( probedata_t * p_data )
{
+ input_thread_t * p_input = (input_thread_t *)p_data;
+
+ char * psz_name = p_input->p_source;
+ int i_handle;
+ int i_score = 1;
+
if( TestMethod( INPUT_METHOD_VAR, "ts" ) )
{
return( 999 );
}
- /* verify that the first byte is 0x47 */
- return 0;
+ if( ( strlen(psz_name) > 5 ) && !strncasecmp( psz_name, "file:", 5 ) )
+ {
+ /* If the user specified "file:" then it's probably a file */
+ psz_name += 5;
+ }
+
+ i_handle = open( psz_name, 0 );
+ if( i_handle == -1 )
+ {
+ return( 0 );
+ }
+ close( i_handle );
+
+ return( i_score );
}
/*****************************************************************************
* decoders.
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: input.c,v 1.81 2001/02/16 06:37:09 sam Exp $
+ * $Id: input.c,v 1.82 2001/02/16 09:25:04 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
#endif
p_input->p_input_module = module_Need( p_main->p_bank,
- MODULE_CAPABILITY_INPUT, NULL );
+ MODULE_CAPABILITY_INPUT,
+ (probedata_t *)p_input );
if( p_input->p_input_module == NULL )
{
/* Release modules */
module_Unneed( p_main->p_bank, p_input->p_input_module );
+
}
/*****************************************************************************
void input_FileOpen( input_thread_t * p_input )
{
struct stat stat_info;
+ int i_stat;
+
+ char *psz_name = p_input->p_source;
- if( stat( p_input->p_source, &stat_info ) == (-1) )
+ /* FIXME: this code ought to be in the plugin so that code can
+ * be shared with the *_Probe function */
+ if( ( i_stat = stat( psz_name, &stat_info ) ) == (-1) )
{
- intf_ErrMsg( "input error: cannot stat() file `%s' (%s)",
- p_input->p_source, strerror(errno));
- p_input->b_error = 1;
- return;
+ int i_size = strlen( psz_name );
+
+ if( ( i_size > 4 )
+ && !strncasecmp( psz_name, "dvd:", 4 ) )
+ {
+ /* get rid of the 'dvd:' stuff and try again */
+ psz_name += 4;
+ i_stat = stat( psz_name, &stat_info );
+ }
+ else if( ( i_size > 5 )
+ && !strncasecmp( psz_name, "file:", 5 ) )
+ {
+ /* get rid of the 'file:' stuff and try again */
+ psz_name += 5;
+ i_stat = stat( psz_name, &stat_info );
+ }
+
+ if( i_stat == (-1) )
+ {
+ intf_ErrMsg( "input error: cannot stat() file `%s' (%s)",
+ psz_name, strerror(errno));
+ p_input->b_error = 1;
+ return;
+ }
}
vlc_mutex_lock( &p_input->stream.stream_lock );
{
vlc_mutex_unlock( &p_input->stream.stream_lock );
intf_ErrMsg( "input error: unknown file type for `%s'",
- p_input->p_source );
+ psz_name );
p_input->b_error = 1;
return;
}
p_input->stream.i_tell = 0;
vlc_mutex_unlock( &p_input->stream.stream_lock );
- intf_Msg( "input: opening file %s", p_input->p_source );
- if( (p_input->i_handle = open( p_input->p_source,
+ intf_Msg( "input: opening %s", p_input->p_source );
+ if( (p_input->i_handle = open( psz_name,
/*O_NONBLOCK | O_LARGEFILE*/0 )) == (-1) )
{
intf_ErrMsg( "input error: cannot open file (%s)", strerror(errno) );
if( p_main->p_playlist->i_index == -1 )
{
/* FIXME: wait for user to add stuff to playlist ? */
+#if 0
p_intf->b_die = 1;
+#endif
}
else
{
Name: vlc
-Version: 0.2.60
+Version: 0.2.61
Release: 1
Copyright: GPL
Url: http://www.videolan.org/
Group: X11/Applications/Graphics
-Source0: http://www.videolan.org/packages/0.2.60/vlc-0.2.60.tar.gz
+Source0: http://www.videolan.org/packages/0.2.61/vlc-0.2.61.tar.gz
Packager: Samuel Hocevar <sam@zoy.org>
Buildroot: /tmp/vlc-build
Summary: VideoLAN Client.
%changelog
+* Fri Feb 16 2001 Samuel Hocevar <sam@via.ecp.fr>
+New upstream release
+
* Tue Aug 8 2000 Samuel Hocevar <sam@via.ecp.fr>
Added framebuffer support
%setup
%build
-./configure --prefix=/usr --enable-mmx --enable-gnome --enable-fb
+./configure --prefix=/usr --enable-mmx --with-sdl --enable-esd
make
%install
mkdir -p $RPM_BUILD_ROOT/usr/lib