[vlc-commits] demux: avi: handle bitfield RGB masks

2018-03-06 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Tue Mar  6 
19:44:22 2018 +0100| [3274eb71594d55419631243f547025d88a06bc68] | committer: 
Francois Cartegnie

demux: avi: handle bitfield RGB masks

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3274eb71594d55419631243f547025d88a06bc68
---

 modules/demux/avi/avi.c | 20 ++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 290c8c49af..575bc96826 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -589,7 +589,8 @@ static int Open( vlc_object_t * p_this )
 else
 i_bihextra = 0;
 
-if( p_vids->p_bih->biCompression == BI_RGB )
+if( p_vids->p_bih->biCompression == BI_RGB ||
+p_vids->p_bih->biCompression == BI_BITFIELDS )
 {
 switch( p_vids->p_bih->biBitCount )
 {
@@ -627,7 +628,22 @@ static int Open( vlc_object_t * p_this )
 break;
 }
 
-if( tk->fmt.i_codec == VLC_CODEC_RGBP )
+if( p_vids->p_bih->biCompression == BI_BITFIELDS ) /* Only 
16 & 32 */
+{
+if( i_bihextra >= 3 * sizeof(uint32_t) )
+{
+tk->fmt.video.i_rmask = GetDWLE( _bihextra[0] );
+tk->fmt.video.i_gmask = GetDWLE( _bihextra[4] );
+tk->fmt.video.i_bmask = GetDWLE( _bihextra[8] );
+if( i_bihextra >= 4 * sizeof(uint32_t) ) /* Alpha 
channel ? */
+{
+uint32_t i_alpha = GetDWLE( _bihextra[8] );
+if( tk->fmt.i_codec == VLC_CODEC_RGB32 && 
i_alpha == 0xFF )
+tk->fmt.i_codec = VLC_CODEC_BGRA;
+}
+}
+}
+else if( tk->fmt.i_codec == VLC_CODEC_RGBP )
 {
 /* The palette should not be included in biSize, but 
come
  * directly after BITMAPINFORHEADER in the BITMAPINFO 
structure */

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] posix: handle non-NULL filename with environment-based directories

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Tue Mar  6 
21:24:27 2018 +0200| [3706edb4f0fd07dbbea6bc68d7b90c0a7b86b63a] | committer: 
Rémi Denis-Courmont

posix: handle non-NULL filename with environment-based directories

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3706edb4f0fd07dbbea6bc68d7b90c0a7b86b63a
---

 src/posix/dirs.c | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index 280a37b2a7..2fccd229d5 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -57,8 +57,14 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 const char *name = env_vars[type];
  if (*name != '\0') {
  const char *value = getenv(name);
- if (value != NULL)
- return strdup(value);
+ if (value != NULL) {
+ const char *fmt = (filename != NULL) ? "%s/%s" : "%s";
+ char *filepath;
+
+ if (unlikely(asprintf(, fmt, value, filename) == -1))
+ filepath = NULL;
+ return filepath;
+ }
  }
 }
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] posix: compute relocated libdir rather than pkglibdir

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
22:41:52 2018 +0200| [2d062f70943eae3acdb5cc2d0cc9d4599c8d45f4] | committer: 
Rémi Denis-Courmont

posix: compute relocated libdir rather than pkglibdir

This is actually simpler.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2d062f70943eae3acdb5cc2d0cc9d4599c8d45f4
---

 src/Makefile.am  |  1 +
 src/linux/dirs.c |  7 +++
 src/posix/dirs.c | 28 ++--
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 90011eedbc..61c93df705 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -169,6 +169,7 @@ lib_LTLIBRARIES = libvlccore.la
 
 AM_CPPFLAGS = $(INCICONV) $(IDN_CFLAGS) \
-DMODULE_STRING=\"core\" \
+   -DLIBDIR=\"$(libdir)\" \
-DLOCALEDIR=\"$(localedir)\" \
-DPKGDATADIR=\"$(pkgdatadir)\" \
-DPKGLIBDIR=\"$(pkglibdir)\"
diff --git a/src/linux/dirs.c b/src/linux/dirs.c
index 32e138d866..f5dbdaaf2c 100644
--- a/src/linux/dirs.c
+++ b/src/linux/dirs.c
@@ -65,8 +65,7 @@ static char *config_GetLibDirRaw(void)
 continue;
 *file = '\0';
 
-if (asprintf (, "%s/"PACKAGE, dir) == -1)
-path = NULL;
+path = strdup(dir);
 break;
 }
 
@@ -74,11 +73,11 @@ static char *config_GetLibDirRaw(void)
 fclose (maps);
 error:
 if (path == NULL)
-path = strdup(PKGLIBDIR);
+path = strdup(LIBDIR);
 return path;
 }
 
-static char cached_path[PATH_MAX] = PKGLIBDIR;
+static char cached_path[PATH_MAX] = LIBDIR;
 
 static void config_GetLibDirOnce(void)
 {
diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index 03f77582ca..ee1c94cb27 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -42,7 +42,7 @@
  */
 VLC_WEAK char *config_GetLibDir(void)
 {
-return strdup(PKGLIBDIR);
+return strdup(LIBDIR);
 }
 
 char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
@@ -61,8 +61,8 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
  }
 }
 
-char *pkglibdir = config_GetLibDir();
-if (pkglibdir == NULL)
+char *libdir = config_GetLibDir();
+if (libdir == NULL)
 return NULL; /* OOM */
 
 static const char *const dirs[] = {
@@ -74,30 +74,30 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 const char *dir_static = dirs[type];
 /* Look for common static prefix. */
 size_t prefix_len = 0;
-while (prefix_len < strlen(PKGLIBDIR)
-&& PKGLIBDIR[prefix_len] == dir_static[prefix_len])
+while (prefix_len < strlen(LIBDIR)
+&& LIBDIR[prefix_len] == dir_static[prefix_len])
 prefix_len++;
 
 /* Check that suffix matches between static and dynamic libdir paths. */
 char *filepath = NULL;
-size_t suffix_len = strlen(PKGLIBDIR) - prefix_len;
-size_t pkglibdir_len = strlen(pkglibdir);
+size_t suffix_len = strlen(LIBDIR) - prefix_len;
+size_t libdir_len = strlen(libdir);
 
-if (suffix_len > pkglibdir_len
- || memcmp(PKGLIBDIR + prefix_len,
-   pkglibdir + (pkglibdir_len - suffix_len), suffix_len)) {
-suffix_len = pkglibdir_len;
+if (suffix_len > libdir_len
+ || memcmp(LIBDIR + prefix_len, libdir + (libdir_len - suffix_len),
+   suffix_len)) {
+suffix_len = libdir_len;
 prefix_len = 0;
 }
 
 /* Graft non-common static suffix to dynamically computed common prefix. */
 const char *fmt = (filename != NULL) ? "%.*s%s/%s" : "%.*s%s";
 
-if (unlikely(asprintf(, fmt, (int)(pkglibdir_len - suffix_len),
-  pkglibdir, dir_static + prefix_len, filename) == -1))
+if (unlikely(asprintf(, fmt, (int)(libdir_len - suffix_len),
+  libdir, dir_static + prefix_len, filename) == -1))
 filepath = NULL;
 
-free(pkglibdir);
+free(libdir);
 return filepath;
 }
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] vlc-cache-gen: use correct install directory

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:30:03 2018 +0200| [ba05ad61645b38ad206e23949a6352871ab59773] | committer: 
Rémi Denis-Courmont

vlc-cache-gen: use correct install directory

pkglibexecdir is the pseudo-directory for internal executables.
vlc-qt-check already uses that. Indeed, PROGRAMS and SCRIPTS targets
are not allowed by automake in pkglibdir.

(libexecdir can be set to '${libdir}' in configure if/when the
distinction is unwanted.)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ba05ad61645b38ad206e23949a6352871ab59773
---

 Makefile.am   | 2 +-
 bin/Makefile.am   | 2 +-
 extras/package/macosx/package.mak | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 3ac82623ad..d53610e79c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -165,7 +165,7 @@ install-exec-hook:
if test "$(build)" = "$(host)"; then \
PATH="$(DESTDIR)$(bindir):$$PATH" \
LD_LIBRARY_PATH="$(DESTDIR)$(libdir):$$LD_LIBRARY_PATH" \
-   "$(DESTDIR)$(vlclibdir)/vlc-cache-gen$(EXEEXT)" \
+   "$(DESTDIR)$(pkglibexecdir)/vlc-cache-gen$(EXEEXT)" \
 "$(DESTDIR)$(vlclibdir)/plugins" ; \
else \
echo "Cross-compilation: cache generation skipped!" ; \
diff --git a/bin/Makefile.am b/bin/Makefile.am
index 2877e8b0ea..eb3cf6ec35 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -109,7 +109,7 @@ vlc_win32_rc.$(OBJEXT): vlc_win32_rc.rc 
$(top_srcdir)/extras/package/win32/vlc.e
 # Plug-ins cache generator
 #
 if HAVE_DYNAMIC_PLUGINS
-vlclib_PROGRAMS = vlc-cache-gen
+pkglibexec_PROGRAMS = vlc-cache-gen
 endif
 vlc_cache_gen_SOURCES = cachegen.c
 vlc_cache_gen_LDADD = \
diff --git a/extras/package/macosx/package.mak 
b/extras/package/macosx/package.mak
index 2b9b569abc..ed0d7dd646 100644
--- a/extras/package/macosx/package.mak
+++ b/extras/package/macosx/package.mak
@@ -95,7 +95,7 @@ package-macosx-release:
cp -Rp $(top_builddir)/VLC.app $(top_builddir)/vlc-$(VERSION)-release/
cp $(srcdir)/extras/package/macosx/dmg/* 
$(top_builddir)/vlc-$(VERSION)-release/
cp "$(srcdir)/extras/package/macosx/codesign.sh" 
$(top_builddir)/vlc-$(VERSION)-release/
-   cp "$(prefix)/lib/vlc/vlc-cache-gen" 
$(top_builddir)/vlc-$(VERSION)-release/
+   cp "$(pkglibexecdir)/vlc-cache-gen" 
$(top_builddir)/vlc-$(VERSION)-release/
install_name_tool -add_rpath 
"@executable_path/VLC.app/Contents/MacOS/lib" 
$(top_builddir)/vlc-$(VERSION)-release/vlc-cache-gen
zip -r -y -9 $(top_builddir)/vlc-$(VERSION)-release.zip 
$(top_builddir)/vlc-$(VERSION)-release
rm -rf "$(top_builddir)/vlc-$(VERSION)-release"

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] posix: add libdir, libexecdir and pkglibexecdir

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:31:00 2018 +0200| [5ad48005639464f2d1ea62273f7515ed20146e2c] | committer: 
Rémi Denis-Courmont

posix: add libdir, libexecdir and pkglibexecdir

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5ad48005639464f2d1ea62273f7515ed20146e2c
---

 include/vlc_configuration.h | 8 +++-
 src/Makefile.am | 4 +++-
 src/posix/dirs.c| 8 ++--
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h
index 1be4867f12..cfcd393921 100644
--- a/include/vlc_configuration.h
+++ b/include/vlc_configuration.h
@@ -278,11 +278,17 @@ typedef enum vlc_system_dir
data directory (e.g. /usr/local/data/vlc). */
 VLC_PKG_LIB_DIR, /**< Package-specific architecture-dependent read-only
   data directory (e.g. /usr/local/lib/vlc). */
-VLC_PKG_LIBEXEC_DIR_RESERVED,
+VLC_PKG_LIBEXEC_DIR, /**< Package-specific executable read-only directory
+  (e.g. /usr/local/libexec/vlc). */
 VLC_PKG_INCLUDE_DIR_RESERVED,
 VLC_SYSDATA_DIR, /**< Global architecture-independent read-only
   data directory (e.g. /usr/local/data).
   Available only on some platforms. */
+VLC_LIB_DIR, /**< Global architecture-dependent read-only directory
+  (e.g. /usr/local/lib). */
+VLC_LIBEXEC_DIR, /**< Global executable read-only directory
+  (e.g. /usr/local/libexec). */
+VLC_INCLUDE_DIR_RESERVED,
 } vlc_sysdir_t;
 
 /**
diff --git a/src/Makefile.am b/src/Makefile.am
index 46b29d67d9..d41f24a0c7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -171,9 +171,11 @@ AM_CPPFLAGS = $(INCICONV) $(IDN_CFLAGS) \
-DMODULE_STRING=\"core\" \
-DSYSDATADIR=\"$(datadir)\" \
-DLIBDIR=\"$(libdir)\" \
+   -DLIBEXECDIR=\"$(libexecdir)\" \
-DLOCALEDIR=\"$(localedir)\" \
-DPKGDATADIR=\"$(pkgdatadir)\" \
-   -DPKGLIBDIR=\"$(pkglibdir)\"
+   -DPKGLIBDIR=\"$(pkglibdir)\" \
+   -DPKGLIBEXECDIR=\"$(pkglibexecdir)\"
 AM_CFLAGS = $(CFLAGS_libvlccore)
 if HAVE_DYNAMIC_PLUGINS
 AM_CPPFLAGS += -DHAVE_DYNAMIC_PLUGINS
diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index 69ce7a07d2..9ecec2dc0e 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -48,8 +48,9 @@ VLC_WEAK char *config_GetLibDir(void)
 char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
 {
 static const char env_vars[][16] = {
-[VLC_PKG_LIB_DIR] = "VLC_LIB_PATH",
 [VLC_PKG_DATA_DIR] = "VLC_DATA_PATH",
+[VLC_PKG_LIB_DIR] = "VLC_LIB_PATH",
+[VLC_PKG_LIBEXEC_DIR] = "VLC_LIB_PATH",
 };
 
 if (type < ARRAY_SIZE(env_vars)) {
@@ -66,9 +67,12 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 return NULL; /* OOM */
 
 static const char *const dirs[] = {
-[VLC_PKG_LIB_DIR] = PKGLIBDIR,
 [VLC_PKG_DATA_DIR] = PKGDATADIR,
+[VLC_PKG_LIB_DIR] = PKGLIBDIR,
+[VLC_PKG_LIBEXEC_DIR] = PKGLIBEXECDIR,
 [VLC_SYSDATA_DIR] = SYSDATADIR,
+[VLC_LIB_DIR] = LIBDIR,
+[VLC_LIBEXEC_DIR] = LIBEXECDIR,
 };
 assert(type < ARRAY_SIZE(dirs));
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] config: add more generic config_GetSysDir()

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Sat Mar  3 
18:01:11 2018 +0200| [5acf93221176ebc83e5b097e4ae78b5f8014836b] | committer: 
Rémi Denis-Courmont

config: add more generic config_GetSysDir()

A quick survey of used installation directories yields those:
datadir, libdir, localedir, pkgdatadir, pkglibdir, pkglibexecdir.

The current pair of functions is up to the requirements. This provides
a more generic function prototype, similar to what is done for user
directories.

Refs #19748, #19894.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5acf93221176ebc83e5b097e4ae78b5f8014836b
---

 include/vlc_configuration.h | 27 ++-
 src/darwin/dirs.c   | 25 +
 src/libvlccore.sym  |  1 +
 src/os2/dirs.c  | 25 +
 src/posix/dirs.c| 26 ++
 src/win32/dirs.c| 26 ++
 6 files changed, 129 insertions(+), 1 deletion(-)

diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h
index 8421c370f4..f0906da03a 100644
--- a/include/vlc_configuration.h
+++ b/include/vlc_configuration.h
@@ -297,7 +297,32 @@ VLC_API char *config_GetDataDir(void) VLC_USED VLC_MALLOC;
  */
 VLC_API char *config_GetLibDir(void) VLC_USED VLC_MALLOC;
 
-typedef enum vlc_userdir
+/**
+ * System directory identifiers
+ */
+typedef enum vlc_system_dir
+{
+VLC_PKG_DATA_DIR, /**< Package-specific architecture-independent read-only
+   data directory (e.g. /usr/local/data/vlc). */
+VLC_PKG_LIB_DIR, /**< Package-specific architecture-dependent read-only
+  data directory (e.g. /usr/local/lib/vlc). */
+} vlc_sysdir_t;
+
+/**
+ * Gets an installation directory.
+ *
+ * This function determines one of the installation directory.
+ *
+ * @param dir identifier of the directory (see \ref vlc_sysdir_t)
+ * @param filename name of a file or other object within the directory
+ * (or NULL to obtain the plain directory)
+ *
+ * @return a heap-allocated string (use free() to release it), or NULL on error
+ */
+VLC_API char *config_GetSysPath(vlc_sysdir_t dir, const char *filename)
+VLC_USED VLC_MALLOC;
+
+typedef enum vlc_user_dir
 {
 VLC_HOME_DIR, /* User's home */
 VLC_CONFIG_DIR, /* VLC-specific configuration directory */
diff --git a/src/darwin/dirs.c b/src/darwin/dirs.c
index 9fb15b6dcf..59d60c0fd6 100644
--- a/src/darwin/dirs.c
+++ b/src/darwin/dirs.c
@@ -108,6 +108,31 @@ char *config_GetDataDir (void)
 return datadir;
 }
 
+char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
+{
+char *dir;
+
+switch (type)
+{
+case VLC_PKG_DATA_DIR:
+dir = config_GetDataDir();
+break;
+case VLC_PKG_LIB_DIR:
+dir = config_GetLibDir();
+break;
+default:
+vlc_assert_unreachable();
+}
+
+if (filename == NULL || unlikely(dir == NULL))
+return dir;
+
+char *path;
+asprintf(, "%s/%s", dir, filename);
+free(dir);
+return path;
+}
+
 static char *config_GetHomeDir (void)
 {
 const char *home = getenv ("HOME");
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index 740b3b53f8..6ed142207e 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -54,6 +54,7 @@ config_FindConfig
 config_GetDataDir
 config_GetLibDir
 config_GetFloat
+config_GetSysPath
 config_GetUserDir
 config_GetInt
 config_GetIntChoices
diff --git a/src/os2/dirs.c b/src/os2/dirs.c
index f5753df209..27a1d8a7c6 100644
--- a/src/os2/dirs.c
+++ b/src/os2/dirs.c
@@ -64,6 +64,31 @@ char *config_GetDataDir (void)
 return datadir;
 }
 
+char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
+{
+char *dir;
+
+switch (type)
+{
+case VLC_PKG_DATA_DIR:
+dir = config_GetDataDir();
+break;
+case VLC_PKG_LIB_DIR:
+dir = config_GetLibDir();
+break;
+default:
+vlc_assert_unreachable();
+}
+
+if (filename == NULL || unlikely(dir == NULL))
+return dir;
+
+char *path;
+asprintf(, "%s/%s", dir, filename);
+free(dir);
+return path;
+}
+
 static char *config_GetHomeDir (void)
 {
 const char *home = getenv ("HOME");
diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index 0514a41a6a..493a67190d 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -57,6 +57,32 @@ VLC_WEAK char *config_GetLibDir(void)
 return strdup((path != NULL) ? path : PKGLIBDIR);
 }
 
+char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
+{
+char *dir;
+
+switch (type)
+{
+case VLC_PKG_DATA_DIR:
+dir = config_GetDataDir();
+break;
+case VLC_PKG_LIB_DIR:
+dir = config_GetLibDir();
+break;
+default:
+vlc_assert_unreachable();
+}
+
+if (filename == NULL || unlikely(dir == 

[vlc-commits] qt: fix path to vlc-qt-check (fixes #19748)

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:43:35 2018 +0200| [7d3abba9774abaabcd06d70bd1cdf5c3cdbec4fe] | committer: 
Rémi Denis-Courmont

qt: fix path to vlc-qt-check (fixes #19748)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7d3abba9774abaabcd06d70bd1cdf5c3cdbec4fe
---

 modules/gui/qt/qt.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
index aba55b61ea..dedd1e5994 100644
--- a/modules/gui/qt/qt.cpp
+++ b/modules/gui/qt/qt.cpp
@@ -381,7 +381,7 @@ static int Open( vlc_object_t *p_this, bool 
isDialogProvider )
 
 #if (_POSIX_SPAWN >= 0)
 /* Check if QApplication works */
-char *path = config_GetSysPath(VLC_PKG_LIB_DIR, "vlc-qt-check");
+char *path = config_GetSysPath(VLC_PKG_LIBEXEC_DIR, "vlc-qt-check");
 if (unlikely(path == NULL))
 return VLC_ENOMEM;
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] posix: inline and generalize directory relocation

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
22:35:42 2018 +0200| [6a98da9e22bccdce7dfde620ef37cf73f0a356ee] | committer: 
Rémi Denis-Courmont

posix: inline and generalize directory relocation

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6a98da9e22bccdce7dfde620ef37cf73f0a356ee
---

 src/posix/dirs.c | 85 +++-
 1 file changed, 34 insertions(+), 51 deletions(-)

diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index b8feb8ed65..03f77582ca 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -45,39 +45,6 @@ VLC_WEAK char *config_GetLibDir(void)
 return strdup(PKGLIBDIR);
 }
 
-/**
- * Determines the shared data directory
- *
- * @return a nul-terminated string or NULL. Use free() to release it.
- */
-static char *config_GetDataDir(void)
-{
-char *libdir = config_GetLibDir();
-if (libdir == NULL)
-return NULL; /* OOM */
-
-/* Look for common prefix between lib and data directories. */
-size_t prefix_len = 0;
-while (PKGLIBDIR[prefix_len] == PKGDATADIR[prefix_len])
-{
-if (PKGLIBDIR[prefix_len] == '\0')
-return libdir; /* corner case: directories are identical */
-prefix_len++;
-}
-
-char *datadir = NULL;
-
-char *p = strstr(libdir, PKGLIBDIR + prefix_len);
-if (p != NULL)
-{
-if (unlikely(asprintf(, "%.*s%s", (int)(p - libdir), libdir,
-  PKGDATADIR + prefix_len) == -1))
-datadir = NULL;
-}
-free (libdir);
-return (datadir != NULL) ? datadir : strdup (PKGDATADIR);
-}
-
 char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
 {
 static const char env_vars[][16] = {
@@ -94,28 +61,44 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
  }
 }
 
-char *dir;
+char *pkglibdir = config_GetLibDir();
+if (pkglibdir == NULL)
+return NULL; /* OOM */
 
-switch (type)
-{
-case VLC_PKG_DATA_DIR:
-dir = config_GetDataDir();
-break;
-case VLC_PKG_LIB_DIR:
-dir = config_GetLibDir();
-break;
-default:
-vlc_assert_unreachable();
+static const char *const dirs[] = {
+[VLC_PKG_LIB_DIR] = PKGLIBDIR,
+[VLC_PKG_DATA_DIR] = PKGDATADIR,
+};
+assert(type < ARRAY_SIZE(dirs));
+
+const char *dir_static = dirs[type];
+/* Look for common static prefix. */
+size_t prefix_len = 0;
+while (prefix_len < strlen(PKGLIBDIR)
+&& PKGLIBDIR[prefix_len] == dir_static[prefix_len])
+prefix_len++;
+
+/* Check that suffix matches between static and dynamic libdir paths. */
+char *filepath = NULL;
+size_t suffix_len = strlen(PKGLIBDIR) - prefix_len;
+size_t pkglibdir_len = strlen(pkglibdir);
+
+if (suffix_len > pkglibdir_len
+ || memcmp(PKGLIBDIR + prefix_len,
+   pkglibdir + (pkglibdir_len - suffix_len), suffix_len)) {
+suffix_len = pkglibdir_len;
+prefix_len = 0;
 }
 
-if (filename == NULL || unlikely(dir == NULL))
-return dir;
+/* Graft non-common static suffix to dynamically computed common prefix. */
+const char *fmt = (filename != NULL) ? "%.*s%s/%s" : "%.*s%s";
 
-char *path;
-if (unlikely(asprintf(, "%s/%s", dir, filename) == -1))
-path = NULL;
-free(dir);
-return path;
+if (unlikely(asprintf(, fmt, (int)(pkglibdir_len - suffix_len),
+  pkglibdir, dir_static + prefix_len, filename) == -1))
+filepath = NULL;
+
+free(pkglibdir);
+return filepath;
 }
 
 static char *config_GetHomeDir (void)

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] Replace config_Get(Data|Lib)Dir() with config_GetSysDir()

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Sat Mar  3 
18:06:36 2018 +0200| [477d18c7236ef6cad8f3a8593844454cf81b7c25] | committer: 
Rémi Denis-Courmont

Replace config_Get(Data|Lib)Dir() with config_GetSysDir()

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=477d18c7236ef6cad8f3a8593844454cf81b7c25
---

 modules/access/dvb/linux_dvb.c |  4 +--
 .../audio_filter/channel_mixer/spatialaudio.cpp|  6 ++--
 modules/gui/qt/qt.cpp  | 38 +-
 modules/gui/skins2/os2/os2_factory.cpp |  2 +-
 modules/gui/skins2/win32/win32_factory.cpp |  2 +-
 modules/gui/skins2/x11/x11_factory.cpp |  4 +--
 modules/lua/libs/configuration.c   |  2 +-
 modules/lua/vlc.c  |  4 +--
 modules/notify/notify.c|  7 ++--
 modules/visualization/projectm.cpp |  6 +---
 src/modules/textdomain.c   | 10 ++
 src/video_output/video_epg.c   |  7 ++--
 12 files changed, 35 insertions(+), 57 deletions(-)

diff --git a/modules/access/dvb/linux_dvb.c b/modules/access/dvb/linux_dvb.c
index 44ef0edc32..30d3566d13 100644
--- a/modules/access/dvb/linux_dvb.c
+++ b/modules/access/dvb/linux_dvb.c
@@ -381,9 +381,9 @@ static int ScanParametersDvbS( vlc_object_t *p_access, 
dvb_sys_t *p_sys, scan_pa
 char *psz_name = var_InheritString( p_access, "dvb-satellite" );
 if( psz_name )
 {
-char *data_dir = config_GetDataDir();
+char *data_dir = config_GetSysPath(VLC_PKG_DATA_DIR, "dvb/dvb-s");
 if( !data_dir || -1 ==  asprintf( _scan->psz_scanlist_file,
-"%s" DIR_SEP "dvb" DIR_SEP "dvb-s" DIR_SEP "%s", data_dir, 
psz_name ) )
+"%s/%s", data_dir, psz_name ) )
 {
 p_scan->psz_scanlist_file = NULL;
 }
diff --git a/modules/audio_filter/channel_mixer/spatialaudio.cpp 
b/modules/audio_filter/channel_mixer/spatialaudio.cpp
index c34e402527..02d791b911 100644
--- a/modules/audio_filter/channel_mixer/spatialaudio.cpp
+++ b/modules/audio_filter/channel_mixer/spatialaudio.cpp
@@ -150,12 +150,10 @@ static std::string getHRTFPath(filter_t *p_filter)
 }
 else
 {
-char *dataDir = config_GetDataDir();
+char *dataDir = config_GetSysPath(VLC_PKG_DATA_DIR, DEFAULT_HRTF_PATH);
 if (dataDir != NULL)
 {
-std::stringstream ss;
-ss << std::string(dataDir) << DIR_SEP << DEFAULT_HRTF_PATH;
-HRTFPath = ss.str();
+HRTFPath = std::string(dataDir);
 free(dataDir);
 }
 }
diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp
index 61c0049925..aba55b61ea 100644
--- a/modules/gui/qt/qt.cpp
+++ b/modules/gui/qt/qt.cpp
@@ -381,33 +381,25 @@ static int Open( vlc_object_t *p_this, bool 
isDialogProvider )
 
 #if (_POSIX_SPAWN >= 0)
 /* Check if QApplication works */
-char *libdir = config_GetLibDir();
-if (likely(libdir != NULL))
-{
-char *path;
-
-if (unlikely(asprintf(, "%s/vlc-qt-check", libdir) < 0))
-path = NULL;
-free(libdir);
-if (unlikely(path == NULL))
-return VLC_ENOMEM;
+char *path = config_GetSysPath(VLC_PKG_LIB_DIR, "vlc-qt-check");
+if (unlikely(path == NULL))
+return VLC_ENOMEM;
 
-char *argv[] = { path, NULL };
-pid_t pid;
+char *argv[] = { path, NULL };
+pid_t pid;
 
-int val = posix_spawn(, path, NULL, NULL, argv, environ);
-free(path);
-if (val)
-return VLC_ENOMEM;
+int val = posix_spawn(, path, NULL, NULL, argv, environ);
+free(path);
+if (val)
+return VLC_ENOMEM;
 
-int status;
-while (waitpid(pid, , 0) == -1);
+int status;
+while (waitpid(pid, , 0) == -1);
 
-if (!WIFEXITED(status) || WEXITSTATUS(status) != 0)
-{
-msg_Dbg(p_this, "Qt check failed (%d). Skipping.", status);
-return VLC_EGENERIC;
-}
+if (!WIFEXITED(status) || WEXITSTATUS(status) != 0)
+{
+msg_Dbg(p_this, "Qt check failed (%d). Skipping.", status);
+return VLC_EGENERIC;
 }
 #endif
 
diff --git a/modules/gui/skins2/os2/os2_factory.cpp 
b/modules/gui/skins2/os2/os2_factory.cpp
index dc6357c371..a013175229 100644
--- a/modules/gui/skins2/os2/os2_factory.cpp
+++ b/modules/gui/skins2/os2/os2_factory.cpp
@@ -220,7 +220,7 @@ bool OS2Factory::init()
 char *datadir = config_GetUserDir( VLC_USER_DATA_DIR );
 m_resourcePath.push_back( (std::string)datadir + "\\skins" );
 free( datadir );
-datadir = config_GetDataDir();
+datadir = config_GetSysPath(VLC_PKG_DATA_DIR, NULL);
 m_resourcePath.push_back( (std::string)datadir + "\\skins" );
 m_resourcePath.push_back( (std::string)datadir + "\\skins2" );
 m_resourcePath.push_back( (std::string)datadir + "\\share\\skins" 

[vlc-commits] config: unexport config_Get(Data|Lib)Dir()

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Sat Mar  3 
18:15:06 2018 +0200| [1beb944b224d7a1020f9629c570b498ed0b2] | committer: 
Rémi Denis-Courmont

config: unexport config_Get(Data|Lib)Dir()

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1beb944b224d7a1020f9629c570b498ed0b2
---

 include/vlc_configuration.h | 28 
 src/config/configuration.h  | 28 
 src/libvlccore.sym  |  2 --
 3 files changed, 28 insertions(+), 30 deletions(-)

diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h
index f0906da03a..a4854126a3 100644
--- a/include/vlc_configuration.h
+++ b/include/vlc_configuration.h
@@ -270,34 +270,6 @@ VLC_API void config_ResetAll(void);
 VLC_API module_config_t *config_FindConfig(const char *name) VLC_USED;
 
 /**
- * Gets the arch-independent installation directory.
- *
- * This function determines the directory containing the
- * architecture-independent installed asset files (such as image, text and
- * message translation tables).
- *
- * See also config_GetLibDir().
- *
- * @return a heap-allocated string (use free() to release it), or NULL on error
- */
-VLC_API char *config_GetDataDir(void) VLC_USED VLC_MALLOC;
-
-/**
- * Gets the arch-specific installation directory.
- *
- * This function determines the directory containing the architecture-specific
- * installed asset files (such as executable plugins and compiled byte code).
- *
- * See also config_GetDataDir().
- *
- * \note config_GetDataDir() and config_GetLibDir() may or may not return the
- * same path, depending on conventions of the operating system.
- *
- * @return a heap-allocated string (use free() to release it), or NULL on error
- */
-VLC_API char *config_GetLibDir(void) VLC_USED VLC_MALLOC;
-
-/**
  * System directory identifiers
  */
 typedef enum vlc_system_dir
diff --git a/src/config/configuration.h b/src/config/configuration.h
index dd02c7f4af..f8489e607a 100644
--- a/src/config/configuration.h
+++ b/src/config/configuration.h
@@ -55,6 +55,34 @@ extern bool config_dirty;
 
 bool config_IsSafe (const char *);
 
+/**
+ * Gets the arch-independent installation directory.
+ *
+ * This function determines the directory containing the
+ * architecture-independent installed asset files (such as image, text and
+ * message translation tables).
+ *
+ * See also config_GetLibDir().
+ *
+ * @return a heap-allocated string (use free() to release it), or NULL on error
+ */
+char *config_GetDataDir(void) VLC_USED VLC_MALLOC;
+
+/**
+ * Gets the arch-specific installation directory.
+ *
+ * This function determines the directory containing the architecture-specific
+ * installed asset files (such as executable plugins and compiled byte code).
+ *
+ * See also config_GetDataDir().
+ *
+ * \note config_GetDataDir() and config_GetLibDir() may or may not return the
+ * same path, depending on conventions of the operating system.
+ *
+ * @return a heap-allocated string (use free() to release it), or NULL on error
+ */
+char *config_GetLibDir(void) VLC_USED VLC_MALLOC;
+
 /* The configuration file */
 #define CONFIG_FILE "vlcrc"
 
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index 6ed142207e..b119285cdb 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -51,8 +51,6 @@ config_ChainParse
 config_ChainParseOptions
 config_ExistIntf
 config_FindConfig
-config_GetDataDir
-config_GetLibDir
 config_GetFloat
 config_GetSysPath
 config_GetUserDir

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] config: add localedir

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Tue Mar  6 
20:48:57 2018 +0200| [a5069565c29edfb2a19f32122ce951acf4f2d35d] | committer: 
Rémi Denis-Courmont

config: add localedir

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a5069565c29edfb2a19f32122ce951acf4f2d35d
---

 include/vlc_configuration.h | 1 +
 src/darwin/dirs.c   | 3 +++
 src/os2/dirs.c  | 3 +++
 src/posix/dirs.c| 1 +
 src/win32/dirs.c| 3 +++
 5 files changed, 11 insertions(+)

diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h
index cfcd393921..91a38d79b0 100644
--- a/include/vlc_configuration.h
+++ b/include/vlc_configuration.h
@@ -289,6 +289,7 @@ typedef enum vlc_system_dir
 VLC_LIBEXEC_DIR, /**< Global executable read-only directory
   (e.g. /usr/local/libexec). */
 VLC_INCLUDE_DIR_RESERVED,
+VLC_LOCALE_DIR, /**< Base directory for package read-only locale data. */
 } vlc_sysdir_t;
 
 /**
diff --git a/src/darwin/dirs.c b/src/darwin/dirs.c
index afe406a87a..c514e45582 100644
--- a/src/darwin/dirs.c
+++ b/src/darwin/dirs.c
@@ -122,6 +122,9 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 break;
 case VLC_SYSDATA_DIR:
 break;
+case VLC_LOCALE_DIR:
+dir = config_GetSysPath(VLC_PKG_DATA_DIR, "locale");
+break;
 default:
 vlc_assert_unreachable();
 }
diff --git a/src/os2/dirs.c b/src/os2/dirs.c
index e649731a1d..aa364ed23e 100644
--- a/src/os2/dirs.c
+++ b/src/os2/dirs.c
@@ -78,6 +78,9 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 break;
 case VLC_SYSDATA_DIR:
 break;
+case VLC_LOCALE_DIR:
+dir = config_GetSysPath(VLC_PKG_DATA_DIR, "locale");
+break;
 default:
 vlc_assert_unreachable();
 }
diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index 9ecec2dc0e..280a37b2a7 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -73,6 +73,7 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 [VLC_SYSDATA_DIR] = SYSDATADIR,
 [VLC_LIB_DIR] = LIBDIR,
 [VLC_LIBEXEC_DIR] = LIBEXECDIR,
+[VLC_LOCALE_DIR] = LOCALEDIR,
 };
 assert(type < ARRAY_SIZE(dirs));
 
diff --git a/src/win32/dirs.c b/src/win32/dirs.c
index 3444384bfe..5489da6286 100644
--- a/src/win32/dirs.c
+++ b/src/win32/dirs.c
@@ -226,6 +226,9 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 break;
 case VLC_SYSDATA_DIR:
 break;
+case VLC_LOCALE_DIR:
+dir = config_GetSysPath(VLC_PKG_DATA_DIR, "locale");
+break;
 default:
 vlc_assert_unreachable();
 }

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] epg: fix path to VLC icon

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:13:20 2018 +0200| [d9086895e32e22af0aadc8f2af8e745a462a6ab1] | committer: 
Rémi Denis-Courmont

epg: fix path to VLC icon

As per ebbb05512f9c16812db5808fcba9a4678973d21f.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d9086895e32e22af0aadc8f2af8e745a462a6ab1
---

 src/video_output/video_epg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/video_output/video_epg.c b/src/video_output/video_epg.c
index 4547ed030d..834367d007 100644
--- a/src/video_output/video_epg.c
+++ b/src/video_output/video_epg.c
@@ -77,8 +77,8 @@ struct subpicture_updater_sys_t
 static char * GetDefaultArtUri( void )
 {
 char *psz_uri = NULL;
-char *psz_path = config_GetSysPath(VLC_PKG_DATA_DIR,
-   "icons/128x128/"PACKAGE_NAME".png");
+char *psz_path = config_GetSysPath(VLC_SYSDATA_DIR, "icons/hicolor/"
+   "128x128/"PACKAGE_NAME".png");
 if( psz_path != NULL )
 {
 psz_uri = vlc_path2uri( psz_path, NULL );

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] notify: fix path to VLC icon

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:13:20 2018 +0200| [1f252f5433da8c93450ef5295e496f9c249be50e] | committer: 
Rémi Denis-Courmont

notify: fix path to VLC icon

As per ebbb05512f9c16812db5808fcba9a4678973d21f.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1f252f5433da8c93450ef5295e496f9c249be50e
---

 modules/notify/notify.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/notify/notify.c b/modules/notify/notify.c
index 5c5092dbd9..3bf8c6dd9f 100644
--- a/modules/notify/notify.c
+++ b/modules/notify/notify.c
@@ -233,8 +233,8 @@ static int ItemChange( vlc_object_t *p_this, const char 
*psz_var,
 {
 /* Load icon from share/ */
 GError *p_error = NULL;
-char *psz_pixbuf = config_GetSysPath(VLC_PKG_DATA_DIR,
- "icons/48x48/"PACKAGE".png");
+char *psz_pixbuf = config_GetSysPath(VLC_SYSDATA_DIR,
+ "icons/hicolor/48x48/"PACKAGE_NAME".png");
 if (psz_pixbuf != NULL)
 {
 pix = gdk_pixbuf_new_from_file( psz_pixbuf, _error );

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] dvb: fix path to DVB-S scan lists

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:10:35 2018 +0200| [264108c58d52a80bb1a84059f6e2ab9b3e8b31bc] | committer: 
Rémi Denis-Courmont

dvb: fix path to DVB-S scan lists

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=264108c58d52a80bb1a84059f6e2ab9b3e8b31bc
---

 modules/access/dvb/linux_dvb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/access/dvb/linux_dvb.c b/modules/access/dvb/linux_dvb.c
index 30d3566d13..580e44dac2 100644
--- a/modules/access/dvb/linux_dvb.c
+++ b/modules/access/dvb/linux_dvb.c
@@ -381,7 +381,7 @@ static int ScanParametersDvbS( vlc_object_t *p_access, 
dvb_sys_t *p_sys, scan_pa
 char *psz_name = var_InheritString( p_access, "dvb-satellite" );
 if( psz_name )
 {
-char *data_dir = config_GetSysPath(VLC_PKG_DATA_DIR, "dvb/dvb-s");
+char *data_dir = config_GetSysPath(VLC_SYSDATA_DIR, "dvb/dvb-s");
 if( !data_dir || -1 ==  asprintf( _scan->psz_scanlist_file,
 "%s/%s", data_dir, psz_name ) )
 {

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] win32: no absolute paths as target (fixes #19624)

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Tue Mar  6 
20:29:03 2018 +0200| [99ad3da5019eb872fb49e5ec960db16349c5d7a5] | committer: 
Rémi Denis-Courmont

win32: no absolute paths as target (fixes #19624)

Makefile expansion cannot handle that correctly.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=99ad3da5019eb872fb49e5ec960db16349c5d7a5
---

 extras/package/win32/package.mak | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/extras/package/win32/package.mak b/extras/package/win32/package.mak
index 740254a1a1..591a3e743a 100644
--- a/extras/package/win32/package.mak
+++ b/extras/package/win32/package.mak
@@ -3,7 +3,7 @@ BUILT_SOURCES_distclean += \
extras/package/win32/NSIS/vlc.win32.nsi 
extras/package/win32/NSIS/spad.nsi
 endif
 
-win32_destdir=$(abs_top_builddir)/vlc-$(VERSION)
+win32_destdir=$(top_builddir)/vlc-$(VERSION)
 win32_debugdir=$(abs_top_builddir)/symbols-$(VERSION)
 win32_xpi_destdir=$(abs_top_builddir)/vlc-plugin-$(VERSION)
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] Makefile: use pkglibdir for libraries

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:40:16 2018 +0200| [9ce86be4e8699693c2e5b6d6e4820ff8b4c1033c] | committer: 
Rémi Denis-Courmont

Makefile: use pkglibdir for libraries

(see previous commit for rationale)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9ce86be4e8699693c2e5b6d6e4820ff8b4c1033c
---

 Makefile.am   | 4 ++--
 modules/common.am | 2 +-
 src/Makefile.am   | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index d53610e79c..87516e3a6a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -166,14 +166,14 @@ install-exec-hook:
PATH="$(DESTDIR)$(bindir):$$PATH" \
LD_LIBRARY_PATH="$(DESTDIR)$(libdir):$$LD_LIBRARY_PATH" \
"$(DESTDIR)$(pkglibexecdir)/vlc-cache-gen$(EXEEXT)" \
-"$(DESTDIR)$(vlclibdir)/plugins" ; \
+"$(DESTDIR)$(pkglibdir)/plugins" ; \
else \
echo "Cross-compilation: cache generation skipped!" ; \
fi
 endif
 
 uninstall-hook:
-   rm -f -- "$(DESTDIR)$(vlclibdir)/plugins/plugins.dat"
+   rm -f -- "$(DESTDIR)$(pkglibdir)/plugins/plugins.dat"
 
 ###
 # Test coverage
diff --git a/modules/common.am b/modules/common.am
index 1b9117c98d..37267f0341 100644
--- a/modules/common.am
+++ b/modules/common.am
@@ -8,7 +8,7 @@
 AUTOMAKE_OPTIONS = subdir-objects
 
 NULL =
-pluginsdir = $(vlclibdir)/plugins
+pluginsdir = $(pkglibdir)/plugins
 BUILT_SOURCES =
 CLEANFILES = $(BUILT_SOURCES)
 
diff --git a/src/Makefile.am b/src/Makefile.am
index f4617120d0..90011eedbc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -171,7 +171,7 @@ AM_CPPFLAGS = $(INCICONV) $(IDN_CFLAGS) \
-DMODULE_STRING=\"core\" \
-DLOCALEDIR=\"$(localedir)\" \
-DPKGDATADIR=\"$(pkgdatadir)\" \
-   -DPKGLIBDIR=\"$(vlclibdir)\"
+   -DPKGLIBDIR=\"$(pkglibdir)\"
 AM_CFLAGS = $(CFLAGS_libvlccore)
 if HAVE_DYNAMIC_PLUGINS
 AM_CPPFLAGS += -DHAVE_DYNAMIC_PLUGINS

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] demux: avi: refactor bih handling

2018-03-06 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Tue Mar  6 
19:25:39 2018 +0100| [4fe5e900f21d31d85ffe95e9dd7d14b0f72962a5] | committer: 
Francois Cartegnie

demux: avi: refactor bih handling

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4fe5e900f21d31d85ffe95e9dd7d14b0f72962a5
---

 modules/demux/avi/avi.c | 118 ++--
 1 file changed, 45 insertions(+), 73 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 8913c45e29..290c8c49af 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -581,19 +581,36 @@ static int Open( vlc_object_t * p_this )
 es_format_Init( >fmt, VIDEO_ES,
 AVI_FourccGetCodec( VIDEO_ES, 
p_vids->p_bih->biCompression ) );
 
+/* Extradata is the remainder of the chunk less the BIH */
+const uint8_t *p_bihextra = (const uint8_t *) 
_vids->p_bih[1];
+size_t i_bihextra;
+if( p_vids->i_chunk_size <= INT_MAX - 
sizeof(VLC_BITMAPINFOHEADER) )
+i_bihextra = p_vids->i_chunk_size - 
sizeof(VLC_BITMAPINFOHEADER);
+else
+i_bihextra = 0;
+
 if( p_vids->p_bih->biCompression == BI_RGB )
 {
 switch( p_vids->p_bih->biBitCount )
 {
 case 32:
 tk->fmt.i_codec = VLC_CODEC_RGB32;
+tk->fmt.video.i_bmask = 0xff00;
+tk->fmt.video.i_gmask = 0x00ff;
+tk->fmt.video.i_rmask = 0xff00;
 break;
 case 24:
-tk->fmt.i_codec = VLC_CODEC_RGB24;
+tk->fmt.i_codec = VLC_CODEC_RGB24; /* BGR (see 
biBitCount) */
+tk->fmt.video.i_bmask = 0x00ff;
+tk->fmt.video.i_gmask = 0xff00;
+tk->fmt.video.i_rmask = 0x00ff;
 break;
 case 16: /* Yes it is RV15 */
-case 15:
+case 15: /* RGB (B least 5 bits) */
 tk->fmt.i_codec = VLC_CODEC_RGB15;
+tk->fmt.video.i_rmask = 0x7c00;
+tk->fmt.video.i_gmask = 0x03e0;
+tk->fmt.video.i_bmask = 0x001f;
 break;
 case 9: /* <- TODO check that */
 tk->fmt.i_codec = VLC_CODEC_I410;
@@ -604,53 +621,33 @@ static int Open( vlc_object_t * p_this )
 else
 tk->fmt.i_codec = VLC_CODEC_GREY;
 break;
+default:
+if( p_vids->p_bih->biClrUsed < 8 )
+tk->fmt.i_codec = VLC_CODEC_RGBP;
+break;
 }
 
-switch( tk->fmt.i_codec )
+if( tk->fmt.i_codec == VLC_CODEC_RGBP )
 {
-case VLC_CODEC_RGB32:
-tk->fmt.video.i_bmask = 0xff00;
-tk->fmt.video.i_gmask = 0x00ff;
-tk->fmt.video.i_rmask = 0xff00;
-break;
-case VLC_CODEC_RGB24: /* BGR (see biBitCount) */
-tk->fmt.video.i_bmask = 0x00ff;
-tk->fmt.video.i_gmask = 0xff00;
-tk->fmt.video.i_rmask = 0x00ff;
-break;
-case VLC_CODEC_RGB15: /* RGB (B least 5 bits) */
-tk->fmt.video.i_rmask = 0x7c00;
-tk->fmt.video.i_gmask = 0x03e0;
-tk->fmt.video.i_bmask = 0x001f;
-break;
-case VLC_CODEC_RGBP:
-{
-const VLC_BITMAPINFO *p_bi = (const VLC_BITMAPINFO *) 
p_vids->p_bih;
+/* The palette should not be included in biSize, but 
come
+ * directly after BITMAPINFORHEADER in the BITMAPINFO 
structure */
 tk->fmt.video.p_palette = malloc( 
sizeof(video_palette_t) );
 if ( tk->fmt.video.p_palette )
 {
-uint32_t entry;
-for( uint32_t j = 0; j < p_vids->p_bih->biClrUsed; 
j++ )
+tk->fmt.video.p_palette->i_entries = 
__MIN(i_bihextra/4, 256);
+for( int k = 0; k < 
tk->fmt.video.p_palette->i_entries; k++ )
 {
- entry = GetDWBE( _bi->bmiColors[j] 

[vlc-commits] posix: merge Linux config_GetDataDir()

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Sun Mar  4 
15:11:42 2018 +0200| [dabb09fa2c5e029b22030a41049c9c81ae0dd361] | committer: 
Rémi Denis-Courmont

posix: merge Linux config_GetDataDir()

There are no needs to distinguish Linux for standard here.
Also make config_GetDataDir() static.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=dabb09fa2c5e029b22030a41049c9c81ae0dd361
---

 src/config/configuration.h | 18 --
 src/darwin/dirs.c  |  2 +-
 src/linux/dirs.c   | 32 
 src/os2/dirs.c |  2 +-
 src/posix/dirs.c   | 46 --
 src/win32/dirs.c   |  2 +-
 6 files changed, 39 insertions(+), 63 deletions(-)

diff --git a/src/config/configuration.h b/src/config/configuration.h
index f8489e607a..ec19abc89e 100644
--- a/src/config/configuration.h
+++ b/src/config/configuration.h
@@ -56,29 +56,11 @@ extern bool config_dirty;
 bool config_IsSafe (const char *);
 
 /**
- * Gets the arch-independent installation directory.
- *
- * This function determines the directory containing the
- * architecture-independent installed asset files (such as image, text and
- * message translation tables).
- *
- * See also config_GetLibDir().
- *
- * @return a heap-allocated string (use free() to release it), or NULL on error
- */
-char *config_GetDataDir(void) VLC_USED VLC_MALLOC;
-
-/**
  * Gets the arch-specific installation directory.
  *
  * This function determines the directory containing the architecture-specific
  * installed asset files (such as executable plugins and compiled byte code).
  *
- * See also config_GetDataDir().
- *
- * \note config_GetDataDir() and config_GetLibDir() may or may not return the
- * same path, depending on conventions of the operating system.
- *
  * @return a heap-allocated string (use free() to release it), or NULL on error
  */
 char *config_GetLibDir(void) VLC_USED VLC_MALLOC;
diff --git a/src/darwin/dirs.c b/src/darwin/dirs.c
index 59d60c0fd6..8b427163f7 100644
--- a/src/darwin/dirs.c
+++ b/src/darwin/dirs.c
@@ -92,7 +92,7 @@ char *config_GetLibDir (void)
 abort ();
 }
 
-char *config_GetDataDir (void)
+static char *config_GetDataDir(void)
 {
 const char *path = getenv ("VLC_DATA_PATH");
 if (path)
diff --git a/src/linux/dirs.c b/src/linux/dirs.c
index 736705ad50..466ddcaedb 100644
--- a/src/linux/dirs.c
+++ b/src/linux/dirs.c
@@ -100,35 +100,3 @@ char *config_GetLibDir(void)
 pthread_once(, config_GetLibDirOnce);
 return strdup(cached_path);
 }
-
-char *config_GetDataDir (void)
-{
-const char *path = getenv ("VLC_DATA_PATH");
-if (path != NULL)
-return strdup (path);
-
-char *libdir = config_GetLibDir ();
-if (libdir == NULL)
-return NULL; /* OOM */
-
-/* Look for common prefix between lib and data directories. */
-size_t prefix_len = 0;
-while (PKGLIBDIR[prefix_len] == PKGDATADIR[prefix_len])
-{
-if (PKGLIBDIR[prefix_len] == '\0')
-return libdir; /* corner case: directories are identical */
-prefix_len++;
-}
-
-char *datadir = NULL;
-
-char *p = strstr(libdir, PKGLIBDIR + prefix_len);
-if (p != NULL)
-{
-if (unlikely(asprintf(, "%.*s%s", (int)(p - libdir), libdir,
-  PKGDATADIR + prefix_len) == -1))
-datadir = NULL;
-}
-free (libdir);
-return (datadir != NULL) ? datadir : strdup (PKGDATADIR);
-}
diff --git a/src/os2/dirs.c b/src/os2/dirs.c
index 27a1d8a7c6..552cc2fcd5 100644
--- a/src/os2/dirs.c
+++ b/src/os2/dirs.c
@@ -51,7 +51,7 @@ char *config_GetLibDir (void)
  *
  * @return a nul-terminated string or NULL. Use free() to release it.
  */
-char *config_GetDataDir (void)
+static char *config_GetDataDir(void)
 {
 const char *path = getenv ("VLC_DATA_PATH");
 if (path)
diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index 493a67190d..0868773fe3 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -36,25 +36,51 @@
 #include 
 
 /**
- * Determines the shared data directory
+ * Determines the architecture-dependent data directory
  *
- * @return a nul-terminated string or NULL. Use free() to release it.
+ * @return a string (always succeeds).
  */
-VLC_WEAK char *config_GetDataDir(void)
+VLC_WEAK char *config_GetLibDir(void)
 {
-const char *path = getenv ("VLC_DATA_PATH");
-return strdup ((path != NULL) ? path : PKGDATADIR);
+const char *path = getenv("VLC_LIB_PATH");
+return strdup((path != NULL) ? path : PKGLIBDIR);
 }
 
 /**
- * Determines the architecture-dependent data directory
+ * Determines the shared data directory
  *
- * @return a string (always succeeds).
+ * @return a nul-terminated string or NULL. Use free() to release it.
  */
-VLC_WEAK char *config_GetLibDir(void)
+static char *config_GetDataDir(void)
 {
-const char *path = getenv("VLC_LIB_PATH");
-return strdup((path != NULL) ? path : PKGLIBDIR);
+

[vlc-commits] posix: add VLC_SYSDATA_DIR for datadir

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:10:08 2018 +0200| [f8c596db7a60628df7fc2da16254450095ed701f] | committer: 
Rémi Denis-Courmont

posix: add VLC_SYSDATA_DIR for datadir

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f8c596db7a60628df7fc2da16254450095ed701f
---

 include/vlc_configuration.h | 5 +
 src/Makefile.am | 1 +
 src/darwin/dirs.c   | 4 +++-
 src/os2/dirs.c  | 4 +++-
 src/posix/dirs.c| 2 ++
 src/win32/dirs.c| 4 +++-
 6 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h
index a4854126a3..1be4867f12 100644
--- a/include/vlc_configuration.h
+++ b/include/vlc_configuration.h
@@ -278,6 +278,11 @@ typedef enum vlc_system_dir
data directory (e.g. /usr/local/data/vlc). */
 VLC_PKG_LIB_DIR, /**< Package-specific architecture-dependent read-only
   data directory (e.g. /usr/local/lib/vlc). */
+VLC_PKG_LIBEXEC_DIR_RESERVED,
+VLC_PKG_INCLUDE_DIR_RESERVED,
+VLC_SYSDATA_DIR, /**< Global architecture-independent read-only
+  data directory (e.g. /usr/local/data).
+  Available only on some platforms. */
 } vlc_sysdir_t;
 
 /**
diff --git a/src/Makefile.am b/src/Makefile.am
index 61c93df705..46b29d67d9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -169,6 +169,7 @@ lib_LTLIBRARIES = libvlccore.la
 
 AM_CPPFLAGS = $(INCICONV) $(IDN_CFLAGS) \
-DMODULE_STRING=\"core\" \
+   -DSYSDATADIR=\"$(datadir)\" \
-DLIBDIR=\"$(libdir)\" \
-DLOCALEDIR=\"$(localedir)\" \
-DPKGDATADIR=\"$(pkgdatadir)\" \
diff --git a/src/darwin/dirs.c b/src/darwin/dirs.c
index 8b427163f7..afe406a87a 100644
--- a/src/darwin/dirs.c
+++ b/src/darwin/dirs.c
@@ -110,7 +110,7 @@ static char *config_GetDataDir(void)
 
 char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
 {
-char *dir;
+char *dir = NULL;
 
 switch (type)
 {
@@ -120,6 +120,8 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 case VLC_PKG_LIB_DIR:
 dir = config_GetLibDir();
 break;
+case VLC_SYSDATA_DIR:
+break;
 default:
 vlc_assert_unreachable();
 }
diff --git a/src/os2/dirs.c b/src/os2/dirs.c
index 552cc2fcd5..e649731a1d 100644
--- a/src/os2/dirs.c
+++ b/src/os2/dirs.c
@@ -66,7 +66,7 @@ static char *config_GetDataDir(void)
 
 char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
 {
-char *dir;
+char *dir = NULL;
 
 switch (type)
 {
@@ -76,6 +76,8 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 case VLC_PKG_LIB_DIR:
 dir = config_GetLibDir();
 break;
+case VLC_SYSDATA_DIR:
+break;
 default:
 vlc_assert_unreachable();
 }
diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index ee1c94cb27..69ce7a07d2 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -68,10 +68,12 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 static const char *const dirs[] = {
 [VLC_PKG_LIB_DIR] = PKGLIBDIR,
 [VLC_PKG_DATA_DIR] = PKGDATADIR,
+[VLC_SYSDATA_DIR] = SYSDATADIR,
 };
 assert(type < ARRAY_SIZE(dirs));
 
 const char *dir_static = dirs[type];
+assert(*dir_static != '\0');
 /* Look for common static prefix. */
 size_t prefix_len = 0;
 while (prefix_len < strlen(LIBDIR)
diff --git a/src/win32/dirs.c b/src/win32/dirs.c
index f75002072e..3444384bfe 100644
--- a/src/win32/dirs.c
+++ b/src/win32/dirs.c
@@ -214,7 +214,7 @@ static char *config_GetDataDir(void)
 
 char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
 {
-char *dir;
+char *dir = NULL;
 
 switch (type)
 {
@@ -224,6 +224,8 @@ char *config_GetSysPath(vlc_sysdir_t type, const char 
*filename)
 case VLC_PKG_LIB_DIR:
 dir = config_GetLibDir();
 break;
+case VLC_SYSDATA_DIR:
+break;
 default:
 vlc_assert_unreachable();
 }

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] posix: factor directory environment variables handling

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Sun Mar  4 
15:21:37 2018 +0200| [975216d6a8958f6bbd9cca7ca764b440158deee3] | committer: 
Rémi Denis-Courmont

posix: factor directory environment variables handling

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=975216d6a8958f6bbd9cca7ca764b440158deee3
---

 src/linux/dirs.c |  5 +
 src/posix/dirs.c | 21 +++--
 2 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/linux/dirs.c b/src/linux/dirs.c
index 466ddcaedb..32e138d866 100644
--- a/src/linux/dirs.c
+++ b/src/linux/dirs.c
@@ -33,10 +33,7 @@
 
 static char *config_GetLibDirRaw(void)
 {
-char *path = getenv("VLC_LIB_PATH");
-if (path != NULL)
-return strdup(path);
-
+char *path = NULL;
 /* Find the path to libvlc (i.e. ourselves) */
 FILE *maps = fopen ("/proc/self/maps", "rte");
 if (maps == NULL)
diff --git a/src/posix/dirs.c b/src/posix/dirs.c
index 0868773fe3..b8feb8ed65 100644
--- a/src/posix/dirs.c
+++ b/src/posix/dirs.c
@@ -42,8 +42,7 @@
  */
 VLC_WEAK char *config_GetLibDir(void)
 {
-const char *path = getenv("VLC_LIB_PATH");
-return strdup((path != NULL) ? path : PKGLIBDIR);
+return strdup(PKGLIBDIR);
 }
 
 /**
@@ -53,10 +52,6 @@ VLC_WEAK char *config_GetLibDir(void)
  */
 static char *config_GetDataDir(void)
 {
-const char *path = getenv("VLC_DATA_PATH");
-if (path != NULL)
-return strdup(path);
-
 char *libdir = config_GetLibDir();
 if (libdir == NULL)
 return NULL; /* OOM */
@@ -85,6 +80,20 @@ static char *config_GetDataDir(void)
 
 char *config_GetSysPath(vlc_sysdir_t type, const char *filename)
 {
+static const char env_vars[][16] = {
+[VLC_PKG_LIB_DIR] = "VLC_LIB_PATH",
+[VLC_PKG_DATA_DIR] = "VLC_DATA_PATH",
+};
+
+if (type < ARRAY_SIZE(env_vars)) {
+const char *name = env_vars[type];
+ if (*name != '\0') {
+ const char *value = getenv(name);
+ if (value != NULL)
+ return strdup(value);
+ }
+}
+
 char *dir;
 
 switch (type)

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] win32: no absolute paths as target (fixes #19624)

2018-03-06 Thread Rémi Denis-Courmont
vlc/vlc-3.0 | branch: master | Rémi Denis-Courmont  | Tue Mar  
6 20:29:03 2018 +0200| [895fe79411b74c551d2b0c56257818841678b2c4] | committer: 
Rémi Denis-Courmont

win32: no absolute paths as target (fixes #19624)

Makefile expansion cannot handle that correctly.

(cherry picked from commit 99ad3da5019eb872fb49e5ec960db16349c5d7a5)
Signed-off-by: Rémi Denis-Courmont 

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=895fe79411b74c551d2b0c56257818841678b2c4
---

 extras/package/win32/package.mak | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/extras/package/win32/package.mak b/extras/package/win32/package.mak
index ad6c7eb5a7..939a597a8e 100644
--- a/extras/package/win32/package.mak
+++ b/extras/package/win32/package.mak
@@ -3,7 +3,7 @@ BUILT_SOURCES_distclean += \
extras/package/win32/NSIS/vlc.win32.nsi 
extras/package/win32/NSIS/spad.nsi
 endif
 
-win32_destdir=$(abs_top_builddir)/vlc-$(VERSION)
+win32_destdir=$(top_builddir)/vlc-$(VERSION)
 win32_debugdir=$(abs_top_builddir)/symbols-$(VERSION)
 win32_xpi_destdir=$(abs_top_builddir)/vlc-plugin-$(VERSION)
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] Makefile: use pkgdatadir and remove vlcdatadir

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:17:05 2018 +0200| [e1bac00ddb061d3cd38358511a72b49f38241de5] | committer: 
Rémi Denis-Courmont

Makefile: use pkgdatadir and remove vlcdatadir

The original idea was to use versioned directories akin to gstreamer,
but no distributions ever did that with VLC. vlcdatadir was always the
same as pkgdatadir.

This reverts half of commit 56988959488ac0a479e52d63c1ad155f69c59be1.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e1bac00ddb061d3cd38358511a72b49f38241de5
---

 configure.ac  |  4 
 share/Makefile.am | 16 
 src/Makefile.am   |  2 +-
 3 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/configure.ac b/configure.ac
index ce9e6fd2a2..af8c3a348e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -33,10 +33,6 @@ AM_MAINTAINER_MODE([enable])
 dnl
 dnl Directories
 dnl
-dnl vlcincludedir="\${includedir}/\${PKGDIR}"
-dnl AC_SUBST(vlcincludedir)
-vlcdatadir="\${datadir}/\${PKGDIR}"
-AC_SUBST(vlcdatadir)
 vlclibdir="\${libdir}/\${PKGDIR}"
 AC_SUBST(vlclibdir)
 
diff --git a/share/Makefile.am b/share/Makefile.am
index 6d8cd9dc2f..deb75e6b29 100644
--- a/share/Makefile.am
+++ b/share/Makefile.am
@@ -34,7 +34,7 @@ icons128dir = $(iconsdatadir)/128x128/apps
 icons256dir = $(iconsdatadir)/256x256/apps
 
 if !HAVE_WIN32
-dist_vlcdata_DATA = icons/vlc.ico
+dist_pkgdata_DATA = icons/vlc.ico
 dist_icons16_DATA = icons/16x16/vlc.png icons/16x16/vlc.xpm
 dist_icons32_DATA = icons/32x32/vlc.png icons/32x32/vlc.xpm \
icons/32x32/vlc-xmas.xpm
@@ -43,7 +43,7 @@ dist_icons128_DATA = icons/128x128/vlc.png 
icons/128x128/vlc-xmas.png \
  icons/128x128/vlc-kb.png
 dist_icons256_DATA = icons/256x256/vlc.png
 
-nobase_dist_vlcdata_SCRIPTS = \
+nobase_dist_pkgdata_SCRIPTS = \
utils/gnome-vlc-default.sh \
utils/audio-vlc-default.sh \
utils/video-vlc-default.sh \
@@ -56,12 +56,12 @@ EXTRA_DIST += \
$(DIST_http_lua) \
$(DIST_solid)
 
-nobase_vlcdata_DATA =
+nobase_pkgdata_DATA =
 nobase_vlclib_DATA =
-nobase_dist_vlcdata_DATA =
+nobase_dist_pkgdata_DATA =
 if BUILD_SKINS
-nobase_vlcdata_DATA += skins2/default.vlt
-nobase_dist_vlcdata_DATA += $(DIST_skins2)
+nobase_pkgdata_DATA += skins2/default.vlt
+nobase_dist_pkgdata_DATA += $(DIST_skins2)
 endif
 if KDE_SOLID
 soliddata_DATA = $(DIST_solid)
@@ -177,7 +177,7 @@ nobase_doc_DATA = \
lua/sd/icast.lua \
$(NULL)
 
-nobase_dist_vlcdata_DATA += \
+nobase_dist_pkgdata_DATA += \
lua/http/view.html \
lua/http/mobile.html \
lua/http/dialogs/create_stream.html \
@@ -238,7 +238,7 @@ nobase_dist_vlcdata_DATA += \
lua/http/js/jquery.jstree.js \
lua/http/js/controllers.js
 endif
-MOSTLYCLEANFILES += $(nobase_vlcdata_DATA)
+MOSTLYCLEANFILES += $(nobase_pkgdata_DATA)
 
 EXTRA_DIST += \
lua/README.txt \
diff --git a/src/Makefile.am b/src/Makefile.am
index 6954b01929..f4617120d0 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -170,7 +170,7 @@ lib_LTLIBRARIES = libvlccore.la
 AM_CPPFLAGS = $(INCICONV) $(IDN_CFLAGS) \
-DMODULE_STRING=\"core\" \
-DLOCALEDIR=\"$(localedir)\" \
-   -DPKGDATADIR=\"$(vlcdatadir)\" \
+   -DPKGDATADIR=\"$(pkgdatadir)\" \
-DPKGLIBDIR=\"$(vlclibdir)\"
 AM_CFLAGS = $(CFLAGS_libvlccore)
 if HAVE_DYNAMIC_PLUGINS

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] textdomain: use localedir (fixes #19894)

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Tue Mar  6 
20:55:18 2018 +0200| [a46731104493942b1e8bc5a6c31e806ebe218e82] | committer: 
Rémi Denis-Courmont

textdomain: use localedir (fixes #19894)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a46731104493942b1e8bc5a6c31e806ebe218e82
---

 src/modules/textdomain.c | 16 ++--
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/src/modules/textdomain.c b/src/modules/textdomain.c
index 5d0e3ec9f2..bdeb936749 100644
--- a/src/modules/textdomain.c
+++ b/src/modules/textdomain.c
@@ -27,25 +27,14 @@
 
 #ifdef ENABLE_NLS
 # include 
-# if defined (__APPLE__) || defined (_WIN32) || defined(__OS2__)
-#  include 
-# endif
+# include 
 #endif
 
 int vlc_bindtextdomain (const char *domain)
 {
 #if defined (ENABLE_NLS)
 /* Specify where to find the locales for current domain */
-# if !defined (__APPLE__) && !defined (_WIN32) && !defined(__OS2__)
-static const char path[] = LOCALEDIR;
-
-if (bindtextdomain (domain, path) == NULL)
-{
-fprintf (stderr, "%s: text domain not found in %s\n", domain, path);
-return -1;
-}
-# else
-char *upath = config_GetSysPath(VLC_PKG_DATA_DIR, "locale");
+char *upath = config_GetSysPath(VLC_LOCALE_DIR, NULL);
 if (unlikely(upath == NULL))
 return -1;
 
@@ -59,7 +48,6 @@ int vlc_bindtextdomain (const char *domain)
 }
 LocaleFree(lpath);
 free (upath);
-# endif
 
 /* LibVLC wants all messages in UTF-8.
  * Unfortunately, we cannot ask UTF-8 for strerror_r(), strsignal_r()

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] config: rename VLC_DATA_DIR to VLC_USERDATA_DIR

2018-03-06 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Mar  5 
23:05:50 2018 +0200| [ca621cd7f7022b0b9982211381c1671e09663233] | committer: 
Rémi Denis-Courmont

config: rename VLC_DATA_DIR to VLC_USERDATA_DIR

...to avoid confusion going forward. The name matches the VLC Lua name.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ca621cd7f7022b0b9982211381c1671e09663233
---

 include/vlc_configuration.h| 2 +-
 lib/media_library.c| 2 +-
 modules/codec/arib/aribsub.c   | 2 +-
 modules/gui/skins2/os2/os2_factory.cpp | 2 +-
 modules/gui/skins2/win32/win32_factory.cpp | 2 +-
 modules/gui/skins2/x11/x11_factory.cpp | 2 +-
 modules/lua/libs/configuration.c   | 2 +-
 modules/lua/vlc.c  | 2 +-
 modules/misc/addons/fsstorage.c| 6 +++---
 src/android/specific.c | 2 +-
 src/darwin/dirs.c  | 4 ++--
 src/os2/dirs.c | 2 +-
 src/playlist/loadsave.c| 4 ++--
 src/posix/dirs.c   | 2 +-
 src/win32/dirs.c   | 2 +-
 15 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/include/vlc_configuration.h b/include/vlc_configuration.h
index 8aeafde1d7..8421c370f4 100644
--- a/include/vlc_configuration.h
+++ b/include/vlc_configuration.h
@@ -301,7 +301,7 @@ typedef enum vlc_userdir
 {
 VLC_HOME_DIR, /* User's home */
 VLC_CONFIG_DIR, /* VLC-specific configuration directory */
-VLC_DATA_DIR, /* VLC-specific data directory */
+VLC_USERDATA_DIR, /* VLC-specific data directory */
 VLC_CACHE_DIR, /* VLC-specific user cached data directory */
 /* Generic directories (same as XDG) */
 VLC_DESKTOP_DIR=0x80,
diff --git a/lib/media_library.c b/lib/media_library.c
index f2bf77a77f..d13a36ee2b 100644
--- a/lib/media_library.c
+++ b/lib/media_library.c
@@ -104,7 +104,7 @@ void libvlc_media_library_retain( libvlc_media_library_t * 
p_mlib )
  **/
 int libvlc_media_library_load( libvlc_media_library_t * p_mlib )
 {
-char *psz_datadir = config_GetUserDir( VLC_DATA_DIR );
+char *psz_datadir = config_GetUserDir( VLC_USERDATA_DIR );
 char * psz_uri;
 
 if( psz_datadir == NULL
diff --git a/modules/codec/arib/aribsub.c b/modules/codec/arib/aribsub.c
index 46272ea175..214f6f51af 100644
--- a/modules/codec/arib/aribsub.c
+++ b/modules/codec/arib/aribsub.c
@@ -197,7 +197,7 @@ static void messages_callback_handler( void *p_opaque, 
const char *psz_message )
 
 static char* get_arib_base_dir()
 {
-char *psz_data_dir = config_GetUserDir( VLC_DATA_DIR );
+char *psz_data_dir = config_GetUserDir( VLC_USERDATA_DIR );
 if( psz_data_dir == NULL )
 {
 return NULL;
diff --git a/modules/gui/skins2/os2/os2_factory.cpp 
b/modules/gui/skins2/os2/os2_factory.cpp
index 5a8bb9f784..dc6357c371 100644
--- a/modules/gui/skins2/os2/os2_factory.cpp
+++ b/modules/gui/skins2/os2/os2_factory.cpp
@@ -217,7 +217,7 @@ bool OS2Factory::init()
 changeCursor( kDefaultArrow );
 
 // Initialize the resource path
-char *datadir = config_GetUserDir( VLC_DATA_DIR );
+char *datadir = config_GetUserDir( VLC_USER_DATA_DIR );
 m_resourcePath.push_back( (std::string)datadir + "\\skins" );
 free( datadir );
 datadir = config_GetDataDir();
diff --git a/modules/gui/skins2/win32/win32_factory.cpp 
b/modules/gui/skins2/win32/win32_factory.cpp
index 74a802aff2..3df64fb785 100644
--- a/modules/gui/skins2/win32/win32_factory.cpp
+++ b/modules/gui/skins2/win32/win32_factory.cpp
@@ -233,7 +233,7 @@ bool Win32Factory::init()
 OleInitialize( NULL );
 
 // Initialize the resource path
-char *datadir = config_GetUserDir( VLC_DATA_DIR );
+char *datadir = config_GetUserDir( VLC_USERDATA_DIR );
 m_resourcePath.push_back( (std::string)datadir + "\\skins" );
 free( datadir );
 datadir = config_GetDataDir();
diff --git a/modules/gui/skins2/x11/x11_factory.cpp 
b/modules/gui/skins2/x11/x11_factory.cpp
index ed52ff1ae2..d66dbcf5bc 100644
--- a/modules/gui/skins2/x11/x11_factory.cpp
+++ b/modules/gui/skins2/x11/x11_factory.cpp
@@ -86,7 +86,7 @@ bool X11Factory::init()
  ConnectionNumber( pDisplay ) );
 
 // Initialize the resource path
-char *datadir = config_GetUserDir( VLC_DATA_DIR );
+char *datadir = config_GetUserDir( VLC_USERDATA_DIR );
 m_resourcePath.push_back( (std::string)datadir + "/skins2" );
 free( datadir );
 m_resourcePath.push_back( (std::string)"share/skins2" );
diff --git a/modules/lua/libs/configuration.c b/modules/lua/libs/configuration.c
index 6c26e4bf43..0d94cb1c07 100644
--- a/modules/lua/libs/configuration.c
+++ b/modules/lua/libs/configuration.c
@@ -112,7 +112,7 @@ static int vlclua_datadir( lua_State *L )
 
 static int vlclua_userdatadir( lua_State *L )
 {
-char *dir = 

[vlc-commits] Qt: fix "last folder used" not remembered correctly

2018-03-06 Thread Pierre Lamot
vlc/vlc-3.0 | branch: master | Pierre Lamot  | Fri Mar  2 
19:11:34 2018 +0100| [55855968526c93f2d0df09255a47c9f169706ec9] | committer: 
Hugo Beauzée-Luyssen

Qt: fix "last folder used" not remembered correctly

On windows last used folder was stored by its URL,  which cannot by
  used QFileDialog::getXXXFileName.

  This patch will store last used folder by its URL systematically and
  use QFileDialog::getXXXURL. This allows to store non file location (ie: smb)

Fix #19905

Signed-off-by: Hugo Beauzée-Luyssen 
(cherry picked from commit 7a6f006d59bfeeff833fedffc2583559444d7f7a)
Signed-off-by: Hugo Beauzée-Luyssen 

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=55855968526c93f2d0df09255a47c9f169706ec9
---

 modules/gui/qt/components/extended_panels.cpp   | 12 
 modules/gui/qt/components/interface_widgets.cpp |  8 +++-
 modules/gui/qt/components/open_panels.cpp   |  8 +---
 modules/gui/qt/components/open_panels.hpp   |  6 --
 modules/gui/qt/components/sout/sout_widgets.cpp |  6 --
 modules/gui/qt/dialogs_provider.cpp | 24 ++--
 modules/gui/qt/dialogs_provider.hpp |  8 
 modules/gui/qt/qt.hpp   |  3 ++-
 modules/gui/qt/util/qt_dirs.hpp |  1 -
 9 files changed, 44 insertions(+), 32 deletions(-)

Diff:   
http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commitdiff;h=55855968526c93f2d0df09255a47c9f169706ec9
___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] mp4: Fix make distcheck

2018-03-06 Thread Hugo Beauzée-Luyssen
vlc/vlc-3.0 | branch: master | Hugo Beauzée-Luyssen  | Tue Mar 
 6 10:58:58 2018 +0100| [9eef04364340500de7b1d197a920ba8738669eb4] | committer: 
Hugo Beauzée-Luyssen

mp4: Fix make distcheck

(cherry picked from commit e95764c3312ca15fd586156b8c94a4f144092072)
Signed-off-by: Hugo Beauzée-Luyssen 

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=9eef04364340500de7b1d197a920ba8738669eb4
---

 modules/demux/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/demux/Makefile.am b/modules/demux/Makefile.am
index b36c9835ff..567cd17df8 100644
--- a/modules/demux/Makefile.am
+++ b/modules/demux/Makefile.am
@@ -208,7 +208,7 @@ libmp4_plugin_la_SOURCES = demux/mp4/mp4.c demux/mp4/mp4.h \
demux/mp4/languages.h \
demux/asf/asfpacket.c demux/asf/asfpacket.h \
demux/mp4/avci.h \
-   demux/mp4/color_specs.h \
+   demux/mp4/color_config.h \
demux/mp4/essetup.c demux/mp4/meta.c \
meta_engine/ID3Genres.h
 libmp4_plugin_la_LIBADD = $(LIBM)

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] demux: mp4: read vp8/9/10 content light level

2018-03-06 Thread Francois Cartegnie
vlc/vlc-3.0 | branch: master | Francois Cartegnie  | Mon Mar  
5 17:10:30 2018 +0100| [b9a9971d3ca96af0eaddd7007ae9e618209b5ff7] | committer: 
Francois Cartegnie

demux: mp4: read vp8/9/10 content light level

(cherry picked from commit a238a38812ae83df5a855434d3860c47e11875a2)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=b9a9971d3ca96af0eaddd7007ae9e618209b5ff7
---

 modules/demux/mp4/essetup.c |  7 +++
 modules/demux/mp4/libmp4.c  | 10 ++
 modules/demux/mp4/libmp4.h  |  8 
 3 files changed, 25 insertions(+)

diff --git a/modules/demux/mp4/essetup.c b/modules/demux/mp4/essetup.c
index c6dff52d81..3377373874 100644
--- a/modules/demux/mp4/essetup.c
+++ b/modules/demux/mp4/essetup.c
@@ -727,6 +727,13 @@ int SetupVideoES( demux_t *p_demux, mp4_track_t *p_track, 
MP4_Box_t *p_sample )
 p_track->fmt.video.mastering.max_luminance = 
BOXDATA(p_SmDm)->i_luminanceMax;
 p_track->fmt.video.mastering.min_luminance = 
BOXDATA(p_SmDm)->i_luminanceMin;
 }
+
+const MP4_Box_t *p_CoLL = MP4_BoxGet( p_sample, "CoLL" );
+if( p_CoLL && BOXDATA(p_CoLL) )
+{
+p_track->fmt.video.lighting.MaxCLL = 
BOXDATA(p_CoLL)->i_maxCLL;
+p_track->fmt.video.lighting.MaxFALL = 
BOXDATA(p_CoLL)->i_maxFALL;
+}
 }
 }
 break;
diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c
index eacbf420b9..ff1178c1ea 100644
--- a/modules/demux/mp4/libmp4.c
+++ b/modules/demux/mp4/libmp4.c
@@ -2008,6 +2008,15 @@ static int MP4_ReadBox_SmDm( stream_t *p_stream, 
MP4_Box_t *p_box )
 MP4_READBOX_EXIT( 1 );
 }
 
+static int MP4_ReadBox_CoLL( stream_t *p_stream, MP4_Box_t *p_box )
+{
+MP4_READBOX_ENTER( MP4_Box_data_CoLL_t, NULL );
+MP4_Box_data_CoLL_t *p_CoLL = p_box->data.p_CoLL;
+MP4_GET2BYTES( p_CoLL->i_maxCLL );
+MP4_GET2BYTES( p_CoLL->i_maxFALL );
+MP4_READBOX_EXIT( 1 );
+}
+
 static void MP4_FreeBox_WMA2( MP4_Box_t *p_box )
 {
 FREENULL( p_box->data.p_WMA2->p_extra );
@@ -4441,6 +4450,7 @@ static const struct
 { ATOM_vpcC,MP4_ReadBox_vpcC, ATOM_vp09 },
 { ATOM_vpcC,MP4_ReadBox_vpcC, ATOM_vp10 },
 { ATOM_SmDm,MP4_ReadBox_SmDm, ATOM_vpcC }, /* vpx mastering 
display */
+{ ATOM_CoLL,MP4_ReadBox_CoLL, ATOM_vpcC }, /* vpx light level 
*/
 { ATOM_dac3,MP4_ReadBox_dac3, 0 },
 { ATOM_dec3,MP4_ReadBox_dec3, 0 },
 { ATOM_dvc1,MP4_ReadBox_dvc1, ATOM_vc1  },
diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h
index dd65e8da1d..7f2988ba14 100644
--- a/modules/demux/mp4/libmp4.h
+++ b/modules/demux/mp4/libmp4.h
@@ -385,6 +385,7 @@ typedef int64_t stime_t;
 #define ATOM_gstd VLC_FOURCC( 'g', 's', 't', 'd' )
 #define ATOM_colr VLC_FOURCC( 'c', 'o', 'l', 'r' )
 #define ATOM_SmDm VLC_FOURCC( 'S', 'm', 'D', 'm' )
+#define ATOM_CoLL VLC_FOURCC( 'C', 'o', 'L', 'L' )
 
 #define ATOM_0x40PRM VLC_FOURCC( '@', 'P', 'R', 'M' )
 #define ATOM_0x40PRQ VLC_FOURCC( '@', 'P', 'R', 'Q' )
@@ -1294,6 +1295,12 @@ typedef struct
 
 typedef struct
 {
+uint16_t i_maxCLL;
+uint16_t i_maxFALL;
+} MP4_Box_data_CoLL_t;
+
+typedef struct
+{
 WAVEFORMATEX Format;
 uint32_t i_extra;
 char*p_extra;
@@ -1692,6 +1699,7 @@ typedef union MP4_Box_data_s
 MP4_Box_data_load_t *p_load;
 MP4_Box_data_vpcC_t *p_vpcC;
 MP4_Box_data_SmDm_t *p_SmDm;
+MP4_Box_data_CoLL_t *p_CoLL;
 
 MP4_Box_data_tfra_t *p_tfra;
 MP4_Box_data_mfro_t *p_mfro;

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] demux: mp4: read vp8/9/10 mastering display

2018-03-06 Thread Francois Cartegnie
vlc/vlc-3.0 | branch: master | Francois Cartegnie  | Mon Mar  
5 16:35:38 2018 +0100| [393ab4ffd4b66e7763514f4787d25d458c44249a] | committer: 
Francois Cartegnie

demux: mp4: read vp8/9/10 mastering display

(cherry picked from commit f29e7827d49baa9f3c33b6aaf36804ce6ef08caf)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=393ab4ffd4b66e7763514f4787d25d458c44249a
---

 modules/demux/mp4/essetup.c | 11 +++
 modules/demux/mp4/libmp4.c  | 16 
 modules/demux/mp4/libmp4.h  | 10 ++
 3 files changed, 37 insertions(+)

diff --git a/modules/demux/mp4/essetup.c b/modules/demux/mp4/essetup.c
index b7a6ad9157..c6dff52d81 100644
--- a/modules/demux/mp4/essetup.c
+++ b/modules/demux/mp4/essetup.c
@@ -716,6 +716,17 @@ int SetupVideoES( demux_t *p_demux, mp4_track_t *p_track, 
MP4_Box_t *p_sample )
 p_data->i_codec_init_datasize );
 }
 }
+
+const MP4_Box_t *p_SmDm = MP4_BoxGet( p_sample, "SmDm" );
+if( p_SmDm && BOXDATA(p_SmDm) )
+{
+memcpy( p_track->fmt.video.mastering.primaries,
+BOXDATA(p_SmDm)->primaries, sizeof(uint16_t) * 6 );
+memcpy( p_track->fmt.video.mastering.white_point,
+BOXDATA(p_SmDm)->white_point, sizeof(uint16_t) * 2 
);
+p_track->fmt.video.mastering.max_luminance = 
BOXDATA(p_SmDm)->i_luminanceMax;
+p_track->fmt.video.mastering.min_luminance = 
BOXDATA(p_SmDm)->i_luminanceMin;
+}
 }
 }
 break;
diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c
index c88b7d2a9d..eacbf420b9 100644
--- a/modules/demux/mp4/libmp4.c
+++ b/modules/demux/mp4/libmp4.c
@@ -1993,6 +1993,21 @@ static int MP4_ReadBox_vpcC( stream_t *p_stream, 
MP4_Box_t *p_box )
 MP4_READBOX_EXIT( 1 );
 }
 
+static int MP4_ReadBox_SmDm( stream_t *p_stream, MP4_Box_t *p_box )
+{
+MP4_READBOX_ENTER( MP4_Box_data_SmDm_t, NULL );
+MP4_Box_data_SmDm_t *p_SmDm = p_box->data.p_SmDm;
+
+for(int i=0; i<6; i++)
+MP4_GET2BYTES( p_SmDm->primaries[i] );
+for(int i=0; i<2; i++)
+MP4_GET2BYTES( p_SmDm->white_point[i] );
+MP4_GET4BYTES( p_SmDm->i_luminanceMax );
+MP4_GET4BYTES( p_SmDm->i_luminanceMin );
+
+MP4_READBOX_EXIT( 1 );
+}
+
 static void MP4_FreeBox_WMA2( MP4_Box_t *p_box )
 {
 FREENULL( p_box->data.p_WMA2->p_extra );
@@ -4425,6 +4440,7 @@ static const struct
 { ATOM_vpcC,MP4_ReadBox_vpcC, ATOM_vp08 },
 { ATOM_vpcC,MP4_ReadBox_vpcC, ATOM_vp09 },
 { ATOM_vpcC,MP4_ReadBox_vpcC, ATOM_vp10 },
+{ ATOM_SmDm,MP4_ReadBox_SmDm, ATOM_vpcC }, /* vpx mastering 
display */
 { ATOM_dac3,MP4_ReadBox_dac3, 0 },
 { ATOM_dec3,MP4_ReadBox_dec3, 0 },
 { ATOM_dvc1,MP4_ReadBox_dvc1, ATOM_vc1  },
diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h
index f129e1d166..dd65e8da1d 100644
--- a/modules/demux/mp4/libmp4.h
+++ b/modules/demux/mp4/libmp4.h
@@ -384,6 +384,7 @@ typedef int64_t stime_t;
 #define ATOM_gsst VLC_FOURCC( 'g', 's', 's', 't' )
 #define ATOM_gstd VLC_FOURCC( 'g', 's', 't', 'd' )
 #define ATOM_colr VLC_FOURCC( 'c', 'o', 'l', 'r' )
+#define ATOM_SmDm VLC_FOURCC( 'S', 'm', 'D', 'm' )
 
 #define ATOM_0x40PRM VLC_FOURCC( '@', 'P', 'R', 'M' )
 #define ATOM_0x40PRQ VLC_FOURCC( '@', 'P', 'R', 'Q' )
@@ -1285,6 +1286,14 @@ typedef struct
 
 typedef struct
 {
+uint16_t primaries[3*2]; /* G,B,R / x,y */
+uint16_t white_point[2]; /* x,y */
+uint32_t i_luminanceMax;
+uint32_t i_luminanceMin;
+} MP4_Box_data_SmDm_t;
+
+typedef struct
+{
 WAVEFORMATEX Format;
 uint32_t i_extra;
 char*p_extra;
@@ -1682,6 +1691,7 @@ typedef union MP4_Box_data_s
 MP4_Box_data_tsel_t *p_tsel;
 MP4_Box_data_load_t *p_load;
 MP4_Box_data_vpcC_t *p_vpcC;
+MP4_Box_data_SmDm_t *p_SmDm;
 
 MP4_Box_data_tfra_t *p_tfra;
 MP4_Box_data_mfro_t *p_mfro;

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] mp4: Fix make distcheck

2018-03-06 Thread Hugo Beauzée-Luyssen
vlc | branch: master | Hugo Beauzée-Luyssen  | Tue Mar  6 
10:58:58 2018 +0100| [e95764c3312ca15fd586156b8c94a4f144092072] | committer: 
Hugo Beauzée-Luyssen

mp4: Fix make distcheck

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e95764c3312ca15fd586156b8c94a4f144092072
---

 modules/demux/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/demux/Makefile.am b/modules/demux/Makefile.am
index 6416da98fb..a7b7584bd4 100644
--- a/modules/demux/Makefile.am
+++ b/modules/demux/Makefile.am
@@ -204,7 +204,7 @@ libmp4_plugin_la_SOURCES = demux/mp4/mp4.c demux/mp4/mp4.h \
demux/mp4/languages.h \
demux/asf/asfpacket.c demux/asf/asfpacket.h \
demux/mp4/avci.h \
-   demux/mp4/color_specs.h \
+   demux/mp4/color_config.h \
demux/mp4/essetup.c demux/mp4/meta.c \
meta_engine/ID3Genres.h
 libmp4_plugin_la_LIBADD = $(LIBM)

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] Qt: fix "last folder used" not remembered correctly

2018-03-06 Thread Pierre Lamot
vlc | branch: master | Pierre Lamot  | Fri Mar  2 19:11:34 
2018 +0100| [7a6f006d59bfeeff833fedffc2583559444d7f7a] | committer: Hugo 
Beauzée-Luyssen

Qt: fix "last folder used" not remembered correctly

On windows last used folder was stored by its URL,  which cannot by
  used QFileDialog::getXXXFileName.

  This patch will store last used folder by its URL systematically and
  use QFileDialog::getXXXURL. This allows to store non file location (ie: smb)

Fix #19905

Signed-off-by: Hugo Beauzée-Luyssen 

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7a6f006d59bfeeff833fedffc2583559444d7f7a
---

 modules/gui/qt/components/extended_panels.cpp   | 12 
 modules/gui/qt/components/interface_widgets.cpp |  8 +++-
 modules/gui/qt/components/open_panels.cpp   |  8 +---
 modules/gui/qt/components/open_panels.hpp   |  6 --
 modules/gui/qt/components/sout/sout_widgets.cpp |  6 --
 modules/gui/qt/dialogs_provider.cpp | 24 ++--
 modules/gui/qt/dialogs_provider.hpp |  8 
 modules/gui/qt/qt.hpp   |  3 ++-
 modules/gui/qt/util/qt_dirs.hpp |  1 -
 9 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/modules/gui/qt/components/extended_panels.cpp 
b/modules/gui/qt/components/extended_panels.cpp
index d852580c71..e512a40a40 100644
--- a/modules/gui/qt/components/extended_panels.cpp
+++ b/modules/gui/qt/components/extended_panels.cpp
@@ -358,22 +358,26 @@ void ExtVideo::updateFilters()
 
 void ExtVideo::browseLogo()
 {
+const QStringList schemes = QStringList(QStringLiteral("file"));
 QString filter = QString( "%1 (*.png *.jpg);;%2 (*)" )
 .arg( qtr("Image Files") )
 .arg( TITLE_EXTENSIONS_ALL );
-QString file = QFileDialog::getOpenFileName( NULL, qtr( "Logo filenames" ),
-   p_intf->p_sys->filepath, filter );
+QString file = QFileDialog::getOpenFileUrl( NULL, qtr( "Logo filenames" ),
+   p_intf->p_sys->filepath, filter,
+   NULL, QFileDialog::Options(), schemes ).toLocalFile();
 
 UPDATE_AND_APPLY_TEXT( logoFileText, file );
 }
 
 void ExtVideo::browseEraseFile()
 {
+const QStringList schemes = QStringList(QStringLiteral("file"));
 QString filter = QString( "%1 (*.png *.jpg);;%2 (*)" )
 .arg( qtr("Image Files") )
 .arg( TITLE_EXTENSIONS_ALL );
-QString file = QFileDialog::getOpenFileName( NULL, qtr( "Image mask" ),
-   p_intf->p_sys->filepath, filter );
+QString file = QFileDialog::getOpenFileUrl( NULL, qtr( "Image mask" ),
+   p_intf->p_sys->filepath, filter,
+   NULL, QFileDialog::Options(), schemes ).toLocalFile();
 
 UPDATE_AND_APPLY_TEXT( eraseMaskText, file );
 }
diff --git a/modules/gui/qt/components/interface_widgets.cpp 
b/modules/gui/qt/components/interface_widgets.cpp
index 9f67e30ebe..575970c1b8 100644
--- a/modules/gui/qt/components/interface_widgets.cpp
+++ b/modules/gui/qt/components/interface_widgets.cpp
@@ -885,15 +885,13 @@ void CoverArtLabel::setArtFromFile()
 if( !p_item )
 return;
 
-QString filePath = QFileDialog::getOpenFileName( this, qtr( "Choose Cover 
Art" ),
+QUrl fileUrl = QFileDialog::getOpenFileUrl( this, qtr( "Choose Cover Art" 
),
 p_intf->p_sys->filepath, qtr( "Image Files (*.gif *.jpg *.jpeg *.png)" 
) );
 
-if( filePath.isEmpty() )
+if( fileUrl.isEmpty() )
 return;
 
-QString fileUrl = QUrl::fromLocalFile( filePath ).toString();
-
-THEMIM->getIM()->setArt( p_item, fileUrl );
+THEMIM->getIM()->setArt( p_item, fileUrl.toString() );
 }
 
 void CoverArtLabel::clear()
diff --git a/modules/gui/qt/components/open_panels.cpp 
b/modules/gui/qt/components/open_panels.cpp
index ad3d015bf9..322bde9a89 100644
--- a/modules/gui/qt/components/open_panels.cpp
+++ b/modules/gui/qt/components/open_panels.cpp
@@ -233,7 +233,7 @@ void FileOpenPanel::browseFile()
 );
 item->setFlags( Qt::ItemIsEnabled );
 ui.fileListWidg->addItem( item );
-savedirpathFromFile( file );
+p_intf->p_sys->filepath = url;
 }
 updateButtons();
 updateMRL();
@@ -634,8 +634,10 @@ void DiscOpenPanel::updateMRL()
 
 void DiscOpenPanel::browseDevice()
 {
-QString dir = QFileDialog::getExistingDirectory( this,
-qtr( I_DEVICE_TOOLTIP ), p_intf->p_sys->filepath );
+const QStringList schemes = QStringList(QStringLiteral("file"));
+QString dir = QFileDialog::getExistingDirectoryUrl( this,
+qtr( I_DEVICE_TOOLTIP ), p_intf->p_sys->filepath,
+QFileDialog::ShowDirsOnly, schemes ).toLocalFile();
 if( !dir.isEmpty() )
 {
 ui.deviceCombo->addItem( toNativeSepNoSlash( dir ) );
diff --git a/modules/gui/qt/components/open_panels.hpp 

[vlc-commits] voc: Reject blocks with a 0 samplerate

2018-03-06 Thread Hugo Beauzée-Luyssen
vlc | branch: master | Hugo Beauzée-Luyssen  | Tue Mar  6 
16:32:16 2018 +0100| [74b68b0f3b64096bc4b48a4eacf5204b85b508e8] | committer: 
Hugo Beauzée-Luyssen

voc: Reject blocks with a 0 samplerate

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=74b68b0f3b64096bc4b48a4eacf5204b85b508e8
---

 modules/demux/voc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/modules/demux/voc.c b/modules/demux/voc.c
index f5bcd52e02..33e6ecf958 100644
--- a/modules/demux/voc.c
+++ b/modules/demux/voc.c
@@ -352,6 +352,8 @@ static int ReadBlockHeader( demux_t *p_demux )
 goto corrupt;
 
 new_fmt.audio.i_rate = GetDWLE( buf );
+if( !new_fmt.audio.i_rate )
+goto corrupt;
 new_fmt.audio.i_bitspersample = buf[4];
 new_fmt.audio.i_channels = buf[5];
 

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] demux: avi: reject 0 scaled tracks

2018-03-06 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Tue Mar  6 
14:28:05 2018 +0100| [b2d52c22b9018d361c43b24f4edcd307c611af55] | committer: 
Francois Cartegnie

demux: avi: reject 0 scaled tracks

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b2d52c22b9018d361c43b24f4edcd307c611af55
---

 modules/demux/avi/avi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 55a32e0f35..8913c45e29 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -462,7 +462,7 @@ static int Open( vlc_object_t * p_this )
 tk->i_samplesize = p_strh->i_samplesize;
 msg_Dbg( p_demux, "stream[%u] rate:%u scale:%u samplesize:%u",
 i, tk->i_rate, tk->i_scale, tk->i_samplesize );
-if( tk->i_scale > tk->i_rate )
+if( tk->i_scale > tk->i_rate || !tk->i_scale || !tk->i_rate )
 {
 free( tk );
 continue;

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits


[vlc-commits] demux: avi: fix OpenDML regression

2018-03-06 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Tue Mar  6 
12:20:42 2018 +0100| [0fc5a07cc5f284425de7c3dc2be38968626b521f] | committer: 
Francois Cartegnie

demux: avi: fix OpenDML regression

while avi and chunks are 32bits, opendml
can extend offsets to 64bits

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0fc5a07cc5f284425de7c3dc2be38968626b521f
---

 modules/demux/avi/avi.c| 32 
 modules/demux/avi/libavi.h |  2 +-
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index dc355108bd..55a32e0f35 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -105,7 +105,7 @@ static char *FromACP( const char *str )
 typedef struct
 {
 vlc_fourcc_t i_fourcc;
-uint32_t i_pos;
+uint64_t i_pos;
 uint32_t i_size;
 vlc_fourcc_t i_type; /* only for AVIFOURCC_LIST */
 
@@ -120,9 +120,9 @@ typedef struct
 {
 vlc_fourcc_t i_id;
 uint32_t i_flags;
-uint32_t i_pos;
+uint64_t i_pos;
 uint32_t i_length;
-int64_t  i_lengthtotal;
+uint64_t i_lengthtotal;
 
 } avi_entry_t;
 
@@ -135,7 +135,7 @@ typedef struct
 } avi_index_t;
 static void avi_index_Init( avi_index_t * );
 static void avi_index_Clean( avi_index_t * );
-static void avi_index_Append( avi_index_t *, uint32_t *, avi_entry_t * );
+static void avi_index_Append( avi_index_t *, uint64_t *, avi_entry_t * );
 
 typedef struct
 {
@@ -183,8 +183,8 @@ struct demux_sys_t
 
 bool  b_odml;
 
-uint32_t i_movi_begin;
-uint32_t i_movi_lastchunk_pos;   /* XXX position of last valid chunk */
+uint64_t i_movi_begin;
+uint64_t i_movi_lastchunk_pos;   /* XXX position of last valid chunk */
 
 /* number of streams and information */
 unsigned int i_track;
@@ -209,7 +209,7 @@ static int AVI_StreamChunkFind( demux_t *, unsigned int 
i_stream );
 static int AVI_StreamChunkSet ( demux_t *,
 unsigned int i_stream, unsigned int i_ck );
 static int AVI_StreamBytesSet ( demux_t *,
-unsigned int i_stream, uint32_t i_byte );
+unsigned int i_stream, uint64_t i_byte );
 
 vlc_fourcc_t AVI_FourccGetCodec( unsigned int i_cat, vlc_fourcc_t );
 static int   AVI_GetKeyFlag( vlc_fourcc_t , uint8_t * );
@@ -1534,7 +1534,7 @@ static int Seek( demux_t *p_demux, mtime_t i_date, double 
f_ratio, bool b_accura
 
 if( p_sys->b_seekable )
 {
-int64_t i_pos_backup = vlc_stream_Tell( p_demux->s );
+uint64_t i_pos_backup = vlc_stream_Tell( p_demux->s );
 
 /* Check and lazy load indexes if it was not done (not fastseekable) */
 if ( !p_sys->b_indexloaded && ( p_sys->i_avih_flags & AVIF_HASINDEX ) )
@@ -1562,7 +1562,7 @@ static int Seek( demux_t *p_demux, mtime_t i_date, double 
f_ratio, bool b_accura
 {
 avi_track_t *p_stream = NULL;
 unsigned i_stream = 0;
-int64_t i_pos;
+uint64_t i_pos;
 
 if ( !p_sys->i_movi_lastchunk_pos && /* set when index is 
successfully loaded */
  ! ( p_sys->i_avih_flags & AVIF_ISINTERLEAVED ) )
@@ -1993,7 +1993,7 @@ static int AVI_StreamChunkSet( demux_t *p_demux, unsigned 
int i_stream,
 /* XXX FIXME up to now, we assume that all chunk are one after one */
 static int AVI_StreamBytesSet( demux_t*p_demux,
unsigned int i_stream,
-   uint32_t  i_byte )
+   uint64_t  i_byte )
 {
 demux_sys_t *p_sys = p_demux->p_sys;
 avi_track_t *p_stream = p_sys->track[i_stream];
@@ -2370,7 +2370,7 @@ static void avi_index_Clean( avi_index_t *p_index )
 {
 free( p_index->p_entry );
 }
-static void avi_index_Append( avi_index_t *p_index, uint32_t *pi_last_pos,
+static void avi_index_Append( avi_index_t *p_index, uint64_t *pi_last_pos,
   avi_entry_t *p_entry )
 {
 /* Update last chunk position */
@@ -2467,7 +2467,7 @@ static int AVI_IndexFind_idx1( demux_t *p_demux,
 }
 
 static int AVI_IndexLoad_idx1( demux_t *p_demux,
-   avi_index_t p_index[], uint32_t *pi_last_offset 
)
+   avi_index_t p_index[], uint64_t *pi_last_offset 
)
 {
 demux_sys_t *p_sys = p_demux->p_sys;
 
@@ -2523,7 +2523,7 @@ static int AVI_IndexLoad_idx1( demux_t *p_demux,
 return VLC_SUCCESS;
 }
 
-static void __Parse_indx( demux_t *p_demux, avi_index_t *p_index, uint32_t 
*pi_max_offset,
+static void __Parse_indx( demux_t *p_demux, avi_index_t *p_index, uint64_t 
*pi_max_offset,
   avi_chunk_indx_t *p_indx )
 {
 demux_sys_t *p_sys = p_demux->p_sys;
@@ -2565,7 +2565,7 @@ static void __Parse_indx( demux_t *p_demux, avi_index_t 
*p_index, uint32_t *pi_m
 }
 
 static void AVI_IndexLoad_indx( demux_t *p_demux,
-

[vlc-commits] demux: avi: use original double precision pos as seek param

2018-03-06 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Tue Mar  6 
14:18:05 2018 +0100| [6c1f9b4c067f2ea517e65c15a82ebf87222ad003] | committer: 
Francois Cartegnie

demux: avi: use original double precision pos as seek param

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6c1f9b4c067f2ea517e65c15a82ebf87222ad003
---

 modules/demux/avi/avi.c | 30 +++---
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 4bfc14c715..dc355108bd 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -87,7 +87,7 @@ vlc_module_end ()
  * Local prototypes
  */
 static int Control ( demux_t *, int, va_list );
-static int Seek( demux_t *, mtime_t, int, bool );
+static int Seek( demux_t *, mtime_t, double, bool );
 static int Demux_Seekable  ( demux_t * );
 static int Demux_UnSeekable( demux_t * );
 
@@ -1526,11 +1526,11 @@ static int Demux_UnSeekable( demux_t *p_demux )
 /*
  * Seek: goto to i_date or i_percent
  */
-static int Seek( demux_t *p_demux, mtime_t i_date, int i_percent, bool 
b_accurate )
+static int Seek( demux_t *p_demux, mtime_t i_date, double f_ratio, bool 
b_accurate )
 {
 demux_sys_t *p_sys = p_demux->p_sys;
-msg_Dbg( p_demux, "seek requested: %"PRId64" seconds %d%%",
- i_date / CLOCK_FREQ, i_percent );
+msg_Dbg( p_demux, "seek requested: %"PRId64" seconds %2.2f%%",
+ i_date / CLOCK_FREQ, f_ratio * 100 );
 
 if( p_sys->b_seekable )
 {
@@ -1567,20 +1567,20 @@ static int Seek( demux_t *p_demux, mtime_t i_date, int 
i_percent, bool b_accurat
 if ( !p_sys->i_movi_lastchunk_pos && /* set when index is 
successfully loaded */
  ! ( p_sys->i_avih_flags & AVIF_ISINTERLEAVED ) )
 {
-msg_Err( p_demux, "seeking without index at %d%%"
- " only works for interleaved files", i_percent );
+msg_Err( p_demux, "seeking without index at %2.2f%%"
+ " only works for interleaved files", f_ratio * 100 );
 goto failandresetpos;
 }
 /* use i_percent to create a true i_date */
-if( i_percent >= 100 )
+if( f_ratio >= 1.0 )
 {
 msg_Warn( p_demux, "cannot seek so far !" );
 goto failandresetpos;
 }
-i_percent = __MAX( i_percent, 0 );
+f_ratio = __MAX( f_ratio, 0 );
 
 /* try to find chunk that is at i_percent or the file */
-i_pos = __MAX( i_percent * stream_Size( p_demux->s ) / 100,
+i_pos = __MAX( f_ratio * stream_Size( p_demux->s ),
p_sys->i_movi_begin );
 /* search first selected stream (and prefer non-EOF ones) */
 for( unsigned i = 0; i < p_sys->i_track; i++ )
@@ -1723,7 +1723,7 @@ static int Control( demux_t *p_demux, int i_query, 
va_list args )
 else
 {
 i64 = (mtime_t)(f * CLOCK_FREQ * p_sys->i_length);
-return Seek( p_demux, i64, (int)(f * 100), b );
+return Seek( p_demux, i64, f, b );
 }
 
 case DEMUX_GET_TIME:
@@ -1733,7 +1733,7 @@ static int Control( demux_t *p_demux, int i_query, 
va_list args )
 
 case DEMUX_SET_TIME:
 {
-int i_percent = 0;
+f = 0;
 
 i64 = va_arg( args, int64_t );
 b = va_arg( args, int );
@@ -1743,14 +1743,14 @@ static int Control( demux_t *p_demux, int i_query, 
va_list args )
 }
 else if( p_sys->i_length > 0 )
 {
-i_percent = 100 * i64 / (p_sys->i_length*CLOCK_FREQ);
+f = (double)i64 / (p_sys->i_length*CLOCK_FREQ);
 }
 else if( p_sys->i_time > 0 )
 {
-i_percent = (int)( 100.0 * ControlGetPosition( p_demux ) *
-   (double)i64 / (double)p_sys->i_time );
+f = ControlGetPosition( p_demux ) *
+   (double) i64 / (double)p_sys->i_time;
 }
-return Seek( p_demux, i64, i_percent, b );
+return Seek( p_demux, i64, f, b );
 }
 case DEMUX_GET_LENGTH:
 pi64 = va_arg( args, int64_t * );

___
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits