Commit 3007c6b8 authored by Sam Hocevar's avatar Sam Hocevar

  * Fixed a bug in the gtk interface which caused vlc to go amok after
    having met a zero-sized area.
  * Found out how to type '�' in vim :-)
  * Added missing bloat to modules_export.h.
  * 'snapshot*' rules do not depend on 'clean', and don't use /tmp anymore.
  * Added vlc:loop playlist command to go back at the beginning.
    Usage: vlc file1.mpeg file2.mpeg ... fileN.mpeg vlc:loop
    This change isn't very elegant but there are already bugs in the
    playlist handling, I'll try to polish it once the playlist is fixed.
parent e9ea66ae
......@@ -106,7 +106,7 @@ E: jimmy@via.ecp.fr
C: jimmy
D: IDCT and YUV transformations
N: H}kan Hjort
N: Hkan Hjort
E: d95hjort@dtek.chalmers.se
D: Solaris port of the DVD ioctls
......
......@@ -4,7 +4,12 @@
HEAD
* Solaris DVD decryption support by H}kan Hjort <d95hjort@dtek.chalmers.se>.
* Added vlc:loop playlist command to go back at the beginning.
Usage: vlc file1.mpeg file2.mpeg ... fileN.mpeg vlc:loop
* Fixed a bug in the gtk interface which caused vlc to go amok after
having met a zero-sized area.
* 'snapshot*' rules do not depend on 'clean', and don't use /tmp anymore.
* Solaris DVD decryption support by Håkan Hjort <d95hjort@dtek.chalmers.se>.
0.2.82
Tue, 7 Aug 2001 12:39:16 +0200
......
......@@ -90,8 +90,8 @@ endif
#
# Misc variables
#
VLC_QUICKVERSION := $(shell grep 'VLC_VERSION=' configure.in | cut -f2 -d=)
LIBDVDCSS_QUICKVERSION := $(shell grep 'LIBDVDCSS_VERSION=' configure.in | cut -f2 -d=)
VLC_QUICKVERSION := $(shell grep '^ *VLC_VERSION=' configure.in | cut -f2 -d=)
LIBDVDCSS_QUICKVERSION := $(shell grep '^ *LIBDVDCSS_VERSION=' configure.in | cut -f2 -d=)
# All symbols must be exported
......@@ -200,87 +200,94 @@ libdvdcss-uninstall:
#
# Package generation rules
#
snapshot-common: clean
rm -Rf /tmp/vlc
# Copy directory structure in /tmp
find -type d | grep -v CVS | grep -v '\.dep' | while read i ; \
do mkdir -p /tmp/vlc/$$i ; \
snapshot-common:
# Check that tmp isn't in the way
@if test -e tmp; then \
echo "Error: please remove ./tmp, it is in the way"; false; \
else \
echo "OK."; mkdir tmp; \
fi
# Copy directory structure in tmp
find -type d | grep -v '\(\.dep\|snapshot\|CVS\)' | while read i ; \
do mkdir -p tmp/vlc/$$i ; \
done
find debian -mindepth 1 -maxdepth 1 -type d | \
while read i ; do rm -Rf /tmp/vlc/$$i ; done
while read i ; do rm -Rf tmp/vlc/$$i ; done
# Copy .c .h .in .cpp and .glade files
find include src plugins -type f -name '*.[chig]*' | while read i ; \
do cp $$i /tmp/vlc/$$i ; done
do cp $$i tmp/vlc/$$i ; done
# Copy plugin Makefiles
find plugins -type f -name Makefile | while read i ; \
do cp $$i /tmp/vlc/$$i ; done
do cp $$i tmp/vlc/$$i ; done
# Copy extra programs and documentation
cp -a extras/* /tmp/vlc/extras
cp -a doc/* /tmp/vlc/doc
find /tmp/vlc/extras /tmp/vlc/doc \
-type d -name CVS -o -type f -name '.*' | while read i ; \
do rm -Rf $$i ; done
cp -a extras/* tmp/vlc/extras
cp -a doc/* tmp/vlc/doc
find tmp/vlc/extras tmp/vlc/doc \
-type d -name CVS -o -name '.*' -o -name '*.[o]' | \
while read i ; do rm -Rf $$i ; done
# Copy misc files
cp vlc.spec AUTHORS COPYING TODO todo.pl ChangeLog README* INSTALL* \
Makefile Makefile.opts.in Makefile.dep Makefile.modules \
configure configure.in install-sh config.sub config.guess \
/tmp/vlc/
tmp/vlc/
# Copy Debian control files
for file in debian/*dirs debian/*docs debian/*menu debian/*desktop \
debian/*copyright ; do cp $$file /tmp/vlc/debian ; done
debian/*copyright ; do cp $$file tmp/vlc/debian ; done
for file in control changelog rules ; do \
cp debian/$$file /tmp/vlc/debian/ ; done
cp debian/$$file tmp/vlc/debian/ ; done
# Copy fonts and icons
for file in share/*png share/*xpm share/*psf ; do \
cp $$file /tmp/vlc/share ; done
cp $$file tmp/vlc/share ; done
for file in vlc_beos.rsrc vlc.icns gvlc_win32.ico vlc_win32_rc.rc ; do \
cp share/$$file /tmp/vlc/share/ ; done
cp share/$$file tmp/vlc/share/ ; done
snapshot: snapshot-common
# Build archives and clean up
# Build archives
F=vlc-${VLC_QUICKVERSION}; \
rm -Rf /tmp/$$F ; mv /tmp/vlc /tmp/$$F; \
(cd /tmp ; tar cf $$F.tar $$F ; bzip2 -f -9 < $$F.tar > $$F.tar.bz2; \
gzip -f -9 $$F.tar ); mv /tmp/$$F.tar.gz /tmp/$$F.tar.bz2 ..; \
rm -Rf /tmp/$$F
mv tmp/vlc tmp/$$F; (cd tmp ; tar cf $$F.tar $$F); \
bzip2 -f -9 < tmp/$$F.tar > $$F.tar.bz2; \
gzip -f -9 tmp/$$F.tar ; mv tmp/$$F.tar.gz .
# Clean up
rm -Rf tmp
snapshot-nocss: snapshot-common
# Remove libdvdcss
rm -Rf /tmp/vlc/extras/libdvdcss
rm -f /tmp/vlc/*.libdvdcss
rm -Rf tmp/vlc/extras/libdvdcss
rm -f tmp/vlc/*.libdvdcss
# Fix debian information
rm -f /tmp/vlc/debian/libdvdcss*
rm -f /tmp/vlc/debian/control
rm -f tmp/vlc/debian/libdvdcss*
rm -f tmp/vlc/debian/control
sed -e 's#^ DVDs# unencrypted DVDs#' < debian/control \
| awk '{if(gsub("Package: libdvdcss",$$0))a=1;if(a==0)print $$0;if(a==1&&$$0=="")a=0}' \
> /tmp/vlc/debian/control
rm -f /tmp/vlc/debian/rules
> tmp/vlc/debian/control
rm -f tmp/vlc/debian/rules
sed -e 's#^\(export LIBDVDCSS_FLAGS=\).*#\1"--without-dvdcss"#' < debian/rules \
| awk '{if($$0=="# libdvdcss start")a=1;if(a==0)print $$0;if($$0=="# libdvdcss stop")a=0}' \
> /tmp/vlc/debian/rules
chmod +x /tmp/vlc/debian/rules
# Build css-disabled archives and clean up
> tmp/vlc/debian/rules
chmod +x tmp/vlc/debian/rules
# Build css-disabled archives
F=vlc-${VLC_QUICKVERSION}; G=vlc-${VLC_QUICKVERSION}-nocss; \
rm -Rf /tmp/$$F ; mv /tmp/vlc /tmp/$$F; \
(cd /tmp ; tar cf $$G.tar $$F ; bzip2 -f -9 < $$G.tar > $$G.tar.bz2; \
gzip -f -9 $$G.tar ); mv /tmp/$$G.tar.gz /tmp/$$G.tar.bz2 ..; \
rm -Rf /tmp/$$F
mv tmp/vlc tmp/$$F; (cd tmp ; tar cf $$G.tar $$F); \
bzip2 -f -9 < tmp/$$G.tar > $$G.tar.bz2; \
gzip -f -9 tmp/$$G.tar ; mv tmp/$$G.tar.gz .
# Clean up
rm -Rf tmp
libdvdcss-snapshot: snapshot-common
# Remove vlc sources and icons, doc, debian directory...
rm -Rf /tmp/vlc/src /tmp/vlc/share /tmp/vlc/plugins /tmp/vlc/doc
rm -Rf /tmp/vlc/extras/GNUgetopt /tmp/vlc/extras/MacOSX_app
rm -Rf /tmp/vlc/debian
rm -Rf tmp/vlc/src tmp/vlc/share tmp/vlc/plugins tmp/vlc/doc
rm -Rf tmp/vlc/extras/GNUgetopt tmp/vlc/extras/MacOSX_app
rm -Rf tmp/vlc/debian
# Remove useless headers
rm -f /tmp/vlc/include/*
rm -f tmp/vlc/include/*
for file in defs.h.in config.h.in common.h int_types.h ; \
do cp include/$$file /tmp/vlc/include/ ; done
do cp include/$$file tmp/vlc/include/ ; done
# Remove misc files (??? - maybe not really needed)
rm -f /tmp/vlc/vlc.spec /tmp/vlc/INSTALL-win32.txt
mv /tmp/vlc/INSTALL.libdvdcss /tmp/vlc/INSTALL
mv /tmp/vlc/README.libdvdcss /tmp/vlc/README
rm -f tmp/vlc/vlc.spec tmp/vlc/INSTALL-win32.txt
mv tmp/vlc/INSTALL.libdvdcss tmp/vlc/INSTALL
mv tmp/vlc/README.libdvdcss tmp/vlc/README
# Fix Makefile
rm -f /tmp/vlc/Makefile
rm -f tmp/vlc/Makefile
sed -e 's#^install:#install-unused:#' \
-e 's#^uninstall:#uninstall-unused:#' \
-e 's#^clean:#clean-unused:#' \
......@@ -288,13 +295,14 @@ libdvdcss-snapshot: snapshot-common
-e 's#^libdvdcss-install:#install:#' \
-e 's#^libdvdcss-uninstall:#uninstall:#' \
-e 's#^libdvdcss-clean:#clean:#' \
< Makefile > /tmp/vlc/Makefile
# Build archives and clean up
< Makefile > tmp/vlc/Makefile
# Build archives
F=libdvdcss-${LIBDVDCSS_QUICKVERSION}; \
rm -Rf /tmp/$$F ; mv /tmp/vlc /tmp/$$F; \
(cd /tmp ; tar cf $$F.tar $$F ; bzip2 -f -9 < $$F.tar > $$F.tar.bz2; \
gzip -f -9 $$F.tar ); mv /tmp/$$F.tar.gz /tmp/$$F.tar.bz2 ..; \
rm -Rf /tmp/$$F
mv tmp/vlc tmp/$$F; (cd tmp ; tar cf $$F.tar $$F); \
bzip2 -f -9 < tmp/$$F.tar > $$F.tar.bz2; \
gzip -f -9 tmp/$$F.tar ; mv tmp/$$F.tar.gz .
# Clean up
rm -Rf tmp
deb:
dpkg-buildpackage -rfakeroot -us -uc
......
......@@ -2,11 +2,12 @@
* ioctl.c: DVD ioctl replacement function
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
* $Id: ioctl.c,v 1.8 2001/08/08 02:48:44 sam Exp $
* $Id: ioctl.c,v 1.9 2001/08/09 08:20:26 sam Exp $
*
* Authors: Markus Kuespert <ltlBeBoy@beosmail.com>
* Samuel Hocevar <sam@zoy.org>
* Jon Lech Johansen <jon-vl@nanocrew.net>
* Hkan Hjort <d95hjort@dtek.chalmers.se>
*
* 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
......
......@@ -89,6 +89,11 @@ typedef struct module_symbols_s
void ( * input_DelArea ) ( struct input_thread_s *,
struct input_area_s * );
void ( * InitBitstream ) ( struct bit_stream_s *,
struct decoder_fifo_s *,
void ( * ) ( struct bit_stream_s *,
boolean_t ),
void * );
int ( * input_InitStream ) ( struct input_thread_s *, size_t );
void ( * input_EndStream ) ( struct input_thread_s * );
......@@ -98,6 +103,8 @@ typedef struct module_symbols_s
struct data_packet_s *,
struct es_descriptor_s *,
boolean_t, boolean_t );
void ( * input_DecodePES ) ( struct decoder_fifo_s *,
struct pes_packet_s * );
struct es_descriptor_s * ( * input_ParsePS ) ( struct input_thread_s *,
struct data_packet_s * );
void ( * input_DemuxPS ) ( struct input_thread_s *,
......@@ -109,6 +116,10 @@ typedef struct module_symbols_s
struct es_descriptor_s *,
boolean_t, boolean_t );
int ( * input_ClockManageControl ) ( struct input_thread_s *,
struct pgrm_descriptor_s *,
mtime_t );
int ( * input_NetlistInit ) ( struct input_thread_s *,
int, int, size_t, int );
struct iovec * ( * input_NetlistGetiovec ) ( void * p_method_data );
......@@ -166,14 +177,17 @@ typedef struct module_symbols_s
(p_symbols)->input_DelProgram = input_DelProgram; \
(p_symbols)->input_AddArea = input_AddArea; \
(p_symbols)->input_DelArea = input_DelArea; \
(p_symbols)->InitBitstream = InitBitstream; \
(p_symbols)->input_InitStream = input_InitStream; \
(p_symbols)->input_EndStream = input_EndStream; \
(p_symbols)->input_ParsePES = input_ParsePES; \
(p_symbols)->input_GatherPES = input_GatherPES; \
(p_symbols)->input_DecodePES = input_DecodePES; \
(p_symbols)->input_ParsePS = input_ParsePS; \
(p_symbols)->input_DemuxPS = input_DemuxPS; \
(p_symbols)->input_DemuxTS = input_DemuxTS; \
(p_symbols)->input_DemuxPSI = input_DemuxPSI; \
(p_symbols)->input_ClockManageControl = input_ClockManageControl; \
(p_symbols)->input_NetlistInit = input_NetlistInit; \
(p_symbols)->input_NetlistGetiovec = input_NetlistGetiovec; \
(p_symbols)->input_NetlistMviovec = input_NetlistMviovec; \
......@@ -252,16 +266,20 @@ extern module_symbols_t* p_symbols;
# define input_AddArea p_symbols->input_AddArea
# define input_DelArea p_symbols->input_DelArea
# define InitBitstream p_symbols->InitBitstream
# define input_InitStream p_symbols->input_InitStream
# define input_EndStream p_symbols->input_EndStream
# define input_ParsePES p_symbols->input_ParsePES
# define input_GatherPES p_symbols->input_GatherPES
# define input_DecodePES p_symbols->input_DecodePES
# define input_ParsePS p_symbols->input_ParsePS
# define input_DemuxPS p_symbols->input_DemuxPS
# define input_DemuxTS p_symbols->input_DemuxTS
# define input_DemuxPSI p_symbols->input_DemuxPSI
# define input_ClockManageControl p_symbols->input_ClockManageControl
# define input_NetlistInit p_symbols->input_NetlistInit
# define input_NetlistGetiovec p_symbols->input_NetlistGetiovec
# define input_NetlistMviovec p_symbols->input_NetlistMviovec
......
......@@ -2,7 +2,7 @@
* input_dummy.c: dummy input plugin, to manage "vlc:***" special options
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: input_dummy.c,v 1.4 2001/07/26 03:13:30 sam Exp $
* $Id: input_dummy.c,v 1.5 2001/08/09 08:20:26 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
......@@ -45,6 +45,7 @@
#include "interface.h"
#include "intf_msg.h"
#include "intf_playlist.h"
#include "main.h"
......@@ -139,23 +140,31 @@ static void DummyOpen( input_thread_t * p_input )
/* Check for a "vlc:quit" command */
if( i_len == 4 && !strncasecmp( psz_name, "quit", 4 ) )
{
intf_WarnMsg( 1, "input: playlist command `quit'" );
intf_WarnMsg( 2, "input: command `quit'" );
p_main->p_intf->b_die = 1;
return;
}
/* Check for a "vlc:loop" command */
if( i_len == 4 && !strncasecmp( psz_name, "loop", 4 ) )
{
intf_WarnMsg( 2, "input: command `loop'" );
intf_PlaylistJumpto( p_main->p_playlist, -1 );
return;
}
/* Check for a "vlc:pause:***" command */
if( i_len > 6 && !strncasecmp( psz_name, "pause:", 6 ) )
{
i_arg = atoi( psz_name + 6 );
intf_WarnMsgImm( 1, "input: playlist command `pause %i'", i_arg );
intf_WarnMsgImm( 2, "input: command `pause %i'", i_arg );
msleep( i_arg * 1000000 );
return;
}
intf_ErrMsg( "input error: unknown playlist command `%s'", psz_name );
intf_ErrMsg( "input error: unknown command `%s'", psz_name );
}
......
......@@ -2,7 +2,7 @@
* gtk_display.c: Gtk+ tools for main interface
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: gtk_display.c,v 1.5 2001/07/25 03:12:33 sam Exp $
* $Id: gtk_display.c,v 1.6 2001/08/09 08:20:26 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Stphane Borel <stef@via.ecp.fr>
......@@ -179,9 +179,12 @@ gint GtkModeManage( intf_thread_t * p_intf )
break;
}
/* slider for seekable streams */
/* initialize and show slider for seekable streams */
if( p_intf->p_input->stream.b_seekable )
{
p_intf->p_sys->p_adj->value = p_intf->p_sys->f_adj_oldvalue = 0;
gtk_signal_emit_by_name( GTK_OBJECT( p_intf->p_sys->p_adj ),
"value_changed" );
gtk_widget_show( GTK_WIDGET( p_slider ) );
}
......@@ -197,8 +200,7 @@ gint GtkModeManage( intf_thread_t * p_intf )
p_intf->p_sys->i_part = 0;
p_intf->p_input->stream.b_changed = 0;
intf_WarnMsg( 3,
"intf info: menus refreshed as stream has changed" );
intf_WarnMsg( 3, "intf: stream has changed, refreshing interface" );
}
else
{
......
......@@ -4,7 +4,7 @@
* decoders.
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input.c,v 1.128 2001/08/05 15:32:46 gbazin Exp $
* $Id: input.c,v 1.129 2001/08/09 08:20:26 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -168,6 +168,8 @@ input_thread_t *input_CreateThread ( playlist_item_t *p_item, int *pi_status )
p_input->pf_network_close = NetworkClose;
#endif
intf_WarnMsg( 1, "input: playlist item `%s'", p_input->p_source );
/* Create thread. */
if( vlc_thread_create( &p_input->thread_id, "input", (void *) RunThread,
(void *) p_input ) )
......@@ -238,13 +240,11 @@ static void RunThread( input_thread_t *p_input )
if( InitThread( p_input ) )
{
/* If we failed, wait before we are killed, and exit */
*p_input->pi_status = THREAD_ERROR;
p_input->b_error = 1;
ErrorThread( p_input );
DestroyThread( p_input );
free( p_input );
return;
}
......@@ -492,8 +492,8 @@ static void EndThread( input_thread_t * p_input )
struct tms cpu_usage;
times( &cpu_usage );
intf_Msg("input stats: cpu usage (user: %d, system: %d)",
cpu_usage.tms_utime, cpu_usage.tms_stime);
intf_Msg( "input stats: cpu usage (user: %d, system: %d)",
cpu_usage.tms_utime, cpu_usage.tms_stime );
}
#endif
......@@ -604,7 +604,7 @@ static void FileOpen( input_thread_t * p_input )
p_input->stream.p_selected_area->i_tell = 0;
vlc_mutex_unlock( &p_input->stream.stream_lock );
intf_WarnMsg( 1, "input: opening file `%s'", p_input->p_source );
intf_WarnMsg( 2, "input: opening file `%s'", p_input->p_source );
if( (p_input->i_handle = open( psz_name,
/*O_NONBLOCK | O_LARGEFILE*/0 )) == (-1) )
{
......@@ -620,7 +620,7 @@ static void FileOpen( input_thread_t * p_input )
*****************************************************************************/
static void FileClose( input_thread_t * p_input )
{
intf_WarnMsg( 1, "input: closing file `%s'", p_input->p_source );
intf_WarnMsg( 2, "input: closing file `%s'", p_input->p_source );
close( p_input->i_handle );
......@@ -750,7 +750,7 @@ static void NetworkOpen( input_thread_t * p_input )
}
}
intf_WarnMsg( 2, "input: server: %s port: %d broadcast: %s",
intf_WarnMsg( 2, "input: server=%s port=%d broadcast=%s",
psz_server, i_port, psz_broadcast );
/* Open a SOCK_DGRAM (UDP) socket, in the AF_INET domain, automatic (0)
......@@ -758,7 +758,7 @@ static void NetworkOpen( input_thread_t * p_input )
p_input->i_handle = socket( AF_INET, SOCK_DGRAM, 0 );
if( p_input->i_handle == -1 )
{
intf_ErrMsg("input error: can't create socket : %s", strerror(errno));
intf_ErrMsg( "input error: can't create socket (%s)", strerror(errno) );
p_input->b_error = 1;
return;
}
......@@ -808,7 +808,7 @@ static void NetworkOpen( input_thread_t * p_input )
if( bind( p_input->i_handle, (struct sockaddr *)&sock,
sizeof( sock ) ) < 0 )
{
intf_ErrMsg("input error: can't bind socket (%s)", strerror(errno));
intf_ErrMsg( "input error: can't bind socket (%s)", strerror(errno) );
close( p_input->i_handle );
p_input->b_error = 1;
return;
......@@ -827,7 +827,7 @@ static void NetworkOpen( input_thread_t * p_input )
if( connect( p_input->i_handle, (struct sockaddr *) &sock,
sizeof( sock ) ) == (-1) )
{
intf_ErrMsg( "input error: can't connect socket, %s",
intf_ErrMsg( "input error: can't connect socket (%s)",
strerror(errno) );
close( p_input->i_handle );
p_input->b_error = 1;
......
......@@ -2,7 +2,7 @@
* intf_playlist.c : Playlist management functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: intf_playlist.c,v 1.7 2001/05/30 17:03:12 sam Exp $
* $Id: intf_playlist.c,v 1.8 2001/08/09 08:20:26 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
......@@ -164,11 +164,11 @@ void intf_PlaylistNext( playlist_t * p_playlist )
void intf_PlaylistPrev( playlist_t * p_playlist )
{
vlc_mutex_lock( &p_playlist->change_lock );
p_playlist->i_mode = -p_playlist->i_mode;
p_playlist->i_mode = -p_playlist->i_mode;
NextItem( p_playlist );
p_playlist->i_mode = -p_playlist->i_mode;
vlc_mutex_unlock( &p_playlist->change_lock );
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment