Commit e2a614c8 authored by Ilkka Ollakka's avatar Ilkka Ollakka

Merge branch 'master' of git@git.videolan.org:vlc

parents 51f898a0 c617646c
......@@ -5,6 +5,7 @@ Changes between 0.8.6 and 0.9.0-git (not released yet):
Important notes:
----------------
* This release will not work with Windows 98/ME and Mac OS X 10.3.9 (Panther)
* The HTTP interface is now only available on the local machine by default.
If you want to make it available from other machines, you will have to
edit the ".hosts" file.
......@@ -15,9 +16,9 @@ Important notes:
C:\Program Files\VideoLAN\VLC\http\old\.hosts
- On Mac OS X, you can find it in VLC.app/Contents/MacOS/share/http/.hosts
and respectively in VLC.app/Contents/MacOS/share/http/old/.hosts
* This version of VLC contains a new interface for Windows and Linux. This
interface lacks the "Streaming Wizard" that used to be present in VLC 0.8.6.
It will be replaced by a better alternative in the next version.
* This version of VLC contains a new interface for Windows and Linux.
This interface has a fullscreen controller. This interface lacks the
"Streaming Wizard" that used to be present in VLC 0.8.6.
If you absolutely need it, we advise you to keep VLC 0.8.6.
* The behavior of --sout-keep was changed. It's now activated by default.
* The marq, mosaic and logo commands in the rc interface changed. They
......@@ -33,14 +34,15 @@ Important notes:
EXTVLCOPT options parsing in m3u playlists. Note that only a limited set
of options is available to m3u playlists (CVE-2007-6683).
* The old access:url syntax is no longer supported. Use access://url instead.
E.g.: vlc:quit -> vlc://quit ;
udp:@239.255.12.12 -> udp://@239.255.12.12
E.g.: vlc:quit -> vlc://quit ;
udp:@239.255.12.12 -> udp://@239.255.12.12
* The ffmpeg module has been removed and replaced by avcodec, avformat, swscale
(or imgresample if you use a swscale-less ffmpeg build) and postproc modules.
* The web plugins ActiveX (IE)/Firefox/Mozilla/Safari now recognize the following
states: IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, STOPPING=5,
FORWARD=6, BACKWARD=7, ENDED=8, ERROR=9. With FORWARD and BACKWARD being
reserved for future implementations and are thus not functional atm.
* The web plugins ActiveX (IE)/Firefox/Mozilla/Safari now recognize the
following states: IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4,
STOPPING=5, FORWARD=6, BACKWARD=7, ENDED=8, ERROR=9. With FORWARD and
BACKWARD being reserved for future implementations and are thus not
functional atm.
* Croping and padding in transcode are now done using the croppadd video
filter. For example:
transcode{vcodec=mp2v,vfilter=croppadd{cropttop=20,cropbottom=30,paddleft=100}}
......@@ -56,7 +58,7 @@ Security updates:
Playlist:
* Vastly improved playlist support:
* Media library support
* Media library creation to save all your playlist items
* "Live search"
* Shoutcast TV listings
* Audioscrobbler/Last.FM support
......@@ -74,15 +76,15 @@ Inputs:
* JACK audio input support
* Input run time option (improved live stream recording)
* BDA devices access module for DVB-C/S/T capture cards on Microsoft Windows
* Re-written Screen access module for Mac OS X
* Re-written Screen access module for Mac OS X
using OpenGL instead of QuickDraw
* Screen module now supports partial screen capture and mouse following on X11.
* Experimental EyeTV access module (Mac OS X only)
* Experimental EyeTV access module
This requires the user to install a plugin to EyeTV.app
(available as a separate download).
* RTMP input support
* QTKit-based Input module for Mac OS X allowing display and streaming of video
taken from all QuickTime-compatible video devices (no audio yet)
taken from all iSight-labelled video cameras (no audio support)
* HTTP access now supports gzip compressed data and Digest Access
Authentication.
* New options to reduce latency between arrival of raw data and display of
......@@ -102,6 +104,7 @@ Demuxers:
* TiVo Series 2 support
* CD+G karaoke Files support
* MXF files support
* OMA support
Decoders:
* VP60/VP61/VP6F/VP62 support
......@@ -113,15 +116,15 @@ Decoders:
* Fluidsynth MIDI software synthesis (with external sound fonts)
* New codec FOURCCs to support more specific files:
Avid, FCP, Sony, Samsung, ...
* Closed Caption Decoder (DVD, ReplayTV, TiVo, DVB/ATSC)
* H.264 PAFF support
* DNxHD / VC-3 support
* NellyMoser ASAO support
* APE (Monkey audio) support
* VBI & EBU (Teletext) support
* RealVideo support (with the RealVideo run-time)
Subtitles:
* Closed Caption Decoder (DVD, ReplayTV, TiVo, DVB/ATSC)
* VBI & EBU (Teletext) support (*nix, Mac OS)
* Ogg/Kate subtitles support
* AQTitle subtitles support
* MKV USF subtitles support
......@@ -141,7 +144,7 @@ Encoders:
* Improved H.264 encoding speed
Video outputs and filters:
* New CoreAnimation output module (Mac OS X 10.5 only)
* New CoreAnimation-based output module (VLCKit framework on OS X only)
* Adjust, Invert and Distort (now split into Wave, Ripple, Gradient and
Psychedelic) video filters can now be streamed
* New puzzle video output filter
......@@ -180,8 +183,6 @@ Stream output:
* RTMP output
Interfaces:
* Windows/Linux
* Brand new interface for Linux and Windows, based on the Qt toolkit
* All
* New Simple Preferences dialogs showing the most important settings in an
end-user suitable way.
......@@ -189,12 +190,16 @@ Interfaces:
* Improved mouse gestures
* Vastly improved Update checker
* Full support for meta data editing (ID3v2, Ogg/Vorbis, AAC, APEv1/2)
* Windows/Linux
* Brand new interface for Linux and Windows, based on the Qt toolkit
* Fullscreen controller (transparency on Linux+Composite)
* Mac OS X
* Improved video output features
* Online access to VideoLAN's Help Wiki within VLC
* New setting to disable the "Recent Items" service
* When playing Radio (live) streams, the current track is shown correctly
* Correct appearance on Macs using Aqua's graphite theme
* Simplified Extended Controls panel
* Ncurses:
* Correctly displays wide characters when using an UTF-8 locale,
if libncursesw is available.
......@@ -216,12 +221,12 @@ Linux Port:
(which means that VLC doesn't use the $HOME/.vlc directory anymore)
Mac OS X Port:
* Mac OS X Framework that can be used to embed VLC in third party
* Mac OS X Framework "VLCKit" that can be used to embed VLC in third party
applications (Google Summer of Code Student project, Mac OS X 10.5 only)
* New text renderer based on Quartz replacing the existing Freetype solution
* Complete compatibility with Mac OS X 10.5 Leopard
* It is now required to compile a fully featured build
* The support of Mac OS X 10.3.9 was discontinued.
* The support of Mac OS X 10.3.9 and QuickTime 6.x was discontinued.
LibVLC:
* Event management and various improvements in libvlc
......@@ -947,12 +952,12 @@ Video Output:
* Experimental generic OpenGL video output (X11, Win32, MacOS X)
with support for effects.
* Improved filter and subpictures support :
- New filters can be streamed.
- "Subpicture filters" to overlay subpictures on video
- Centralized scaling and blending
- New filters can be streamed.
- "Subpicture filters" to overlay subpictures on video
- Centralized scaling and blending
* New filters :
- "time", to display current time
- "marq", to display a marquee
- "time", to display current time
- "marq", to display a marquee
Interfaces:
* OSD sliders for volume and postition information
......
......@@ -147,7 +147,7 @@ Laurent Mutricy <laurent.mutricy at ecl2005 dot ec-lyon dot fr> - HTTP interface
Leo Spalteholz <leo dot spalteholz at gmail dot com> - Qt interface design
Loox Thefuture <loox.thefuture at gmail dot com> - Media key in X11 vout
Lorena Gomes - Catalan translation
Lukas Durfina <lukas.durfina at gmail.com> - qt4: full screen controller. teletext button fix.
Lukas Durfina <lukas.durfina at gmail.com> - Qt4: full screen controller. Teletext button fix. Various fixes.
Mahrazi Mohd Kamal <mahrazi at gmail.com> - Malay Translation
Marc Nolette <nolette at videotron.ca> - PVR support in DirectShow input
Marco Munderloh <Marco.Munderloh at web.de> - HTTP fix for Win32 to URL filenames
......
......@@ -5589,16 +5589,6 @@ then
VLC_ADD_PLUGIN([test4])
fi
dnl
dnl Microsoft Layer for Unicode for WIN9x/ME
dnl
if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
then
AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
])
fi
dnl
dnl gtk_main plugin
dnl
......
......@@ -5,7 +5,7 @@ all: .iconv .intl .freetype .fribidi .zlib \
.live .goom2k4 .caca .mod .x264 .xml .twolame \
.png .gpg-error .gcrypt .opencdk .gnutls .mpcdec \
.dvdnav .dvbpsi .wxwidgets .qt4_win32 .dirac .SDL_image \
.dx_headers .dshow_headers .gecko-win32 .unicows .dca \
.dx_headers .dshow_headers .gecko-win32 .dca \
.lua .tag .fontconfig .portaudio \
.aclocal
# .daap .cddb .cdio .vcdimager
......@@ -2311,25 +2311,6 @@ DISTCLEAN_PKG += yasm-$(YASM_VERSION).tar.bz2
CLEAN_FILE += .aclocal
# ***************************************************************************
# UNICOWS (Unicode support for WINME/98/95)
# ***************************************************************************
libunicows-$(UNICOWS_VERSION).tar.gz:
$(WGET) $(UNICOWS_URL)
mv libunicows-$(UNICOWS_VERSION)-src.tar.gz $@ || true
libunicows: libunicows-$(UNICOWS_VERSION).tar.gz
$(EXTRACT_GZ)
.unicows: libunicows
(cd $</src; make -f makefile.mingw32 PATHSEP='/' $(HOSTCC) && cp -f ../lib/mingw32/libunicows.a $(PREFIX)/lib)
touch $@
CLEAN_FILE += .unicows
CLEAN_PKG += libunicows
DISTCLEAN_PKG += libunicows-$(UNICOWS_VERSION).tar.gz
# ***************************************************************************
# TagLib read and editing of tags of popular audio formats
# ***************************************************************************
......
......@@ -208,8 +208,6 @@ EXPAT_VERSION=2.0.0
EXPAT_URL=$(SF)/expat/expat-$(EXPAT_VERSION).tar.gz
PTHREADS_VERSION=2-8-0
PTHREADS_URL=ftp://sources.redhat.com/pub/pthreads-win32/pthreads-w32-$(PTHREADS_VERSION)-release.tar.gz
UNICOWS_VERSION=1.1.1
UNICOWS_URL=$(SF)/libunicows/libunicows-$(UNICOWS_VERSION)-src.tar.gz
ZVBI_VERSION=0.2.30
ZVBI_URL=$(SF)/zapping/zvbi-$(ZVBI_VERSION).tar.bz2
TAGLIB_VERSION=1.5
......
......@@ -637,13 +637,6 @@ Function .onInit
done:
!insertmacro MUI_LANGDLL_DISPLAY
;Win98 detection
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
StrCmp $R0 "4.9" lbl_win98
lbl_win98:
MessageBox MB_OK|MB_ICONQUESTION "Windows 98 ! Remember to install MSLU" IDOK
FunctionEnd
;; End function
......
......@@ -177,7 +177,8 @@ typedef enum vlc_dialog {
#define INTF_ABOUT_MSG LICENSE_MSG
#define EXTENSIONS_AUDIO "*.a52;*.aac;*.ac3;*.dts;*.flac;*.m4a;*.m4p;*.mka;" \
"*.mod;*.mp1;*.mp2;*.mp3;*.ogg;*.spx;*.wav;*.wma;*.xm"
"*.mod;*.mp1;*.mp2;*.mp3;*.ogg;*.oma;*.spx;" \
"*.wav;*.wma;*.xm"
#define EXTENSIONS_VIDEO "*.asf;*.avi;*.divx;*.dv;*.flv;*.gxf;*.m1v;*.m2v;" \
"*.m4v;*.mkv;*.mov;*.mp2;*.mp4;*.mpeg;*.mpeg1;" \
......
File mode changed from 100755 to 100644
......@@ -65,6 +65,7 @@ VideoWidget::VideoWidget( intf_thread_t *_p_i ) : QFrame( NULL ), p_intf( _p_i )
hide(); setMinimumSize( 16, 16 );
videoSize.rwidth() = -1;
videoSize.rheight() = -1;
setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
/* Black background is more coherent for a Video Widget IMVHO */
QPalette plt = palette();
......@@ -74,10 +75,17 @@ VideoWidget::VideoWidget( intf_thread_t *_p_i ) : QFrame( NULL ), p_intf( _p_i )
setAttribute( Qt::WA_PaintOnScreen, true );
/* The core can ask through a callback to show the video. */
connect( this, SIGNAL(askVideoWidgetToShow()), this, SLOT(show()), Qt::BlockingQueuedConnection );
#if HAS_QT43
connect( this, SIGNAL(askVideoWidgetToShow( unsigned int, unsigned int)),
this, SLOT(SetSizing(unsigned int, unsigned int )),
Qt::BlockingQueuedConnection );
#else
#error This is broken. Fix it with a QEventLoop with a processEvents ()
connect( this, SIGNAL(askVideoWidgetToShow( unsigned int, unsigned int)),
this, SLOT(SetSizing(unsigned int, unsigned int )) );
#endif
/* The core can ask through a callback to resize the video */
// CONNECT( this, askResize( int, int ), this, SetSizing( int, int ) );
}
void VideoWidget::paintEvent(QPaintEvent *ev)
......@@ -115,7 +123,7 @@ void *VideoWidget::request( vout_thread_t *p_nvout, int *pi_x, int *pi_y,
unsigned int *pi_width, unsigned int *pi_height )
{
msg_Dbg( p_intf, "Video was requested %i, %i", *pi_x, *pi_y );
emit askVideoWidgetToShow();
emit askVideoWidgetToShow( *pi_width, *pi_height );
if( p_vout )
{
msg_Dbg( p_intf, "embedded video already in use" );
......@@ -134,6 +142,7 @@ void VideoWidget::SetSizing( unsigned int w, unsigned int h )
msg_Dbg( p_intf, "Video is resizing to: %i %i", w, h );
videoSize.rwidth() = w;
videoSize.rheight() = h;
if( isHidden() ) show();
updateGeometry(); // Needed for deinterlace
}
......@@ -461,7 +470,7 @@ ControlsWidget::ControlsWidget( intf_thread_t *_p_i,
BUTTON_SET_IMG( prevSectionButton, "", previous.png, "" );
BUTTON_SET_IMG( nextSectionButton, "", next.png, "" );
BUTTON_SET_IMG( menuButton, "", previous.png, "" );
BUTTON_SET_IMG( menuButton, "", previous.png, qtr( "Menu" ) );
discFrame->hide();
......@@ -721,11 +730,8 @@ void ControlsWidget::next()
void ControlsWidget::setNavigation( int navigation )
{
#define HELP_MENU N_( "Menu" )
#define HELP_PCH N_( "Previous chapter" )
#define HELP_NCH N_( "Next chapter" )
#define HELP_PTR N_( "Previous track" )
#define HELP_NTR N_( "Next track" )
// 1 = chapter, 2 = title, 0 = no
if( navigation == 0 )
......@@ -872,7 +878,7 @@ FullscreenControllerWidget::FullscreenControllerWidget( intf_thread_t *_p_i,
MainInterface *_p_mi, bool b_advControls, bool b_shiny )
: ControlsWidget( _p_i, _p_mi, b_advControls, b_shiny, true ),
i_lastPosX( -1 ), i_lastPosY( -1 ), i_hideTimeout( 1 ),
b_mouseIsOver( false )
b_mouseIsOver( false ), b_isFullscreen( false )
{
setWindowFlags( Qt::ToolTip );
......@@ -970,7 +976,11 @@ void FullscreenControllerWidget::slowHideFSC()
}
else
{
#ifdef WIN32TRICK
if ( windowOpacity() > 0.0 && !fscHidden )
#else
if ( windowOpacity() > 0.0 )
#endif
{
/* we should use 0.01 because of 100 pieces ^^^
but than it cannt be done in time */
......@@ -1007,7 +1017,7 @@ void FullscreenControllerWidget::customEvent( QEvent *event )
{
int type = event->type();
if ( type == FullscreenControlShow_Type )
if ( type == FullscreenControlShow_Type && b_isFullscreen )
{
#ifdef WIN32TRICK
// after quiting and going to fs, we need to call show()
......@@ -1144,7 +1154,8 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable,
if ( var_GetBool( p_vout, "fullscreen" ) && !b_registered )
{
p_fs->SetHideTimeout( var_GetInteger( p_vout, "mouse-hide-timeout" ) );
p_fs->setHideTimeout( var_GetInteger( p_vout, "mouse-hide-timeout" ) );
p_fs->setIsFullscreen( true );
var_AddCallback( p_vout, "mouse-moved",
showFullscreenControllCallback, (void *) p_fs );
b_registered = true;
......@@ -1152,14 +1163,13 @@ static int regMouseMoveCallback( vlc_object_t *vlc_object, const char *variable,
if ( !var_GetBool( p_vout, "fullscreen" ) && b_registered )
{
p_fs->setIsFullscreen( false );
p_fs->hide();
var_DelCallback( p_vout, "mouse-moved",
showFullscreenControllCallback, (void *) p_fs );
b_registered = false;
}
if ( !var_GetBool( p_vout, "fullscreen" ) )
p_fs->hide();
return VLC_SUCCESS;
}
......
......@@ -91,8 +91,7 @@ private:
QSize videoSize;
signals:
void askVideoWidgetToShow();
//void askResize();
void askVideoWidgetToShow( unsigned int, unsigned int );
public slots:
void SetSizing( unsigned int, unsigned int );
......@@ -251,7 +250,8 @@ public:
FullscreenControllerWidget( intf_thread_t *, MainInterface*, bool, bool );
virtual ~FullscreenControllerWidget();
void SetHideTimeout( int hideTimeout ) { i_hideTimeout = hideTimeout; }
void setHideTimeout( int hideTimeout ) { i_hideTimeout = hideTimeout; }
void setIsFullscreen( bool isFS ) { b_isFullscreen = isFS; }
void regFullscreenCallback( vout_thread_t *p_vout );
bool isFSCHidden();
......@@ -284,6 +284,7 @@ private:
int i_lastPosY;
int i_hideTimeout; /* FSC hiding timeout, same as mouse hiding timeout */
bool b_mouseIsOver;
bool b_isFullscreen;
#ifdef WIN32TRICK
bool fscHidden;
......
......@@ -410,13 +410,14 @@ NetOpenPanel::NetOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
ui.setupUi( this );
/* CONNECTs */
CONNECT( ui.protocolCombo, currentIndexChanged( int ),
CONNECT( ui.protocolCombo, activated( int ),
this, updateProtocol( int ) );
CONNECT( ui.portSpin, valueChanged( int ), this, updateMRL() );
CONNECT( ui.addressText, textChanged( QString ), this, updateMRL());
CONNECT( ui.timeShift, clicked(), this, updateMRL());
CONNECT( ui.ipv6, clicked(), this, updateMRL());
ui.protocolCombo->addItem( "" );
ui.protocolCombo->addItem("HTTP", QVariant("http"));
ui.protocolCombo->addItem("HTTPS", QVariant("https"));
ui.protocolCombo->addItem("FTP", QVariant("ftp"));
......@@ -424,6 +425,7 @@ NetOpenPanel::NetOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
ui.protocolCombo->addItem("RTSP", QVariant("rtsp"));
ui.protocolCombo->addItem("UDP/RTP (unicast)", QVariant("udp"));
ui.protocolCombo->addItem("UDP/RTP (multicast)", QVariant("udp"));
ui.protocolCombo->addItem("RTMP", QVariant("rtmp"));
}
NetOpenPanel::~NetOpenPanel()
......@@ -433,19 +435,26 @@ void NetOpenPanel::clear()
{}
/* update the widgets according the type of protocol */
void NetOpenPanel::updateProtocol( int idx ) {
void NetOpenPanel::updateProtocol( int idx_proto ) {
QString addr = ui.addressText->text();
QString proto = ui.protocolCombo->itemData( idx ).toString();
QString proto = ui.protocolCombo->itemData( idx_proto ).toString();
ui.timeShift->setEnabled( idx >= 5 );
ui.ipv6->setEnabled( idx == 5 );
ui.addressText->setEnabled( idx != 5 );
ui.portSpin->setEnabled( idx >= 5 );
ui.timeShift->setEnabled( idx_proto == UDP_PROTO ||
idx_proto == UDPM_PROTO );
ui.ipv6->setEnabled( idx_proto == UDP_PROTO );
ui.addressText->setEnabled( idx_proto != UDP_PROTO );
ui.portSpin->setEnabled( idx_proto == UDP_PROTO ||
idx_proto == UDPM_PROTO );
if( idx_proto == NO_PROTO ) return;
/* If we already have a protocol in the address, replace it */
if( addr.contains( "://")) {
msg_Err( p_intf, "replace");
addr.replace( QRegExp("^.*://"), proto + "://");
if( addr.contains( "://"))
{
if( idx_proto != UDPM_PROTO )
addr.replace( QRegExp("^.*://@*"), proto + "://");
else
addr.replace( QRegExp("^.*://"), proto + "://@");
ui.addressText->setText( addr );
}
updateMRL();
......@@ -455,36 +464,41 @@ void NetOpenPanel::updateMRL() {
QString mrl = "";
QString addr = ui.addressText->text();
addr = QUrl::toPercentEncoding( addr, ":/?#@!$&'()*+,;=" );
int proto = ui.protocolCombo->currentIndex();
int idx_proto = ui.protocolCombo->currentIndex();
if( addr.contains( "://") && ( proto != 5 || proto != 6 ) )
if( addr.contains( "://"))
{
mrl = addr;
/* Match the correct item in the comboBox */
ui.protocolCombo->setCurrentIndex(
ui.protocolCombo->findData( addr.section( ':', 0, 0 ) ) );
if( idx_proto != UDP_PROTO || idx_proto != UDPM_PROTO )
mrl = addr;
}
else
{
switch( proto ) {
case 0:
switch( idx_proto ) {
case HTTP_PROTO:
mrl = "http://" + addr;
emit methodChanged("http-caching");
break;
case 1:
case HTTPS_PROTO:
mrl = "https://" + addr;
emit methodChanged("http-caching");
break;
case 3:
case MMS_PROTO:
mrl = "mms://" + addr;
emit methodChanged("mms-caching");
break;
case 2:
case FTP_PROTO:
mrl = "ftp://" + addr;
emit methodChanged("ftp-caching");
break;
case 4: /* RTSP */
case RTSP_PROTO:
mrl = "rtsp://" + addr;
emit methodChanged("rtsp-caching");
break;
case 5:
case UDP_PROTO:
mrl = "udp://@";
if( ui.ipv6->isEnabled() && ui.ipv6->isChecked() )
{
......@@ -493,7 +507,7 @@ void NetOpenPanel::updateMRL() {
mrl += QString(":%1").arg( ui.portSpin->value() );
emit methodChanged("udp-caching");
break;
case 6: /* UDP multicast */
case UDPM_PROTO: /* UDP multicast */
mrl = "udp://@";
/* Add [] to IPv6 */
if ( addr.contains(':') && !addr.contains('[') )
......@@ -503,6 +517,11 @@ void NetOpenPanel::updateMRL() {
else mrl += addr;
mrl += QString(":%1").arg( ui.portSpin->value() );
emit methodChanged("udp-caching");
case RTMP_PROTO:
mrl = "rtmp://" + addr;
emit methodChanged("rtmp-caching");
break;
}
}
......@@ -907,10 +926,10 @@ CaptureOpenPanel::CaptureOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
screenDevLayout->addWidget( screenLabel, 0, 0 );
/* General connects */
connect( ui.deviceCombo, SIGNAL( activated( int ) ),
stackedDevLayout, SLOT( setCurrentIndex( int ) ) );
connect( ui.deviceCombo, SIGNAL( activated( int ) ),
stackedPropLayout, SLOT( setCurrentIndex( int ) ) );
CONNECT( ui.deviceCombo, activated( int ) ,
stackedDevLayout, setCurrentIndex( int ) );
CONNECT( ui.deviceCombo, activated( int ),
stackedPropLayout, setCurrentIndex( int ) );
CONNECT( ui.deviceCombo, activated( int ), this, updateMRL() );
CONNECT( ui.deviceCombo, activated( int ), this, updateButtons() );
......@@ -1114,7 +1133,7 @@ void CaptureOpenPanel::advancedDialog()
advButtonBox->addButton( closeButton, QDialogButtonBox::AcceptRole );
advButtonBox->addButton( cancelButton, QDialogButtonBox::RejectRole );
gLayout->addWidget( advButtonBox, i_confsize + 1, 0, 1, -1 );
mainLayout->addWidget( advButtonBox );
/* Creation of the MRL */
if( adv->exec() )
......
......@@ -48,6 +48,20 @@
#define setSpinBoxFreq( spinbox ){ spinbox->setRange ( 0, INT_MAX ); \
spinbox->setAccelerated( true ); }
enum
{
NO_PROTO,
HTTP_PROTO,
HTTPS_PROTO,
MMS_PROTO,
FTP_PROTO,
RTSP_PROTO,
UDP_PROTO,
UDPM_PROTO,
RTMP_PROTO
};
enum
{
V4L_DEVICE,
......
......@@ -292,6 +292,9 @@ void UpdateDialog::updateNotify( bool b_result )
updateButton->setText( "Download" );
updateLabel->setText( qtr( "There is a new version of VLC :\n" )
+ qfu( p_release->psz_desc ) );
/* Force the dialog to be shown */
this->show();
}
else
updateLabel->setText( qtr( "You have the latest version of VLC" ) );
......
......@@ -436,12 +436,7 @@ void MainInterface::handleMainUi( QSettings *settings )
if( videoEmbeddedFlag )
{
videoWidget = new VideoWidget( p_intf );
mainLayout->insertWidget( 0, videoWidget );
var_Create( p_intf, "window_widget", VLC_VAR_ADDRESS );
vlc_value_t val;
val.p_address = this;
var_Set( p_intf, "window_widget", val );
mainLayout->insertWidget( 0, videoWidget, 10 );
}
/* Finish the sizing */
......@@ -659,8 +654,6 @@ private:
* Thou shall not call/resize/hide widgets from on another thread.
* This is wrong, and this is TEH reason to emit signals on those Video Functions
**/
/* function called from ::DoRequest in order to show a nice VideoWidget
at the good size */
void *MainInterface::requestVideo( vout_thread_t *p_nvout, int *pi_x,
int *pi_y, unsigned int *pi_width,
unsigned int *pi_height )
......@@ -692,7 +685,7 @@ void *MainInterface::requestVideo( vout_thread_t *p_nvout, int *pi_x,
#endif
videoIsActive = true;
emit askVideoToResize( *pi_width, *pi_height );
// emit askVideoToResize( *pi_width, *pi_height );
emit askUpdate();
fullscreenControls->regFullscreenCallback( p_nvout );
......@@ -700,8 +693,6 @@ void *MainInterface::requestVideo( vout_thread_t *p_nvout, int *pi_x,
return ret;
}
/* function called from ::DoRequest in order to show a nice VideoWidget
at the good size */
void MainInterface::requestNotEmbeddedVideo( vout_thread_t *p_nvout )
{
fullscreenControls->regFullscreenCallback( p_nvout );
......
......@@ -29,6 +29,10 @@
#include <QLocale>
#include <QTranslator>
#include <QDate>
#include <QMutex>
#include <QMutexLocker>
#include <QWaitCondition>
#include <QPointer>
#include "qt4.hpp"
#include "dialogs_provider.hpp"
......@@ -91,7 +95,7 @@ static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * );
#define OPACITY_TEXT N_( "Windows opacity between 0.1 and 1." )
#define OPACITY_LONGTEXT N_( "Sets the windows opacity between 0