Commit bb22020a authored by Jean-Paul Saman's avatar Jean-Paul Saman

Merge branch 'master' of git.m2x.eu:vlc into hls

Conflicts:
	modules/stream_filter/httplive.c
parents dda21822 cda18d88
...@@ -471,7 +471,7 @@ VLC-release.app: vlc ...@@ -471,7 +471,7 @@ VLC-release.app: vlc
$(top_builddir)/tmp/modules/gui/macosx; \ $(top_builddir)/tmp/modules/gui/macosx; \
done done
$(AM_V_GEN)cd $(top_builddir)/tmp/extras/package/macosx && \ $(AM_V_GEN)cd $(top_builddir)/tmp/extras/package/macosx && \
xcodebuild -target vlc SYMROOT=../../../build $(silentstd) && \ xcodebuild install -target vlc SYMROOT=../../../build DSTROOT=../../../build $(silentstd) && \
cd ../../../../ && \ cd ../../../../ && \
cp -R $(top_builddir)/tmp/build/Default/VLC.bundle $(top_builddir)/VLC-release.app; \ cp -R $(top_builddir)/tmp/build/Default/VLC.bundle $(top_builddir)/VLC-release.app; \
rm -Rf $(top_builddir)/tmp rm -Rf $(top_builddir)/tmp
...@@ -624,7 +624,7 @@ VLC.app: vlc $(top_builddir)/src/.libs/libvlccore.dylib $(top_builddir)/src/.lib ...@@ -624,7 +624,7 @@ VLC.app: vlc $(top_builddir)/src/.libs/libvlccore.dylib $(top_builddir)/src/.lib
$(top_builddir)/tmp/modules/gui/macosx; \ $(top_builddir)/tmp/modules/gui/macosx; \
done done
$(AM_V_GEN)cd $(top_builddir)/tmp/extras/package/macosx && \ $(AM_V_GEN)cd $(top_builddir)/tmp/extras/package/macosx && \
xcodebuild -target vlc SYMROOT=../../../build $(silentstd) && \ xcodebuild install -target vlc SYMROOT=../../../build DSTROOT=../../../build $(silentstd) && \
cd ../../../../ && \ cd ../../../../ && \
cp -R $(top_builddir)/tmp/build/Default/VLC.bundle $(top_builddir)/VLC.app cp -R $(top_builddir)/tmp/build/Default/VLC.bundle $(top_builddir)/VLC.app
$(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS $(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS
......
...@@ -81,6 +81,8 @@ Services Discovery: ...@@ -81,6 +81,8 @@ Services Discovery:
libVLC: libVLC:
* New capabilities for libVLC: * New capabilities for libVLC:
** libvlc_media_player_navigate for DVD navigation ** libvlc_media_player_navigate for DVD navigation
** libvlc_audio_filter_list_get, libvlc_video_filter_list_get to get the
list of available audio and video filters
Changes between 1.1.4.1 and 1.1.5: Changes between 1.1.4.1 and 1.1.5:
......
...@@ -95,7 +95,7 @@ AS_IF([test -n "${with_binary_version}"],[ ...@@ -95,7 +95,7 @@ AS_IF([test -n "${with_binary_version}"],[
]) ])
dnl Check how we are asked to build dnl Check how we are asked to build
AS_IF([test "${enable_shared}" = "no"], [ AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.]) AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
]) ])
......
...@@ -207,9 +207,6 @@ case $TARGET in ...@@ -207,9 +207,6 @@ case $TARGET in
CFLAGS_TUNING=" -arch ppc -mtune=G4" CFLAGS_TUNING=" -arch ppc -mtune=G4"
EXTRA_LDFLAGS=" -arch ppc" EXTRA_LDFLAGS=" -arch ppc"
# FIXME - this one seems to be redundant?
LD="ld -arch ppc -syslibroot \${MACOSX_SDK} -mmacosx-version-min=\${SDK_TARGET}"
;; ;;
i686-apple-darwin*) i686-apple-darwin*)
hint_distro macosx32 hint_distro macosx32
...@@ -328,6 +325,10 @@ case "$DISTRO" in ...@@ -328,6 +325,10 @@ case "$DISTRO" in
EXTRA_CFLAGS="${EXTRA_CFLAGS} -D\${ENVP} -isysroot \${MACOSX_SDK} -mmacosx-version-min=\${SDK_TARGET}" EXTRA_CFLAGS="${EXTRA_CFLAGS} -D\${ENVP} -isysroot \${MACOSX_SDK} -mmacosx-version-min=\${SDK_TARGET}"
CC="/usr/bin/gcc-4.2" CC="/usr/bin/gcc-4.2"
CXX="/usr/bin/g++-4.2" CXX="/usr/bin/g++-4.2"
LD="ld"
RANLIB="ranlib"
AR=
STRIP="strip"
add_makefile_cfg "PATH = /bin:/usr/bin:/usr/local/bin" add_makefile_cfg "PATH = /bin:/usr/bin:/usr/local/bin"
add_makefile_cfg "SDK_TARGET = ${SDK_TARGET}" add_makefile_cfg "SDK_TARGET = ${SDK_TARGET}"
add_makefile_cfg "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}" add_makefile_cfg "ENVP = MACOSX_DEPLOYMENT_TARGET=${SDK_TARGET}"
...@@ -350,6 +351,25 @@ case "$DISTRO" in ...@@ -350,6 +351,25 @@ case "$DISTRO" in
win*) win*)
add_makefile_cfg "PKG_CONFIG_PATH = \$(PREFIX)/lib/pkgconfig" add_makefile_cfg "PKG_CONFIG_PATH = \$(PREFIX)/lib/pkgconfig"
;; ;;
android)
if test -z "$ANDROID_NDK"; then
error "The bootstrap script requires the ANDROID_NDK environment variable "
error "to be set when building for Android"
exit 1
fi
# The given host (arm-eabi) is not the real one (arm-linux-androideabi)
ln -sfn $TARGET hosts/arm-linux-androideabi
CC="arm-linux-androideabi-gcc -nostdlib -lc -lgcc"
CXX="arm-linux-androideabi-g++ -nostdlib -lc -lgcc"
NM=arm-linux-androideabi-nm
AR=arm-linux-androideabi-ar
LD=arm-linux-androideabi-ld
RANLIB=arm-linux-androideabi-ranlib
STRIP=arm-linux-androideabi-strip
# Add the PATH to the NDK
add_makefile_cfg "ANDROID_NDK = ${ANDROID_NDK}"
add_makefile_cfg "PATH = ${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/:${PATH}"
add_enabled_makefile_cfg "HAVE_LINUX"
esac esac
# Save passed flags # Save passed flags
...@@ -382,9 +402,16 @@ add_makefile_cfg "EXTRA_PATH = ${EXTRA_PATH}" ...@@ -382,9 +402,16 @@ add_makefile_cfg "EXTRA_PATH = ${EXTRA_PATH}"
#CMAKE #CMAKE
if test "$TARGET" != "$BUILD"; then if test "$TARGET" != "$BUILD"; then
toolchain_cmake="${BUILDDIR}/toolchain.cmake" toolchain_cmake="${BUILDDIR}/toolchain.cmake"
rm -f ${BUILDDIR}/toolchain.cmake
if test ${DISTRO} = "win32"; then if test ${DISTRO} = "win32"; then
echo "SET(CMAKE_SYSTEM_NAME Windows)" >> "${toolchain_cmake}" echo "SET(CMAKE_SYSTEM_NAME Windows)" >> "${toolchain_cmake}"
fi fi
case "$DISTRO" in macosx*)
echo "SET(CMAKE_SYSTEM_NAME Darwin)" >> "${toolchain_cmake}"
echo "set(CMAKE_C_FLAGS ${CFLAGS_TUNING} ${EXTRA_CFLAGS})" >> "${toolchain_cmake}"
echo "set(CMAKE_CXX_FLAGS ${CFLAGS_TUNING} ${EXTRA_CFLAGS})" >> "${toolchain_cmake}"
echo "set(CMAKE_LD_FLAGS ${EXTRA_LDFLAGS})" >> "${toolchain_cmake}"
esac
echo "SET(CMAKE_C_COMPILER ${CC})" >> "${toolchain_cmake}" echo "SET(CMAKE_C_COMPILER ${CC})" >> "${toolchain_cmake}"
echo "SET(CMAKE_CXX_COMPILER ${CXX})" >> "${toolchain_cmake}" echo "SET(CMAKE_CXX_COMPILER ${CXX})" >> "${toolchain_cmake}"
echo "SET(CMAKE_FIND_ROOT_PATH `pwd` )" >> "${toolchain_cmake}" echo "SET(CMAKE_FIND_ROOT_PATH `pwd` )" >> "${toolchain_cmake}"
...@@ -432,19 +459,19 @@ fi ...@@ -432,19 +459,19 @@ fi
if test "$DISTRO" = "macosx32"; then if test "$DISTRO" = "macosx32"; then
info "*****************************************************************" info "*****************************************************************"
info "* VLC will be compiled in 32bit mode. *" info "* VLC will be compiled in 32bit mode using the 10.5 & later SDK.*"
info "* *" info "* *"
info "* Re-run with the x86_64-apple-darwin* argument to turn on *" info "* Re-run with the x86_64-apple-darwin* argument to turn on *"
info "* 64bit compilation for Intel-based Macs, whereas * is either *" info "* 64bit compilation for Intel-based Macs, whereas * is either *"
info "* 9 or 10 depending on your Darwin version. *" info "* 9 or 10 depending on your Darwin version. *"
info "* There is NO PPC64 support right now. *" info "* There is no PPC64 support. *"
info "*****************************************************************" info "*****************************************************************"
fi fi
if test "$DISTRO" = "macosx64"; then if test "$DISTRO" = "macosx64"; then
info info
info "*****************************************************************" info "*****************************************************************"
info "* VLC will be compiled in 64bit mode using the 10.5 SDK. *" info "* VLC will be compiled in 64bit mode using the 10.5 & later SDK.*"
info "*****************************************************************" info "*****************************************************************"
fi fi
...@@ -452,9 +479,9 @@ case `uname` in ...@@ -452,9 +479,9 @@ case `uname` in
Linux) Linux)
CPUS=`grep -c ^processor /proc/cpuinfo` CPUS=`grep -c ^processor /proc/cpuinfo`
;; ;;
Darwin) # Darwin)
CPUS=`sysctl hw.ncpu|cut -d: -f2` # CPUS=`sysctl hw.ncpu|cut -d: -f2`
;; # ;;
*) *)
CPUS=1 # default CPUS=1 # default
;; ;;
......
...@@ -49,7 +49,7 @@ src: using-src ...@@ -49,7 +49,7 @@ src: using-src
ifdef HAVE_DARWIN_OS ifdef HAVE_DARWIN_OS
CONTRIBREV=36 CONTRIBREV=37
contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2: contrib-macosx-$(ARCH)-$(CONTRIBREV).tar.bz2:
$(WGET) http://downloads.videolan.org/pub/videolan/testing/contrib/$@ $(WGET) http://downloads.videolan.org/pub/videolan/testing/contrib/$@
......
# android rules
# Not compiling: .shout .ebml .matroska .live .mod .x264 .caca .mpcdec .dirac .schroedinger .libass
all: .zlib \
.a52 .mpeg2 .mad .ogg .vorbis .vorbisenc .theora \
.flac .speex .faad .lame .ffmpeg \
.twolame \
.png .dvbpsi \
.dca .kate
ANDROID_INCLUDE=$(ANDROID_NDK)/platforms/android-9/arch-arm/usr/include
ANDROID_LIB=$(ANDROID_NDK)/platforms/android-9/arch-arm/usr/lib
EXTRA_CPPFLAGS=-I$(ANDROID_INCLUDE)
EXTRA_LDFLAGS=-Wl,-rpath-link=$(ANDROID_LIB),-Bdynamic,-dynamic-linker=/system/bin/linker -Wl,--no-undefined -Wl,-shared -L$(ANDROID_LIB)
EXTRA_CFLAGS=
--- sidplay-libs-2.1.1.orig/libsidplay/include/sidplay/sidendian.h
+++ sidplay-libs-2.1.1/libsidplay/include/sidplay/sidendian.h
@@ -16,6 +16,10 @@
***************************************************************************/
/***************************************************************************
* $Log: sidendian.h,v $
+ * Revision 1.6 2005/11/20 11:02:06 s_a_white
+ * Work around for bug in gcc 4 (optimiser breaks if variable never has a
+ * direct assignment).
+ *
* Revision 1.5 2001/07/03 22:44:13 s_a_white
* Added endian_16 to convert a 16 bit value to an array of 8s.
*
@@ -141,7 +145,7 @@
// Convert high-byte and low-byte to 16-bit word.
inline uint_least16_t endian_16 (uint8_t hi, uint8_t lo)
{
- uint_least16_t word;
+ uint_least16_t word = 0;
endian_16lo8 (word, lo);
endian_16hi8 (word, hi);
return word;
@@ -334,7 +338,7 @@
// Swap word endian.
inline void endian_32swap8 (uint_least32_t &dword)
{
- uint_least16_t lo, hi;
+ uint_least16_t lo = 0, hi = 0;
lo = endian_32lo16 (dword);
hi = endian_32hi16 (dword);
endian_16swap8 (lo);
@@ -346,8 +350,8 @@
// Convert high-byte and low-byte to 32-bit word.
inline uint_least32_t endian_32 (uint8_t hihi, uint8_t hilo, uint8_t hi, uint8_t lo)
{
- uint_least32_t dword;
- uint_least16_t word;
+ uint_least32_t dword = 0;
+ uint_least16_t word = 0;
endian_32lo8 (dword, lo);
endian_32hi8 (dword, hi);
endian_16lo8 (word, hilo);
@@ -374,7 +378,7 @@
defined(SID_WORDS_LITTLEENDIAN)
*((uint_least32_t *) ptr) = dword;
#else
- uint_least16_t word;
+ uint_least16_t word = 0;
ptr[0] = endian_32lo8 (dword);
ptr[1] = endian_32hi8 (dword);
word = endian_32hi16 (dword);
@@ -401,7 +405,7 @@
defined(SID_WORDS_BIGENDIAN)
*((uint_least32_t *) ptr) = dword;
#else
- uint_least16_t word;
+ uint_least16_t word = 0;
word = endian_32hi16 (dword);
ptr[1] = endian_16lo8 (word);
ptr[0] = endian_16hi8 (word);
--- sidplay-libs-2.1.1/libsidplay/src/sidtune/SidTune.cpp.old 2008-07-25 16:55:02.000000000 \
+0000
+++ sidplay-libs-2.1.1/libsidplay/src/sidtune/SidTune.cpp 2008-07-25 16:53:58.000000000 \
+0000
@@ -283,7 +283,7 @@
uint_least32_t fileLen = 0;
// This sucks big time
- openmode createAtrr = std::ios::in;
+ std::_Ios_Openmode createAtrr = std::ios::in;
#ifdef HAVE_IOS_NOCREATE
createAtrr |= std::ios::nocreate;
#endif
@@ -952,7 +952,7 @@
if ( status )
{
// Open binary output file stream.
- openmode createAttr = std::ios::out;
+ std::_Ios_Openmode createAttr = std::ios::out;
#if defined(HAVE_IOS_BIN)
createAttr |= std::ios::bin;
#else
@@ -1002,7 +1002,7 @@
if ( status )
{
// Open ASCII output file stream.
- openmode createAttr = std::ios::out;
+ std::_Ios_Openmode createAttr = std::ios::out;
if ( overWriteFlag )
createAttr |= std::ios::trunc;
else
@@ -1036,7 +1036,7 @@
if ( status )
{
// Open binary output file stream.
- openmode createAttr = std::ios::out;
+ std::_Ios_Openmode createAttr = std::ios::out;
#if defined(HAVE_IOS_BIN)
createAttr |= std::ios::bin;
#else
--- sidplay-2.1.1/libsidplay/include/sidplay/SmartPtr.h 2004-06-14 22:08:04.000000000 +0200
+++ sidplay2/libsidplay/include/sidplay/SmartPtr.h 2010-12-28 23:33:07.803027697 +0100
@@ -211,16 +211,16 @@
{
if ( bufferLen >= 1 )
{
- pBufCurrent = ( bufBegin = buffer );
- bufEnd = bufBegin + bufferLen;
- bufLen = bufferLen;
- status = true;
+ this->pBufCurrent = ( this->bufBegin = buffer );
+ this->bufEnd = this->bufBegin + bufferLen;
+ this->bufLen = bufferLen;
+ this->status = true;
}
else
{
- pBufCurrent = bufBegin = bufEnd = 0;
- bufLen = 0;
- status = false;
+ this->pBufCurrent = this->bufBegin = this->bufEnd = 0;
+ this->bufLen = 0;
+ this->status = false;
}
}
};
...@@ -602,7 +602,6 @@ libogg-$(OGG_VERSION).tar.gz: ...@@ -602,7 +602,6 @@ libogg-$(OGG_VERSION).tar.gz:
libogg: libogg-$(OGG_VERSION).tar.gz libogg: libogg-$(OGG_VERSION).tar.gz
$(EXTRACT_GZ) $(EXTRACT_GZ)
patch -p0 < Patches/libogg-1.1.patch patch -p0 < Patches/libogg-1.1.patch
(cd $@; patch -p2 < ../Patches/libogg-r17608.diff)
ifdef HAVE_WINCE ifdef HAVE_WINCE
patch -p0 < Patches/libogg-wince.patch patch -p0 < Patches/libogg-wince.patch
endif endif
...@@ -968,7 +967,11 @@ ifdef HAVE_CROSS_COMPILE ...@@ -968,7 +967,11 @@ ifdef HAVE_CROSS_COMPILE
FFMPEGCONF += --enable-cross-compile FFMPEGCONF += --enable-cross-compile
endif endif
ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX ifdef HAVE_CROSS_COMPILE_NEEDS_CROSS_PREFIX
ifndef HAVE_ANDROID
FFMPEGCONF += --cross-prefix=$(HOST)- FFMPEGCONF += --cross-prefix=$(HOST)-
else
FFMPEGCONF += --cross-prefix=arm-linux-androideabi- --arch=armv4l
endif
endif endif
# #
...@@ -997,13 +1000,15 @@ endif ...@@ -997,13 +1000,15 @@ endif
ifndef HAVE_UCLIBC ifndef HAVE_UCLIBC
ifndef HAVE_WINCE ifndef HAVE_WINCE
ifndef HAVE_IOS ifndef HAVE_IOS
ifndef HAVE_ANDROID
FFMPEGCONF+= --enable-libmp3lame --enable-libgsm FFMPEGCONF+= --enable-libmp3lame --enable-libgsm
endif endif
endif endif
endif endif
endif
ifdef CC ifdef CC
FFMPEGCONF += --cc=$(CC) FFMPEGCONF += --cc="$(CC)"
endif endif
ifdef HAVE_MACOSX_ON_INTEL ifdef HAVE_MACOSX_ON_INTEL
...@@ -1125,6 +1130,7 @@ FFMPEG_DEPS-$(HAVE_WIN64) = .lame .gsm .zlib ...@@ -1125,6 +1130,7 @@ FFMPEG_DEPS-$(HAVE_WIN64) = .lame .gsm .zlib
FFMPEG_DEPS-$(HAVE_ARMELF) = .lame .gsm .zlib FFMPEG_DEPS-$(HAVE_ARMELF) = .lame .gsm .zlib
FFMPEG_DEPS-$(HAVE_MACOSX) += .yasm FFMPEG_DEPS-$(HAVE_MACOSX) += .yasm
FFMPEG_DEPS-$(HAVE_WIN32) += .dshow_headers FFMPEG_DEPS-$(HAVE_WIN32) += .dshow_headers
FFMPEG_DEPS-$(HAVE_ANDROID) =
ifdef SVN ifdef SVN
FFMPEG_MK_TARGET = ffmpeg/.svn-$(FFMPEG_SVN_REV) FFMPEG_MK_TARGET = ffmpeg/.svn-$(FFMPEG_SVN_REV)
...@@ -2054,12 +2060,18 @@ DISTCLEAN_PKG += SDL_image-$(SDL_IMAGE_VERSION).tar.gz ...@@ -2054,12 +2060,18 @@ DISTCLEAN_PKG += SDL_image-$(SDL_IMAGE_VERSION).tar.gz
mpcdec: mpcdec:
$(SVN) co $(MUSE_SVN) -r 468 mpcdec $(SVN) co $(MUSE_SVN) -r 468 mpcdec
cd $@; patch -p0 < ../Patches/libmpc-simple.patch (cd $@; patch -p0 < ../Patches/libmpc-simple.patch)
ifdef HAVE_MACOSX
(cd $@; sed -e 's%-O3 -Wall%-O3 -Wall $(CFLAGS)%' -i.orig CMakeLists.txt)
endif
.mpcdec: mpcdec .mpcdec: mpcdec
(cd $<; cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install) (cd $<; cmake . -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake -DCMAKE_INSTALL_PREFIX=$(PREFIX) && make install)
ifdef HAVE_WIN32 ifdef HAVE_WIN32
(cd $<; cp libmpcdec/libmpcdec_static.a $(PREFIX)/lib/libmpcdec.a) (cd $<; cp libmpcdec/libmpcdec_static.a $(PREFIX)/lib/libmpcdec.a)
endif
ifdef HAVE_MACOSX
(cd $<; cp libmpcdec/libmpcdec.dylib $(PREFIX)/lib/libmpcdec.dylib)
endif endif
touch $@ touch $@
...@@ -2638,6 +2650,27 @@ CLEAN_FILE += .gme ...@@ -2638,6 +2650,27 @@ CLEAN_FILE += .gme
CLEAN_PKG += game-music-emu-$(GME_VERSION) CLEAN_PKG += game-music-emu-$(GME_VERSION)
DISTCLEAN_PKG += game-music-emu-$(GME_VERSION).tbz2 DISTCLEAN_PKG += game-music-emu-$(GME_VERSION).tbz2
# ********************************
# SidPlay2
# ********************************
sidplay-libs-2.1.1.tar.gz:
$(WGET) $(SID_URL)
sidplay-2.1.1: sidplay-libs-2.1.1.tar.gz
$(EXTRACT_GZ)
(cd $@; patch -p1 < ../Patches/sidplay2-openmode.patch)
(cd $@; patch -p1 < ../Patches/sidplay2-endian.patch)
(cd $@; patch -p1 < ../Patches/sidplay2-smartprt.patch)
.sidplay: sidplay-2.1.1
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) && make -C libsidplay && make -C libsidplay install )
CLEAN_FILE += .sidplay
CLEAN_PKG += sidplay-2.1.1
DISTCLEAN_PKG += sidplay-libs-2.1.1.tar.gz
##
tools: $(TOOLS) tools: $(TOOLS)
# *************************************************************************** # ***************************************************************************
......
...@@ -34,8 +34,8 @@ LIBAMR_NB=$(PENGUIN)/amrnb-$(LIBAMR_NB_VERSION).tar.bz2 ...@@ -34,8 +34,8 @@ LIBAMR_NB=$(PENGUIN)/amrnb-$(LIBAMR_NB_VERSION).tar.bz2
LIBAMR_WB_VERSION=7.0.0.2 LIBAMR_WB_VERSION=7.0.0.2
LIBAMR_WB=$(PENGUIN)/amrwb-$(LIBAMR_WB_VERSION).tar.bz2 LIBAMR_WB=$(PENGUIN)/amrwb-$(LIBAMR_WB_VERSION).tar.bz2
ERRNO_URL=http://altair.videolan.org/~linkfanel/errno ERRNO_URL=http://altair.videolan.org/~linkfanel/errno
CMAKE_VERSION=2.6.4 CMAKE_VERSION=2.8.3
CMAKE_URL=http://www.cmake.org/files/v2.6/cmake-$(CMAKE_VERSION).tar.gz CMAKE_URL=http://www.cmake.org/files/v2.8/cmake-$(CMAKE_VERSION).tar.gz
LIBTOOL_VERSION=2.2.10 LIBTOOL_VERSION=2.2.10
LIBTOOL_URL=$(GNU)/libtool/libtool-$(LIBTOOL_VERSION).tar.gz LIBTOOL_URL=$(GNU)/libtool/libtool-$(LIBTOOL_VERSION).tar.gz
AUTOCONF_VERSION=2.68 AUTOCONF_VERSION=2.68
...@@ -64,7 +64,7 @@ LIBMPEG2_VERSION=0.5.1 ...@@ -64,7 +64,7 @@ LIBMPEG2_VERSION=0.5.1
LIBMPEG2_URL=http://libmpeg2.sourceforge.net/files/libmpeg2-$(LIBMPEG2_VERSION).tar.gz LIBMPEG2_URL=http://libmpeg2.sourceforge.net/files/libmpeg2-$(LIBMPEG2_VERSION).tar.gz
LIBMAD_VERSION=0.15.1b LIBMAD_VERSION=0.15.1b
LIBMAD_URL=$(CONTRIB_VIDEOLAN)/libmad-$(LIBMAD_VERSION).tar.gz LIBMAD_URL=$(CONTRIB_VIDEOLAN)/libmad-$(LIBMAD_VERSION).tar.gz
OGG_VERSION=1.2.1 OGG_VERSION=1.2.2
OGG_URL=http://downloads.xiph.org/releases/ogg/libogg-$(OGG_VERSION).tar.gz OGG_URL=http://downloads.xiph.org/releases/ogg/libogg-$(OGG_VERSION).tar.gz
#GG_URL=$(CONTRIB_VIDEOLAN)/libogg-$(OGG_VERSION).tar.gz #GG_URL=$(CONTRIB_VIDEOLAN)/libogg-$(OGG_VERSION).tar.gz
OGG_CVSROOT=:pserver:anoncvs@xiph.org:/usr/local/cvsroot OGG_CVSROOT=:pserver:anoncvs@xiph.org:/usr/local/cvsroot
...@@ -95,7 +95,7 @@ LIBMATROSKA_URL=http://dl.matroska.org/downloads/libmatroska/libmatroska-$(LIBMA ...@@ -95,7 +95,7 @@ LIBMATROSKA_URL=http://dl.matroska.org/downloads/libmatroska/libmatroska-$(LIBMA
FFMPEG_VERSION=0.4.8 FFMPEG_VERSION=0.4.8
FFMPEG_URL=$(SF)/ffmpeg/ffmpeg-$(FFMPEG_VERSION).tar.gz FFMPEG_URL=$(SF)/ffmpeg/ffmpeg-$(FFMPEG_VERSION).tar.gz
FFMPEG_SVN=svn://svn.ffmpeg.org/ffmpeg/trunk FFMPEG_SVN=svn://svn.ffmpeg.org/ffmpeg/trunk
FFMPEG_SVN_REV=25711 FFMPEG_SVN_REV=26165
LIBDVDCSS_VERSION=1.2.10 LIBDVDCSS_VERSION=1.2.10
LIBDVDCSS_URL=$(VIDEOLAN)/libdvdcss/$(LIBDVDCSS_VERSION)/libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2 LIBDVDCSS_URL=$(VIDEOLAN)/libdvdcss/$(LIBDVDCSS_VERSION)/libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2
LIBDVDNAV_VERSION=4.1.1 LIBDVDNAV_VERSION=4.1.1
...@@ -138,7 +138,7 @@ VCDIMAGER_VERSION=0.7.23 ...@@ -138,7 +138,7 @@ VCDIMAGER_VERSION=0.7.23
VCDIMAGER_URL=$(GNU)/vcdimager/vcdimager-$(VCDIMAGER_VERSION).tar.gz VCDIMAGER_URL=$(GNU)/vcdimager/vcdimager-$(VCDIMAGER_VERSION).tar.gz
CDIO_VERSION=0.80 CDIO_VERSION=0.80
CDIO_URL=$(GNU)/libcdio/libcdio-$(CDIO_VERSION).tar.gz CDIO_URL=$(GNU)/libcdio/libcdio-$(CDIO_VERSION).tar.gz
PNG_VERSION=1.4.4 PNG_VERSION=1.4.5
PNG_URL=$(SF)/libpng/libpng-$(PNG_VERSION).tar.bz2 PNG_URL=$(SF)/libpng/libpng-$(PNG_VERSION).tar.bz2
GPGERROR_VERSION=1.7 GPGERROR_VERSION=1.7
#GPGERROR_URL=$(CONTRIB_VIDEOLAN)/libgpg-error-$(GPGERROR_VERSION).tar.bz2 #GPGERROR_URL=$(CONTRIB_VIDEOLAN)/libgpg-error-$(GPGERROR_VERSION).tar.bz2
...@@ -146,7 +146,7 @@ GPGERROR_URL=ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-$(GPGERROR_VER ...@@ -146,7 +146,7 @@ GPGERROR_URL=ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-$(GPGERROR_VER
GCRYPT_VERSION=1.4.6 GCRYPT_VERSION=1.4.6
#GCRYPT_URL=$(CONTRIB_VIDEOLAN)/libgcrypt-$(GCRYPT_VERSION).tar.bz2 #GCRYPT_URL=$(CONTRIB_VIDEOLAN)/libgcrypt-$(GCRYPT_VERSION).tar.bz2
GCRYPT_URL=ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-$(GCRYPT_VERSION).tar.bz2 GCRYPT_URL=ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-$(GCRYPT_VERSION).tar.bz2
GNUTLS_VERSION=2.10.3 GNUTLS_VERSION=2.10.4
GNUTLS_URL=http://ftp.gnu.org/pub/gnu/gnutls/gnutls-$(GNUTLS_VERSION).tar.bz2 GNUTLS_URL=http://ftp.gnu.org/pub/gnu/gnutls/gnutls-$(GNUTLS_VERSION).tar.bz2
OPENCDK_VERSION=0.6.6 OPENCDK_VERSION=0.6.6
OPENCDK_URL=http://www.gnu.org/software/gnutls/releases/opencdk/opencdk-$(OPENCDK_VERSION).tar.bz2 OPENCDK_URL=http://www.gnu.org/software/gnutls/releases/opencdk/opencdk-$(OPENCDK_VERSION).tar.bz2
...@@ -159,7 +159,7 @@ TWOLAME_VERSION=0.3.12 ...@@ -159,7 +159,7 @@ TWOLAME_VERSION=0.3.12
TWOLAME_URL=$(SF)/twolame/twolame-$(TWOLAME_VERSION).tar.gz TWOLAME_URL=$(SF)/twolame/twolame-$(TWOLAME_VERSION).tar.gz
X264_VERSION=20050609 X264_VERSION=20050609
X264_URL=$(CONTRIB_VIDEOLAN)/x264-$(X264_VERSION).tar.gz X264_URL=$(CONTRIB_VIDEOLAN)/x264-$(X264_VERSION).tar.gz
JPEG_VERSION=8a JPEG_VERSION=8b
JPEG_URL=http://www.ijg.org/files/jpegsrc.v$(JPEG_VERSION).tar.gz JPEG_URL=http://www.ijg.org/files/jpegsrc.v$(JPEG_VERSION).tar.gz
TIFF_VERSION=3.9.4 TIFF_VERSION=3.9.4
TIFF_URL=ftp://ftp.remotesensing.org/libtiff/tiff-$(TIFF_VERSION).tar.gz TIFF_URL=ftp://ftp.remotesensing.org/libtiff/tiff-$(TIFF_VERSION).tar.gz
...@@ -178,7 +178,7 @@ QT4_MAC_VERSION=4.7.1 ...@@ -178,7 +178,7 @@ QT4_MAC_VERSION=4.7.1
QT4_MAC_URL=http://get.qt.nokia.com/qt/source/qt-mac-opensource-$(QT4_MAC_VERSION).dmg QT4_MAC_URL=http://get.qt.nokia.com/qt/source/qt-mac-opensource-$(QT4_MAC_VERSION).dmg
ZLIB_VERSION=1.2.5 ZLIB_VERSION=1.2.5
ZLIB_URL=$(SF)/libpng/zlib-$(ZLIB_VERSION).tar.gz ZLIB_URL=$(SF)/libpng/zlib-$(ZLIB_VERSION).tar.gz
XML_VERSION=2.7.7 XML_VERSION=2.7.8
#XML_URL=$(CONTRIB_VIDEOLAN)/libxml2-$(XML_VERSION).tar.gz #XML_URL=$(CONTRIB_VIDEOLAN)/libxml2-$(XML_VERSION).tar.gz
XML_URL=http://xmlsoft.org/sources/libxml2-$(XML_VERSION).tar.gz XML_URL=http://xmlsoft.org/sources/libxml2-$(XML_VERSION).tar.gz
DIRAC_VERSION=1.0.2 DIRAC_VERSION=1.0.2
...@@ -246,3 +246,4 @@ VPX_VERSION=0.9.2 ...@@ -246,3 +246,4 @@ VPX_VERSION=0.9.2
VPX_URL=http://webm.googlecode.com/files/libvpx-$(VPX_VERSION).tar.bz2 VPX_URL=http://webm.googlecode.com/files/libvpx-$(VPX_VERSION).tar.bz2
GME_VERSION=0.5.5 GME_VERSION=0.5.5
GME_URL=http://game-music-emu.googlecode.com/files/game-music-emu-$(GME_VERSION).tbz2 GME_URL=http://game-music-emu.googlecode.com/files/game-music-emu-$(GME_VERSION).tbz2
SID_URL=$(SF)/sidplay2/sidplay2/sidplay-libs-2.1.1/sidplay-libs-2.1.1.tar.gz
#!/bin/sh
SYMBIAN_ROOT=/mnt/vlc/symbian
SYMBIAN_SDK=$SYMBIAN_ROOT/sdks
EPOCROOT=$SYMBIAN_SDK
PATH=$SYMBIAN_ROOT/gnupoc:$SYMBIAN_ROOT/cls-gcc/bin:$SYMBIAN_ROOT/qt_4.7.1/bin:$PATH
SYMBIAN_INCLUDE=$SYMBIAN_SDK/epoc32/include
echo "export EPOCROOT=$EPOCROOT;export PATH=$PATH;"
CC=arm-none-symbianelf-gcc CXX=arm-none-symbianelf-g++ \
PKG_CONFIG_PATH="" PKG_CONFIG_LIBDIR="" \
LDFLAGS="-L$SYMBIAN_ROOT/cls-gcc/arm-none-symbianelf/lib -L$EPOCROOT/epoc32/release/armv5/lib -nostdlib -shared -Wl,--no-undefined $EPOCROOT/epoc32/release/armv5/lib/libc.dso " \
CPPFLAGS="-D_UNICODE -D__GCCE__ -D__SYMBIAN32__ -D__S60_3X__ -D__FreeBSD_cc_version -include $SYMBIAN_INCLUDE/gcce/gcce.h -I$SYMBIAN_INCLUDE/stdapis -I$SYMBIAN_INCLUDE/stdapis/sys -I$SYMBIAN_INCLUDE/variant -I$SYMBIAN_INCLUDE " \
../configure --host=arm-none-symbianelf --build=i386-linux \
--disable-vlc --enable-static --disable-shared --enable-static-modules \
--disable-mad --disable-avcodec --disable-a52 --disable-libgcrypt --disable-remoteosd \
--disable-lua --disable-swscale --disable-postproc --disable-qt4 --disable-skins2
...@@ -112,6 +112,10 @@ ...@@ -112,6 +112,10 @@
# endif # endif
#endif #endif
#ifdef __SYMBIAN32__
#include <sys/syslimits.h>
#endif
/* Counter for statistics and profiling */ /* Counter for statistics and profiling */
typedef unsigned long count_t; typedef unsigned long count_t;
...@@ -866,7 +870,7 @@ VLC_EXPORT( const char *, VLC_Compiler, ( void ) LIBVLC_USED ); ...@@ -866,7 +870,7 @@ VLC_EXPORT( const char *, VLC_Compiler, ( void ) LIBVLC_USED );
#include "vlc_main.h" #include "vlc_main.h"
#include "vlc_configuration.h" #include "vlc_configuration.h"
#if defined( WIN32 ) || defined( UNDER_CE ) #if defined( WIN32 ) || defined( UNDER_CE ) || defined( __SYMBIAN32__ )
# define DIR_SEP_CHAR '\\' # define DIR_SEP_CHAR '\\'
# define DIR_SEP "\\" # define DIR_SEP "\\"
# define PATH_SEP_CHAR ';' # define PATH_SEP_CHAR ';'
......
...@@ -302,7 +302,7 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext *p_context, ...@@ -302,7 +302,7 @@ int InitVideoDec( decoder_t *p_dec, AVCodecContext *p_context,
(p_sys->p_codec->capabilities & CODEC_CAP_DR1) && (p_sys->p_codec->capabilities & CODEC_CAP_DR1) &&
/* No idea why ... but this fixes flickering on some TSCC streams */ /* No idea why ... but this fixes flickering on some TSCC streams */
p_sys->i_codec_id != CODEC_ID_TSCC && p_sys->i_codec_id != CODEC_ID_TSCC &&
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 52, 68, 2 ) #if (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 52, 68, 2 ) ) && (LIBAVCODEC_VERSION_INT < AV_VERSION_INT( 52, 100, 1 ) )
/* avcodec native vp8 decode doesn't handle EMU_EDGE flag, and I /* avcodec native vp8 decode doesn't handle EMU_EDGE flag, and I
don't have idea howto implement fallback to libvpx decoder */ don't have idea howto implement fallback to libvpx decoder */
p_sys->i_codec_id != CODEC_ID_VP8 && p_sys->i_codec_id != CODEC_ID_VP8 &&
......
...@@ -365,7 +365,7 @@ static int AVI_ChunkRead_strf( stream_t *s, avi_chunk_t *p_chk ) ...@@ -365,7 +365,7 @@ static int AVI_ChunkRead_strf( stream_t *s, avi_chunk_t *p_chk )
if( p_chk->strf.auds.p_wf->cbSize > 0 ) if( p_chk->strf.auds.p_wf->cbSize > 0 )
{ {
memcpy( &p_chk->strf.auds.p_wf[1] , memcpy( &p_chk->strf.auds.p_wf[1] ,
p_buff + 8 + sizeof( WAVEFORMATEX ), /* 8=fourrc+size */ p_buff + 8 + sizeof( WAVEFORMATEX ), /* 8=fourcc+size */
p_chk->strf.auds.p_wf->cbSize ); p_chk->strf.auds.p_wf->cbSize );
} }
#ifdef AVI_DEBUG #ifdef AVI_DEBUG
......
...@@ -251,11 +251,8 @@ static void Close( vlc_object_t *p_this ) ...@@ -251,11 +251,8 @@ static void Close( vlc_object_t *p_this )
if( tk->p_subpackets[ j ] ) if( tk->p_subpackets[ j ] )
block_Release( tk->p_subpackets[ j ] ); block_Release( tk->p_subpackets[ j ] );
} }
if( tk->i_subpackets ) free( tk->p_subpackets );
{ free( tk->p_subpackets_timecode );
free( tk->p_subpackets );
free( tk->p_subpackets_timecode );
}
if( tk->p_sipr_packet ) if( tk->p_sipr_packet )
block_Release( tk->p_sipr_packet ); block_Release( tk->p_sipr_packet );
free( tk ); free( tk );
...@@ -636,6 +633,11 @@ static void DemuxAudioMethod1( demux_t *p_demux, real_track_t *tk, mtime_t i_pts ...@@ -636,6 +633,11 @@ static void DemuxAudioMethod1( demux_t *p_demux, real_track_t *tk, mtime_t i_pts
for( int i = 0; i < i_num; i++ ) for( int i = 0; i < i_num; i++ )
{ {
int i_index = tk->i_subpacket_h * i +
((tk->i_subpacket_h + 1) / 2) * (y&1) + (y>>1);
if( i_index >= tk->i_subpackets )
return;
block_t *p_block = block_New( p_demux, tk->i_subpacket_size ); block_t *p_block = block_New( p_demux, tk->i_subpacket_size );
if( !p_block ) if( !p_block )
return; return;
...@@ -648,9 +650,6 @@ static void DemuxAudioMethod1( demux_t *p_demux, real_track_t *tk, mtime_t i_pts ...@@ -648,9 +650,6 @@ static void DemuxAudioMethod1( demux_t *p_demux, real_track_t *tk, mtime_t i_pts
p_buf += tk->i_subpacket_size; p_buf += tk->i_subpacket_size;
int i_index = tk->i_subpacket_h * i +
((tk->i_subpacket_h + 1) / 2) * (y&1) + (y>>1);
if( tk->p_subpackets[i_index] != NULL ) if( tk->p_subpackets[i_index] != NULL )
{ {
msg_Dbg(p_demux, "p_subpackets[ %d ] not null!", i_index ); msg_Dbg(p_demux, "p_subpackets[ %d ] not null!", i_index );
...@@ -670,14 +669,16 @@ static void DemuxAudioMethod1( demux_t *p_demux, real_track_t *tk, mtime_t i_pts ...@@ -670,14 +669,16 @@ static void DemuxAudioMethod1( demux_t *p_demux, real_track_t *tk, mtime_t i_pts
for( int i = 0; i < tk->i_subpacket_h / 2; i++ ) for( int i = 0; i < tk->i_subpacket_h / 2; i++ )
{ {
int i_index = (i * 2 * tk->i_frame_size / tk->i_coded_frame_size) + y;
if( i_index >= tk->i_subpackets )
return;
block_t *p_block = block_New( p_demux, tk->i_coded_frame_size); block_t *p_block = block_New( p_demux, tk->i_coded_frame_size);
if( !p_block ) if( !p_block )
return; return;
if( &p_buf[tk->i_coded_frame_size] > &p_sys->buffer[p_sys->i_buffer] ) if( &p_buf[tk->i_coded_frame_size] > &p_sys->buffer[p_sys->i_buffer] )
return; return;
int i_index = (i * 2 * tk->i_frame_size / tk->i_coded_frame_size) + y;
memcpy( p_block->p_buffer, p_buf, tk->i_coded_frame_size ); memcpy( p_block->p_buffer, p_buf, tk->i_coded_frame_size );
p_block->i_dts = p_block->i_dts =
p_block->i_pts = i_index == 0 ? i_pts : VLC_TS_INVALID; p_block->i_pts = i_index == 0 ? i_pts : VLC_TS_INVALID;
......
...@@ -255,7 +255,7 @@ static NSMutableArray *blackoutWindows = NULL; ...@@ -255,7 +255,7 @@ static NSMutableArray *blackoutWindows = NULL;
} }
invoc = [NSInvocation invocationWithMethodSignature:[super methodSignatureForSelector:@selector(close)]]; invoc = [NSInvocation invocationWithMethodSignature:[super methodSignatureForSelector:@selector(close)]];
[invoc setTarget: (id)super]; [invoc setTarget: self];
if (![self isVisible] || [self alphaValue] == 0.0) if (![self isVisible] || [self alphaValue] == 0.0)
{ {
...@@ -269,7 +269,7 @@ static NSMutableArray *blackoutWindows = NULL; ...@@ -269,7 +269,7 @@ static NSMutableArray *blackoutWindows = NULL;
- (void)orderOut: (id)sender animate: (BOOL)animate - (void)orderOut: (id)sender animate: (BOOL)animate
{ {
NSInvocation *invoc = [NSInvocation invocationWithMethodSignature:[super methodSignatureForSelector:@selector(orderOut:)]]; NSInvocation *invoc = [NSInvocation invocationWithMethodSignature:[super methodSignatureForSelector:@selector(orderOut:)]];
[invoc setTarget: (id)super]; [invoc setTarget: self];
[invoc setArgument: sender atIndex: 0]; [invoc setArgument: sender atIndex: 0];
[self orderOut: sender animate: animate callback: invoc]; [self orderOut: sender animate: animate callback: invoc];
} }
......
...@@ -706,7 +706,7 @@ ...@@ -706,7 +706,7 @@
inNode: (playlist_item_t *)p_node inNode: (playlist_item_t *)p_node
checkItemExistence:(BOOL)b_check checkItemExistence:(BOOL)b_check
{ {
[self isItem:p_item inNode:p_node checkItemExistence:b_check locked:NO]; return [self isItem:p_item inNode:p_node checkItemExistence:b_check locked:NO];
} }
/* This method is useful for instance to remove the selected children of an /* This method is useful for instance to remove the selected children of an
......
...@@ -212,8 +212,8 @@ void BackgroundWidget::updateArt( const QString& url ) ...@@ -212,8 +212,8 @@ void BackgroundWidget::updateArt( const QString& url )
} }
else else
{ /* Xmas joke */ { /* Xmas joke */
if( QDate::currentDate().dayOfYear() >= QT_CHRISTMAS_TROLL_DAY ) if( QDate::currentDate().dayOfYear() >= QT_XMAS_JOKE_DAY )
pixmapUrl = QString( ":/logo/vlc128-christmas.png" ); pixmapUrl = QString( ":/logo/vlc128-xmas.png" );
else else
pixmapUrl = QString( ":/logo/vlc128.png" ); pixmapUrl = QString( ":/logo/vlc128.png" );
} }
......
...@@ -102,8 +102,8 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf) ...@@ -102,8 +102,8 @@ AboutDialog::AboutDialog( intf_thread_t *_p_intf)
ui.introduction->setText( ui.introduction->setText(
qtr( "VLC media player" ) + qfu( " " VERSION_MESSAGE ) ); qtr( "VLC media player" ) + qfu( " " VERSION_MESSAGE ) );
if( QDate::currentDate().dayOfYear() >= QT_CHRISTMAS_TROLL_DAY ) if( QDate::currentDate().dayOfYear() >= QT_XMAS_JOKE_DAY )
ui.iconVLC->setPixmap( QPixmap( ":/logo/vlc128-christmas.png" ) ); ui.iconVLC->setPixmap( QPixmap( ":/logo/vlc128-xmas.png" ) );
else else
ui.iconVLC->setPixmap( QPixmap( ":/logo/vlc128.png" ) ); ui.iconVLC->setPixmap( QPixmap( ":/logo/vlc128.png" ) );
......
...@@ -942,8 +942,8 @@ void MainInterface::showBuffering( float f_cache ) ...@@ -942,8 +942,8 @@ void MainInterface::showBuffering( float f_cache )
void MainInterface::createSystray() void MainInterface::createSystray()
{ {
QIcon iconVLC; QIcon iconVLC;
if( QDate::currentDate().dayOfYear() >= QT_CHRISTMAS_TROLL_DAY ) if( QDate::currentDate().dayOfYear() >= QT_XMAS_JOKE_DAY )
iconVLC = QIcon( ":/logo/vlc128-christmas.png" ); iconVLC = QIcon( ":/logo/vlc128-xmas.png" );
else else
iconVLC = QIcon( ":/logo/vlc128.png" ); iconVLC = QIcon( ":/logo/vlc128.png" );
sysTray = new QSystemTrayIcon( iconVLC, this ); sysTray = new QSystemTrayIcon( iconVLC, this );
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
#endif #endif
#include "../../../share/icons/32x32/vlc.xpm" #include "../../../share/icons/32x32/vlc.xpm"
#include "../../../share/icons/32x32/vlc-christmas.xpm" #include "../../../share/icons/32x32/vlc-xmas.xpm"
#include <vlc_plugin.h> #include <vlc_plugin.h>
#ifdef WIN32 /* For static builds */ #ifdef WIN32 /* For static builds */
...@@ -479,8 +479,8 @@ static void *Thread( void *obj ) ...@@ -479,8 +479,8 @@ static void *Thread( void *obj )
/* Icon setting, Mac uses icon from .icns */ /* Icon setting, Mac uses icon from .icns */
#ifndef Q_WS_MAC #ifndef Q_WS_MAC
if( QDate::currentDate().dayOfYear() >= QT_CHRISTMAS_TROLL_DAY ) if( QDate::currentDate().dayOfYear() >= QT_XMAS_JOKE_DAY )
app.setWindowIcon( QIcon(vlc_christmas_xpm) ); app.setWindowIcon( QIcon(vlc_xmas_xpm) );
else else
app.setWindowIcon( QIcon(vlc_xpm) ); app.setWindowIcon( QIcon(vlc_xpm) );
#endif #endif
......
...@@ -131,11 +131,9 @@ static inline QString QVLCUserDir( vlc_userdir_t type ) ...@@ -131,11 +131,9 @@ static inline QString QVLCUserDir( vlc_userdir_t type )
} }
/* After this day of the year, the usual VLC cone is replaced by another cone /* After this day of the year, the usual VLC cone is replaced by another cone
* wearing a Santa hat. * wearing a Father Xmas hat.
* Warning: can panic users (virus changed my icons!!), and cause religious * Note this icon doesn't represent an endorsment of Coca-Cola company.
* trolls (VLC is a supporter of catholicism!!)
* Note, this icon doesn't represent an endorsment of Coca-Cola company
*/ */
#define QT_CHRISTMAS_TROLL_DAY 354 #define QT_XMAS_JOKE_DAY 354
#endif #endif
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<file alias="vlc128.png" >../../../share/icons/128x128/vlc.png</file> <file alias="vlc128.png" >../../../share/icons/128x128/vlc.png</file>
<file alias="vlc16.png" >../../../share/icons/16x16/vlc.png</file> <file alias="vlc16.png" >../../../share/icons/16x16/vlc.png</file>
<file alias="vlc48.png" >../../../share/icons/48x48/vlc.png</file> <file alias="vlc48.png" >../../../share/icons/48x48/vlc.png</file>
<file alias="vlc128-christmas.png" >../../../share/icons/128x128/vlc-christmas.png</file> <file alias="vlc128-xmas.png" >../../../share/icons/128x128/vlc-xmas.png</file>
<file alias="vlc48-christmas.png" >../../../share/icons/48x48/vlc-christmas.png</file> <file alias="vlc48-xmas.png" >../../../share/icons/48x48/vlc-xmas.png</file>
</qresource> </qresource>
<qresource prefix="/menu" > <qresource prefix="/menu" >
<file alias="help" >pixmaps/menus/help_16px.png</file> <file alias="help" >pixmaps/menus/help_16px.png</file>
......
...@@ -60,9 +60,15 @@ static int CreateInputItemFromMedia( media_library_t *p_ml, ...@@ -60,9 +60,15 @@ static int CreateInputItemFromMedia( media_library_t *p_ml,
struct ml_table_elt struct ml_table_elt
{ {
int column_id; int column_id;
char column_name[20]; char* column_name;
}; };
static int compare_ml_elts( const void *a, const void *b )
{
return strcmp( ( (struct ml_table_elt* )a )->column_name,
( ( struct ml_table_elt* )b )->column_name );
}
static const struct ml_table_elt ml_table_map[]= static const struct ml_table_elt ml_table_map[]=
{ {
{ ML_ALBUM_COVER, "album_cover" }, { ML_ALBUM_COVER, "album_cover" },
...@@ -479,26 +485,15 @@ int SQLToMediaArray( media_library_t *p_ml, vlc_array_t *p_result_array, ...@@ -479,26 +485,15 @@ int SQLToMediaArray( media_library_t *p_ml, vlc_array_t *p_result_array,
const int count = sizeof( ml_table_map )/ sizeof( struct ml_table_elt ); const int count = sizeof( ml_table_map )/ sizeof( struct ml_table_elt );
for( int col = 0; col < i_cols; col++ ) for( int col = 0; col < i_cols; col++ )
{ {
//binary search struct ml_table_elt key, *result = NULL;
int low = 0, high = count - 1; key.column_name = res( 0, col );
int answer = -1; result = bsearch( &key, ml_table_map, count,
while( low <= high ) { sizeof( struct ml_table_elt ), compare_ml_elts );
int mid = (low + high ) / 2;
char* mid_val = ml_table_map[mid].column_name; if( !result )
int cmp = strcmp( mid_val, res( 0, col ) );
if( cmp < 0 )
low = mid + 1;
else if ( cmp > 0 )
high = mid - 1;
else
{
answer = mid; break;
}
}
if( answer == -1 )
msg_Warn( p_ml, "unknown column: %s", res( 0, col ) ); msg_Warn( p_ml, "unknown column: %s", res( 0, col ) );
else else
indexes[col] = ml_table_map[answer].column_id; indexes[col] = result->column_id;
} }
/* Read rows 1 to i_rows */ /* Read rows 1 to i_rows */
......
...@@ -106,7 +106,7 @@ struct stream_sys_t ...@@ -106,7 +106,7 @@ struct stream_sys_t
/* Download */ /* Download */
struct hls_download_s struct hls_download_s
{ {
int current; /* current hls_stream */ int stream; /* current hls_stream */
int segment; /* current segment for downloading */ int segment; /* current segment for downloading */
int seek; /* segment requested by seek (default -1) */ int seek; /* segment requested by seek (default -1) */
vlc_mutex_t lock_wait; /* protect segment download counter */ vlc_mutex_t lock_wait; /* protect segment download counter */
...@@ -117,7 +117,7 @@ struct stream_sys_t ...@@ -117,7 +117,7 @@ struct stream_sys_t
struct hls_playback_s struct hls_playback_s
{ {
uint64_t offset; /* current offset in media */ uint64_t offset; /* current offset in media */
int current; /* current hls_stream */ int stream; /* current hls_stream */
int segment; /* current segment for playback */ int segment; /* current segment for playback */
} playback; } playback;
...@@ -343,6 +343,15 @@ static segment_t *segment_Find(hls_stream_t *hls, int sequence) ...@@ -343,6 +343,15 @@ static segment_t *segment_Find(hls_stream_t *hls, int sequence)
return NULL; return NULL;
} }
static int live_ChooseSegment(stream_t *s, int current)
{
stream_sys_t *p_sys = (stream_sys_t *)s->p_sys;
hls_stream_t *hls = hls_Get(p_sys->hls_stream, current);
if (hls == NULL) return 0;
int wanted = vlc_array_count(hls->segments) - 4;
return (wanted < 0) ? 0 : wanted;
}
/* Parsing */ /* Parsing */
static char *parse_Attributes(const char *line, const char *attr) static char *parse_Attributes(const char *line, const char *attr)
{ {
...@@ -986,6 +995,7 @@ static int parse_HTTPLiveStreaming(stream_t *s) ...@@ -986,6 +995,7 @@ static int parse_HTTPLiveStreaming(stream_t *s)
static int hls_UpdatePlaylist(stream_t *s, hls_stream_t *hls_new, hls_stream_t **hls) static int hls_UpdatePlaylist(stream_t *s, hls_stream_t *hls_new, hls_stream_t **hls)
{ {
int count = vlc_array_count(hls_new->segments); int count = vlc_array_count(hls_new->segments);
msg_Info(s, "updating hls stream (program-id=%d, bandwidth=%"PRIu64") has %d segments", msg_Info(s, "updating hls stream (program-id=%d, bandwidth=%"PRIu64") has %d segments",
hls_new->id, hls_new->bandwidth, count); hls_new->id, hls_new->bandwidth, count);
for (int n = 0; n < count; n++) for (int n = 0; n < count; n++)
...@@ -1198,7 +1208,7 @@ static void* hls_Thread(vlc_object_t *p_this) ...@@ -1198,7 +1208,7 @@ static void* hls_Thread(vlc_object_t *p_this)
while (vlc_object_alive(p_this)) while (vlc_object_alive(p_this))
{ {
hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->download.current); hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->download.stream);
assert(hls); assert(hls);
/* Sliding window (~60 seconds worth of movie) */ /* Sliding window (~60 seconds worth of movie) */
...@@ -1260,10 +1270,10 @@ static void* hls_Thread(vlc_object_t *p_this) ...@@ -1260,10 +1270,10 @@ static void* hls_Thread(vlc_object_t *p_this)
vlc_mutex_lock(&hls->lock); vlc_mutex_lock(&hls->lock);
segment_t *segment = segment_GetSegment(hls, p_sys->download.segment); segment_t *segment = segment_GetSegment(hls, p_sys->download.segment);
assert(segment);
vlc_mutex_unlock(&hls->lock); vlc_mutex_unlock(&hls->lock);
if (Download(s, hls, segment, &p_sys->download.current) != VLC_SUCCESS) if ((segment != NULL) &&
(Download(s, hls, segment, &p_sys->download.stream) != VLC_SUCCESS))
{ {
if (!vlc_object_alive(p_this)) break; if (!vlc_object_alive(p_this)) break;
...@@ -1305,7 +1315,7 @@ again: ...@@ -1305,7 +1315,7 @@ again:
if (hls == NULL) if (hls == NULL)
return VLC_EGENERIC; return VLC_EGENERIC;
segment_t *segment = segment_GetSegment(hls, p_sys->playback.segment); segment_t *segment = segment_GetSegment(hls, p_sys->download.segment);
if (segment == NULL ) if (segment == NULL )
return VLC_EGENERIC; return VLC_EGENERIC;
...@@ -1320,20 +1330,20 @@ again: ...@@ -1320,20 +1330,20 @@ again:
stream = *current; stream = *current;
for (int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)
{ {
segment_t *segment = segment_GetSegment(hls, i); segment_t *segment = segment_GetSegment(hls, p_sys->download.segment);
if (segment == NULL ) if (segment == NULL )
return VLC_EGENERIC; return VLC_EGENERIC;
if (segment->data) if (segment->data)
{ {
p_sys->playback.segment++; p_sys->download.segment++;
continue; continue;
} }
if (Download(s, hls, segment, current) != VLC_SUCCESS) if (Download(s, hls, segment, current) != VLC_SUCCESS)
return VLC_EGENERIC; return VLC_EGENERIC;
p_sys->playback.segment++; p_sys->download.segment++;
/* adapt bandwidth? */ /* adapt bandwidth? */
if (*current != stream) if (*current != stream)
...@@ -1556,8 +1566,9 @@ static int Open(vlc_object_t *p_this) ...@@ -1556,8 +1566,9 @@ static int Open(vlc_object_t *p_this)
} }
/* Choose first HLS stream to start with */ /* Choose first HLS stream to start with */
int current = p_sys->playback.current = 0; int current = p_sys->playback.stream = 0;
p_sys->playback.segment = 0; p_sys->playback.segment = p_sys->download.segment =
p_sys->b_live ? live_ChooseSegment(s, current) : 0;
if (Prefetch(s, &current) != VLC_SUCCESS) if (Prefetch(s, &current) != VLC_SUCCESS)
{ {
...@@ -1581,11 +1592,9 @@ static int Open(vlc_object_t *p_this) ...@@ -1581,11 +1592,9 @@ static int Open(vlc_object_t *p_this)
((mtime_t)hls->duration * UINT64_C(1000000)); ((mtime_t)hls->duration * UINT64_C(1000000));
} }
p_sys->download.current = current; p_sys->download.stream = current;
p_sys->playback.current = current; p_sys->playback.stream = current;
p_sys->download.segment = p_sys->playback.segment;
p_sys->download.seek = -1; p_sys->download.seek = -1;
p_sys->playback.segment = 0; /* reset to first segment */
p_sys->thread->s = s; p_sys->thread->s = s;
vlc_mutex_init(&p_sys->download.lock_wait); vlc_mutex_init(&p_sys->download.lock_wait);
...@@ -1654,7 +1663,7 @@ static segment_t *GetSegment(stream_t *s) ...@@ -1654,7 +1663,7 @@ static segment_t *GetSegment(stream_t *s)
segment_t *segment = NULL; segment_t *segment = NULL;
/* Is this segment of the current HLS stream ready? */ /* Is this segment of the current HLS stream ready? */
hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.current); hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.stream);
if (hls != NULL) if (hls != NULL)
{ {
vlc_mutex_lock(&hls->lock); vlc_mutex_lock(&hls->lock);
...@@ -1698,7 +1707,7 @@ static segment_t *GetSegment(stream_t *s) ...@@ -1698,7 +1707,7 @@ static segment_t *GetSegment(stream_t *s)
if ((segment->data != NULL) && if ((segment->data != NULL) &&
(p_sys->playback.segment < i_segment)) (p_sys->playback.segment < i_segment))
{ {
p_sys->playback.current = i_stream; p_sys->playback.stream = i_stream;
p_sys->b_cache = hls->b_cache; p_sys->b_cache = hls->b_cache;
vlc_mutex_unlock(&hls->lock); vlc_mutex_unlock(&hls->lock);
goto check; goto check;
...@@ -1718,10 +1727,19 @@ static segment_t *GetSegment(stream_t *s) ...@@ -1718,10 +1727,19 @@ static segment_t *GetSegment(stream_t *s)
check: check:
/* sanity check */ /* sanity check */
if (p_sys->download.segment - p_sys->playback.segment == 0) if (segment->data->i_buffer == 0)
msg_Err(s, "playback will stall"); {
else if (p_sys->download.segment - p_sys->playback.segment < 3) vlc_mutex_lock(&hls->lock);
msg_Warn(s, "playback in danger of stalling"); int count = vlc_array_count(hls->segments);
vlc_mutex_unlock(&hls->lock);
if ((p_sys->download.segment - p_sys->playback.segment == 0) &&
((count != p_sys->download.segment) || p_sys->b_live))
msg_Err(s, "playback will stall");
else if ((p_sys->download.segment - p_sys->playback.segment < 3) &&
((count != p_sys->download.segment) || p_sys->b_live))
msg_Warn(s, "playback in danger of stalling");
}
return segment; return segment;
} }
...@@ -1768,7 +1786,7 @@ static ssize_t hls_Read(stream_t *s, uint8_t *p_read, unsigned int i_read) ...@@ -1768,7 +1786,7 @@ static ssize_t hls_Read(stream_t *s, uint8_t *p_read, unsigned int i_read)
if (segment->size == segment->data->i_buffer) if (segment->size == segment->data->i_buffer)
msg_Info(s, "playing segment %d from stream %d", msg_Info(s, "playing segment %d from stream %d",
segment->sequence, p_sys->playback.current); segment->sequence, p_sys->playback.stream);
ssize_t len = -1; ssize_t len = -1;
if (i_read <= segment->data->i_buffer) if (i_read <= segment->data->i_buffer)
...@@ -1829,7 +1847,7 @@ again: ...@@ -1829,7 +1847,7 @@ again:
if (segment == NULL) if (segment == NULL)
{ {
msg_Err(s, "segment %d should have been available (stream %d)", msg_Err(s, "segment %d should have been available (stream %d)",
p_sys->playback.segment, p_sys->playback.current); p_sys->playback.segment, p_sys->playback.stream);
return 0; /* eof? */ return 0; /* eof? */
} }
...@@ -1867,7 +1885,7 @@ static bool hls_MaySeek(stream_t *s) ...@@ -1867,7 +1885,7 @@ static bool hls_MaySeek(stream_t *s)
if (p_sys->hls_stream == NULL) if (p_sys->hls_stream == NULL)
return false; return false;
hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.current); hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.stream);
if (hls == NULL) return false; if (hls == NULL) return false;
if (p_sys->b_live) if (p_sys->b_live)
...@@ -1891,7 +1909,7 @@ static uint64_t GetStreamSize(stream_t *s) ...@@ -1891,7 +1909,7 @@ static uint64_t GetStreamSize(stream_t *s)
if (p_sys->b_live) if (p_sys->b_live)
return 0; return 0;
hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.current); hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.stream);
if (hls == NULL) return 0; if (hls == NULL) return 0;
vlc_mutex_lock(&hls->lock); vlc_mutex_lock(&hls->lock);
...@@ -1905,7 +1923,7 @@ static int segment_Seek(stream_t *s, uint64_t pos) ...@@ -1905,7 +1923,7 @@ static int segment_Seek(stream_t *s, uint64_t pos)
{ {
stream_sys_t *p_sys = s->p_sys; stream_sys_t *p_sys = s->p_sys;
hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.current); hls_stream_t *hls = hls_Get(p_sys->hls_stream, p_sys->playback.stream);
if (hls == NULL) if (hls == NULL)
return VLC_EGENERIC; return VLC_EGENERIC;
......
...@@ -64,6 +64,15 @@ static void Close ( vlc_object_t * ); ...@@ -64,6 +64,15 @@ static void Close ( vlc_object_t * );
#define HEIGHT_TEXT N_("Video height") #define HEIGHT_TEXT N_("Video height")
#define HEIGHT_LONGTEXT N_("The height of the video window, in pixels.") #define HEIGHT_LONGTEXT N_("The height of the video window, in pixels.")
#define MESHX_TEXT N_("Mesh width")
#define MESHX_LONGTEXT N_("The width of the mesh, in pixels.")
#define MESHY_TEXT N_("Mesh height")
#define MESHY_LONGTEXT N_("The height of the mesh, in pixels.")
#define TEXTURE_TEXT N_("Texture size")
#define TEXTURE_LONGTEXT N_("The size of the texture, in pixels.")
vlc_module_begin () vlc_module_begin ()
set_shortname( N_("projectM")) set_shortname( N_("projectM"))
set_description( N_("libprojectM effect") ) set_description( N_("libprojectM effect") )
...@@ -85,6 +94,12 @@ vlc_module_begin () ...@@ -85,6 +94,12 @@ vlc_module_begin ()
false ) false )
add_integer( "projectm-height", 640, HEIGHT_TEXT, HEIGHT_LONGTEXT, add_integer( "projectm-height", 640, HEIGHT_TEXT, HEIGHT_LONGTEXT,
false ) false )
add_integer( "projectm-meshx", 32, MESHX_TEXT, MESHX_LONGTEXT,
false )
add_integer( "projectm-meshy", 24, MESHY_TEXT, MESHY_LONGTEXT,
false )
add_integer( "projectm-texture-size", 1024, TEXTURE_TEXT, TEXTURE_LONGTEXT,
false )
add_shortcut( "projectm" ) add_shortcut( "projectm" )
set_callbacks( Open, Close ) set_callbacks( Open, Close )
vlc_module_end () vlc_module_end ()
...@@ -330,17 +345,17 @@ static void *Thread( void *p_data ) ...@@ -330,17 +345,17 @@ static void *Thread( void *p_data )
/* Create the projectM object */ /* Create the projectM object */
#ifndef HAVE_PROJECTM2 #ifndef HAVE_PROJECTM2
psz_config = var_InheritString( p_filter, "projectm-config" ); psz_config = var_InheritString( p_filter, "projectm-config" );
p_projectm new projectM( psz_config ); p_projectm = new projectM( psz_config );
free( psz_config ); free( psz_config );
#else #else
psz_preset_path = var_InheritString( p_filter, "projectm-preset-path" ); psz_preset_path = var_InheritString( p_filter, "projectm-preset-path" );
psz_title_font = var_InheritString( p_filter, "projectm-title-font" ); psz_title_font = var_InheritString( p_filter, "projectm-title-font" );
psz_menu_font = var_InheritString( p_filter, "projectm-menu-font" ); psz_menu_font = var_InheritString( p_filter, "projectm-menu-font" );
settings.meshX = 32; settings.meshX = var_InheritInteger( p_filter, "projectm-meshx" );
settings.meshY = 24; settings.meshY = var_InheritInteger( p_filter, "projectm-meshy" );
settings.fps = 35; settings.fps = 35;
settings.textureSize = 1024; settings.textureSize = var_InheritInteger( p_filter, "projectm-texture-size" );
settings.windowWidth = p_sys->i_width; settings.windowWidth = p_sys->i_width;
settings.windowHeight = p_sys->i_height; settings.windowHeight = p_sys->i_height;
settings.presetURL = psz_preset_path; settings.presetURL = psz_preset_path;
...@@ -365,7 +380,8 @@ static void *Thread( void *p_data ) ...@@ -365,7 +380,8 @@ static void *Thread( void *p_data )
vlc_sem_post( &p_sys->ready ); vlc_sem_post( &p_sys->ready );
/* Choose a preset randomly or projectM will always show the first one */ /* Choose a preset randomly or projectM will always show the first one */
p_projectm->selectPreset( (unsigned)vlc_mrand48() % p_projectm->getPlaylistSize() ); if ( p_projectm->getPlaylistSize() > 0 )
p_projectm->selectPreset( (unsigned)vlc_mrand48() % p_projectm->getPlaylistSize() );
/* */ /* */
for( ;; ) for( ;; )
......
...@@ -332,15 +332,21 @@ extern NSString *VLCMediaTracksInformationTypeUnknown; ...@@ -332,15 +332,21 @@ extern NSString *VLCMediaTracksInformationTypeUnknown;
*/ */
- (void)parse; - (void)parse;
/************************************************************************** /**
* Add options to the media, that will be used to determine how * Add options to the media, that will be used to determine how
* VLCMediaPlayer will read the media. This allow to use VLC advanced * VLCMediaPlayer will read the media. This allow to use VLC advanced
* reading/streaming options in a per-media basis * reading/streaming options in a per-media basis
* *
* The options are detailed in vlc --long-help, for instance "--sout-all" * The options are detailed in vlc --long-help, for instance "--sout-all"
* And on the web: http://wiki.videolan.org/VLC_command-line_help * And on the web: http://wiki.videolan.org/VLC_command-line_help
*/
**************************************************************************/
- (void) addOptions:(NSDictionary*) options; - (void) addOptions:(NSDictionary*) options;
/**
* Getter for statistics information
* Returns a NSDictionary with NSNumbers for values.
*
*/
- (NSDictionary*) stats;
@end @end
...@@ -240,7 +240,7 @@ static void HandleMediaParsedChanged(const libvlc_event_t * event, void * self) ...@@ -240,7 +240,7 @@ static void HandleMediaParsedChanged(const libvlc_event_t * event, void * self)
libvlc_event_detach(p_em, libvlc_MediaDurationChanged, HandleMediaDurationChanged, self); libvlc_event_detach(p_em, libvlc_MediaDurationChanged, HandleMediaDurationChanged, self);
libvlc_event_detach(p_em, libvlc_MediaStateChanged, HandleMediaStateChanged, self); libvlc_event_detach(p_em, libvlc_MediaStateChanged, HandleMediaStateChanged, self);
libvlc_event_detach(p_em, libvlc_MediaSubItemAdded, HandleMediaSubItemAdded, self); libvlc_event_detach(p_em, libvlc_MediaSubItemAdded, HandleMediaSubItemAdded, self);
libvlc_event_detach(p_em, libvlc_MediaParsedChanged, HandleMediaParsedChanged, self); libvlc_event_detach(p_em, libvlc_MediaParsedChanged, HandleMediaParsedChanged, self);
[[VLCEventManager sharedManager] cancelCallToObject:self]; [[VLCEventManager sharedManager] cancelCallToObject:self];
// Testing to see if the pointer exists is not required, if the pointer is null // Testing to see if the pointer exists is not required, if the pointer is null
...@@ -338,6 +338,34 @@ static void HandleMediaParsedChanged(const libvlc_event_t * event, void * self) ...@@ -338,6 +338,34 @@ static void HandleMediaParsedChanged(const libvlc_event_t * event, void * self)
} }
} }
- (NSDictionary*) stats
{
if(!p_md)
return NULL;
NSMutableDictionary *d = [NSMutableDictionary dictionary];
libvlc_media_stats_t p_stats;
libvlc_media_get_stats(p_md, &p_stats);
[d setObject:[NSNumber numberWithFloat: p_stats.f_demux_bitrate] forKey:@"demuxBitrate"];
[d setObject:[NSNumber numberWithFloat: p_stats.f_input_bitrate] forKey:@"inputBitrate"];
[d setObject:[NSNumber numberWithFloat: p_stats.f_send_bitrate] forKey:@"sendBitrate"];
[d setObject:[NSNumber numberWithInt: p_stats.i_decoded_audio] forKey:@"decodedAudio"];
[d setObject:[NSNumber numberWithInt: p_stats.i_decoded_video] forKey:@"decodedVideo"];
[d setObject:[NSNumber numberWithInt: p_stats.i_demux_corrupted] forKey:@"demuxCorrupted"];
[d setObject:[NSNumber numberWithInt: p_stats.i_demux_discontinuity] forKey:@"demuxDiscontinuity"];
[d setObject:[NSNumber numberWithInt: p_stats.i_demux_read_bytes] forKey:@"demuxReadBytes"];
[d setObject:[NSNumber numberWithInt: p_stats.i_displayed_pictures] forKey:@"displayedPictures"];
[d setObject:[NSNumber numberWithInt: p_stats.i_lost_abuffers] forKey:@"lostAbuffers"];
[d setObject:[NSNumber numberWithInt: p_stats.i_lost_pictures] forKey:@"lostPictures"];
[d setObject:[NSNumber numberWithInt: p_stats.i_played_abuffers] forKey:@"playedAbuffers"];
[d setObject:[NSNumber numberWithInt: p_stats.i_read_bytes] forKey:@"readBytes"];
[d setObject:[NSNumber numberWithInt: p_stats.i_sent_bytes] forKey:@"sentBytes"];
[d setObject:[NSNumber numberWithInt: p_stats.i_sent_packets] forKey:@"sentPackets"];
return d;
}
NSString *VLCMediaTracksInformationCodec = @"codec"; // NSNumber NSString *VLCMediaTracksInformationCodec = @"codec"; // NSNumber
NSString *VLCMediaTracksInformationId = @"id"; // NSNumber NSString *VLCMediaTracksInformationId = @"id"; // NSNumber
NSString *VLCMediaTracksInformationType = @"type"; // NSString NSString *VLCMediaTracksInformationType = @"type"; // NSString
......
...@@ -15,9 +15,9 @@ dist_appdata_DATA = vlc.desktop ...@@ -15,9 +15,9 @@ dist_appdata_DATA = vlc.desktop
dist_vlcdata_DATA = icons/vlc.ico dist_vlcdata_DATA = icons/vlc.ico
dist_icons16_DATA = icons/16x16/vlc.png icons/16x16/vlc.xpm dist_icons16_DATA = icons/16x16/vlc.png icons/16x16/vlc.xpm
dist_icons32_DATA = icons/32x32/vlc.png icons/32x32/vlc.xpm \ dist_icons32_DATA = icons/32x32/vlc.png icons/32x32/vlc.xpm \
icons/32x32/vlc-christmas.xpm icons/32x32/vlc-xmas.xpm
dist_icons48_DATA = icons/48x48/vlc.png icons/48x48/vlc-christmas.png dist_icons48_DATA = icons/48x48/vlc.png icons/48x48/vlc-xmas.png
dist_icons128_DATA = icons/128x128/vlc.png icons/128x128/vlc-christmas.png dist_icons128_DATA = icons/128x128/vlc.png icons/128x128/vlc-xmas.png
dist_icons256_DATA = icons/256x256/vlc.png dist_icons256_DATA = icons/256x256/vlc.png
nobase_dist_vlcdata_SCRIPTS = \ nobase_dist_vlcdata_SCRIPTS = \
......
/* XPM */ /* XPM */
static const char *vlc_christmas_xpm[] = { static const char *vlc_xmas_xpm[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"32 32 174 2", "32 32 174 2",
" c #00AE00390021", " c #00AE00390021",
......
...@@ -312,7 +312,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc, ...@@ -312,7 +312,7 @@ int libvlc_InternalInit( libvlc_int_t *p_libvlc, int i_argc,
} }
/* Check for daemon mode */ /* Check for daemon mode */
#ifndef WIN32 #if !defined( WIN32 ) && !defined( __SYMBIAN32__ )
if( var_InheritBool( p_libvlc, "daemon" ) ) if( var_InheritBool( p_libvlc, "daemon" ) )
{ {
#ifdef HAVE_DAEMON #ifdef HAVE_DAEMON
......
...@@ -353,6 +353,8 @@ unsigned vlc_GetCPUCount(void) ...@@ -353,6 +353,8 @@ unsigned vlc_GetCPUCount(void)
system_mask >>= 1; system_mask >>= 1;
} }
return count; return count;
#elif defined(__SYMBIAN32__)
return 1;
#elif defined(HAVE_SCHED_GETAFFINITY) #elif defined(HAVE_SCHED_GETAFFINITY)
cpu_set_t cpu; cpu_set_t cpu;
CPU_ZERO(&cpu); CPU_ZERO(&cpu);
......
...@@ -73,7 +73,7 @@ struct module_cache_t ...@@ -73,7 +73,7 @@ struct module_cache_t
typedef NSModule module_handle_t; typedef NSModule module_handle_t;
#elif defined(HAVE_IMAGE_H) #elif defined(HAVE_IMAGE_H)
typedef int module_handle_t; typedef int module_handle_t;
#elif defined(WIN32) || defined(UNDER_CE) #elif defined(WIN32) || defined(UNDER_CE) || defined(__SYMBIAN32__)
typedef void * module_handle_t; typedef void * module_handle_t;
#elif defined(HAVE_DL_DLOPEN) #elif defined(HAVE_DL_DLOPEN)
typedef void * module_handle_t; typedef void * module_handle_t;
......
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