[vlc-commits] va: AV_PIX_FMT_D3D11VA_VLD version guards
vlc | branch: master | Steve Lhomme | Thu Jun 11 10:03:38 2015 +0200| [8a550d71ffef1afc7d97e41d7d72e025c133ec62] | committer: Jean-Baptiste Kempf va: AV_PIX_FMT_D3D11VA_VLD version guards Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8a550d71ffef1afc7d97e41d7d72e025c133ec62 --- modules/codec/avcodec/va.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/codec/avcodec/va.c b/modules/codec/avcodec/va.c index d412cb5..5153cf7 100644 --- a/modules/codec/avcodec/va.c +++ b/modules/codec/avcodec/va.c @@ -43,7 +43,7 @@ vlc_fourcc_t vlc_va_GetChroma(enum PixelFormat hwfmt, enum PixelFormat swfmt) case AV_PIX_FMT_DXVA2_VLD: return VLC_CODEC_D3D9_OPAQUE; -#if (LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(54, 13, 1)) +#if LIBAVUTIL_VERSION_CHECK(56, 25, 0, 41, 100) case AV_PIX_FMT_D3D11VA_VLD: return VLC_CODEC_D3D11_OPAQUE; #endif ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Remove duplicated FourCC entries
vlc | branch: master | Jean-Baptiste Kempf | Thu Jun 11 23:25:42 2015 +0200| [65b7990c4fad6bede8fbed05941efca815d295a4] | committer: Jean-Baptiste Kempf Remove duplicated FourCC entries > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=65b7990c4fad6bede8fbed05941efca815d295a4 --- src/misc/fourcc_list.h |2 -- 1 file changed, 2 deletions(-) diff --git a/src/misc/fourcc_list.h b/src/misc/fourcc_list.h index 214a2a7..dcc9c57 100644 --- a/src/misc/fourcc_list.h +++ b/src/misc/fourcc_list.h @@ -324,7 +324,6 @@ static const staticentry_t p_list_video[] = { A("mjpg"), A("mJPG"), A("mjpa"), -A("jpeg"), A("JFIF"), A("JPGL"), A("LJPG"), @@ -349,7 +348,6 @@ static const staticentry_t p_list_video[] = { A("mjpb"), B(VLC_CODEC_LJPG, "Lead Motion JPEG Video"), -A("LJPG"), E("Ljpg", "Lead Motion JPEG"), // ? from avcodec/fourcc.c but makes not sense. ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] configure: use AC_PATH_PROGS
vlc | branch: master | Jean-Baptiste Kempf | Thu Jun 11 23:16:51 2015 +0200| [e17375d51eb52c161f9d8f87cfe632b30a792125] | committer: Jean-Baptiste Kempf configure: use AC_PATH_PROGS > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e17375d51eb52c161f9d8f87cfe632b30a792125 --- configure.ac |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index edd97b9..0d1437b 100644 --- a/configure.ac +++ b/configure.ac @@ -70,7 +70,7 @@ AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files]) AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :) AC_PATH_PROG(YASM, yasm) AC_ARG_VAR([BUILDCC], [Build system C99 compiler command]) -AC_PATH_PROG(BUILDCC, [c99-gcc c99]) +AC_PATH_PROGS(BUILDCC, [c99-gcc c99]) dnl Check for compiler properties AC_C_CONST ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] hls: fix format string
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 23:51:59 2015 +0300| [bddac4f631ecd79a91e83bbb57147e4a36ddcf02] | committer: Rémi Denis-Courmont hls: fix format string > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bddac4f631ecd79a91e83bbb57147e4a36ddcf02 --- modules/demux/hls/HLSManager.cpp |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/demux/hls/HLSManager.cpp b/modules/demux/hls/HLSManager.cpp index e64dc2b..c5a0863 100644 --- a/modules/demux/hls/HLSManager.cpp +++ b/modules/demux/hls/HLSManager.cpp @@ -137,7 +137,9 @@ bool HLSManager::updatePlaylist() nextPlaylistupdate = now + (mininterval + maxinterval) / (2 * CLOCK_FREQ); -msg_Dbg(stream, "Updated playlist, next update in %" PRId64 "s %ld %ld", nextPlaylistupdate - now, mininterval, maxinterval ); +msg_Dbg(stream, "Updated playlist, next update in %" PRId64 "s " +"%" PRId64 " %" PRId64, nextPlaylistupdate - now, mininterval, +maxinterval); return true; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] hls: fix compilation
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 23:51:42 2015 +0300| [40e8801c1270c10ec4a5ce5db14f1b2c5a64376a] | committer: Rémi Denis-Courmont hls: fix compilation > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=40e8801c1270c10ec4a5ce5db14f1b2c5a64376a --- modules/demux/hls/HLSManager.cpp |1 + 1 file changed, 1 insertion(+) diff --git a/modules/demux/hls/HLSManager.cpp b/modules/demux/hls/HLSManager.cpp index 05aa7e1..e64dc2b 100644 --- a/modules/demux/hls/HLSManager.cpp +++ b/modules/demux/hls/HLSManager.cpp @@ -23,6 +23,7 @@ #include "../adaptative/tools/Retrieve.hpp" #include "playlist/Parser.hpp" #include +#include using namespace adaptative; using namespace adaptative::logic; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] fourcc: use binary rather than linear search
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 23:21:47 2015 +0300| [165861e38ff7152eb34d7114c3c876e63e2f43d3] | committer: Rémi Denis-Courmont fourcc: use binary rather than linear search > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=165861e38ff7152eb34d7114c3c876e63e2f43d3 --- src/misc/fourcc.c | 159 ++--- 1 file changed, 66 insertions(+), 93 deletions(-) diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c index 46556e2..801146d 100644 --- a/src/misc/fourcc.c +++ b/src/misc/fourcc.c @@ -33,115 +33,89 @@ #include #include +#include "fourcc_tables.h" -typedef struct +static int fourcc_cmp(const void *key, const void *ent) { -char p_class[4]; -char p_fourcc[4]; -char psz_description[56]; -} staticentry_t; - -typedef struct -{ -char p_class[4]; -char p_fourcc[4]; -const char *psz_description; -} entry_t; - -#define NULL4 "\x00\x00\x00\x00" - -/* XXX You don't want to see the preprocessor generated code ;) */ -#ifdef WORDS_BIGENDIAN -# define FCC2STR(f) { ((f)>>24)&0xff, ((f)>>16)&0xff, ((f)>>8)&0xff, ((f)>>0)&0xff } -#else -# define FCC2STR(f) { ((f)>>0)&0xff, ((f)>>8)&0xff, ((f)>>16)&0xff, ((f)>>24)&0xff } -#endif -/* Begin a new class */ -#define B(a, c) { .p_class = FCC2STR(a), .p_fourcc = FCC2STR(a), .psz_description = c } -/* Create a sub-class entry with description */ -#define E(b, c) { .p_class = NULL4, .p_fourcc = b, .psz_description = c } -/* Create a sub-class entry without description (alias) */ -#define A(b) E(b, NULL4) - -#include "misc/fourcc_list.h" - -/* Create a fourcc from a string. - * XXX it assumes that the string is at least four bytes */ -static inline vlc_fourcc_t CreateFourcc( const char *psz_fourcc ) -{ -return VLC_FOURCC( psz_fourcc[0], psz_fourcc[1], - psz_fourcc[2], psz_fourcc[3] ); +return memcmp(key, ent, 4); } -/* */ -static entry_t Lookup( const staticentry_t p_list[], vlc_fourcc_t i_fourcc ) +static vlc_fourcc_t Lookup(vlc_fourcc_t fourcc, const char **restrict dsc, + const struct fourcc_mapping *mapv, size_t mapc, + const struct fourcc_desc *dscv, size_t dscc) { -const char *p_class = NULL; -const char *psz_description = NULL; - -entry_t e = B(0, ""); +const struct fourcc_mapping *mapping; +const struct fourcc_desc *desc; -for( int i = 0; ; i++ ) +mapping = bsearch(&fourcc, mapv, mapc, sizeof (*mapv), fourcc_cmp); +if (mapping != NULL) { -const staticentry_t *p = &p_list[i]; -const vlc_fourcc_t i_entry_fourcc = CreateFourcc( p->p_fourcc ); -const vlc_fourcc_t i_entry_class = CreateFourcc( p->p_class ); - -if( i_entry_fourcc == 0 ) -break; - -if( i_entry_class != 0 ) +if (dsc != NULL) { -p_class = p->p_class; -psz_description = p->psz_description; +desc = bsearch(&fourcc, dscv, dscc, sizeof (*dscv), fourcc_cmp); +if (desc != NULL) +{ +*dsc = desc->desc; +return mapping->fourcc; +} } +fourcc = mapping->fourcc; +} -if( i_entry_fourcc == i_fourcc ) -{ -assert( p_class != NULL ); +desc = bsearch(&fourcc, dscv, dscc, sizeof (*dscv), fourcc_cmp); +if (desc == NULL) +return 0; /* Unknown FourCC */ +if (dsc != NULL) +*dsc = desc->desc; +return fourcc; /* Known FourCC (has a description) */ +} -memcpy( e.p_class, p_class, 4 ); -memcpy( e.p_fourcc, p->p_fourcc, 4 ); -e.psz_description = p->psz_description[0] != '\0' ? -p->psz_description : psz_description; -break; -} -} -return e; +static vlc_fourcc_t LookupVideo(vlc_fourcc_t fourcc, const char **restrict dsc) +{ +return Lookup(fourcc, dsc, mapping_video, + sizeof (mapping_video) / sizeof (mapping_video[0]), + desc_video, sizeof (desc_video) / sizeof (desc_video[0])); } -/* */ -static entry_t Find( int i_cat, vlc_fourcc_t i_fourcc ) +static vlc_fourcc_t LookupAudio(vlc_fourcc_t fourcc, const char **restrict dsc) { -entry_t e; +return Lookup(fourcc, dsc, mapping_audio, + sizeof (mapping_audio) / sizeof (mapping_audio[0]), + desc_audio, sizeof (desc_audio) / sizeof (desc_audio[0])); +} -switch( i_cat ) +static vlc_fourcc_t LookupSpu(vlc_fourcc_t fourcc, const char **restrict dsc) +{ +return Lookup(fourcc, dsc, mapping_spu, + sizeof (mapping_spu) / sizeof (mapping_spu[0]), + desc_spu, sizeof (desc_spu) / sizeof (desc_spu[0])); +} + +static vlc_fourcc_t LookupCat(vlc_fourcc_t fourcc, const char **restrict dsc, + int cat) +{ +switch (cat) { -case VIDEO_ES: -return Lookup( p_list_
[vlc-commits] fourcc: remove duplicate FourCC alias
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 23:35:07 2015 +0300| [4d6ff343fe55da9dd4c332982e39e426a759b64f] | committer: Rémi Denis-Courmont fourcc: remove duplicate FourCC alias Multiple identical FourCC in the same ES category have never worked and never will work. So far the linear search loop would always pick the first match. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4d6ff343fe55da9dd4c332982e39e426a759b64f --- src/misc/fourcc_list.h |6 -- 1 file changed, 6 deletions(-) diff --git a/src/misc/fourcc_list.h b/src/misc/fourcc_list.h index 0350f84..29ca3eb 100644 --- a/src/misc/fourcc_list.h +++ b/src/misc/fourcc_list.h @@ -31,7 +31,6 @@ static const staticentry_t p_list_video[] = { B(VLC_CODEC_MPGV, "MPEG-1/2 Video"), B(VLC_CODEC_MP2V, "MPEG-2 Video"), -A("mpgv"), A("mpeg"), A("mp2v"), A("MPEG"), @@ -280,7 +279,6 @@ static const staticentry_t p_list_video[] = { A("VX1K"), A("s263"), A("S263"), -A("U263"), A("u263"), A("lsvm"), E("D263", "DEC H263"), @@ -327,11 +325,9 @@ static const staticentry_t p_list_video[] = { A("mJPG"), A("mjpa"), A("jpeg"), -A("JPEG"), A("JFIF"), A("JPGL"), A("LJPG"), -A("AVDJ"), A("MMJP"), A("FLJP"), A("FMJP"), @@ -762,7 +758,6 @@ static const staticentry_t p_list_video[] = { B(VLC_CODEC_YUV422A, "Planar YUV 4:2:2 Y:U:V:A"), A("I42A"), B(VLC_CODEC_YUVA_444_10L, "Planar YUV 4:4:4 Y:U:V:A 10bits"), -A("YUVA"), B(VLC_CODEC_RGBP, "Palettized RGB with palette element R:G:B"), A("RGBP"), @@ -1004,7 +999,6 @@ static const staticentry_t p_list_video[] = { A("MSA1"), B(VLC_CODEC_TSC2, "TechSmith Screen Codec 2"), -A("MSA1"), A("tsc2"), B(VLC_CODEC_MTS2, "Microsoft Expression Encoder Screen"), ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] fourcc: preprocess the tables and sort them at build time
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 20:49:59 2015 +0300| [9e6b1f9839f671aa38fcc5948c16b978d7780246] | committer: Rémi Denis-Courmont fourcc: preprocess the tables and sort them at build time > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9e6b1f9839f671aa38fcc5948c16b978d7780246 --- include/vlc_es.h |1 + include/vlc_fourcc.h |2 - src/.gitignore |2 + src/Makefile.am| 14 + src/misc/fourcc_gen.c | 156 src/misc/fourcc_list.h |8 ++- 6 files changed, 178 insertions(+), 5 deletions(-) diff --git a/include/vlc_es.h b/include/vlc_es.h index ff31b63..b041862 100644 --- a/include/vlc_es.h +++ b/include/vlc_es.h @@ -24,6 +24,7 @@ #ifndef VLC_ES_H #define VLC_ES_H 1 +#include #include #include diff --git a/include/vlc_fourcc.h b/include/vlc_fourcc.h index 1494ca7..4bb050d 100644 --- a/include/vlc_fourcc.h +++ b/include/vlc_fourcc.h @@ -24,8 +24,6 @@ #ifndef VLC_FOURCC_H #define VLC_FOURCC_H 1 -#include - /* Video codec */ #define VLC_CODEC_MPGVVLC_FOURCC('m','p','g','v') #define VLC_CODEC_MP4VVLC_FOURCC('m','p','4','v') diff --git a/src/.gitignore b/src/.gitignore index de9cab7..13f18ff 100644 --- a/src/.gitignore +++ b/src/.gitignore @@ -1,4 +1,6 @@ test_* +fourcc_gen +fourcc_tables.h libvlc_win32_rc.rc revision.c revision.txt diff --git a/src/Makefile.am b/src/Makefile.am index c96c9fb..e608e4d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -515,6 +515,20 @@ SOURCES_libvlc = \ $(SOURCES_libvlc_common) \ $(NULL) +# FourCC tables +BUILT_SOURCES += fourcc_tables.h +EXTRA_DIST += misc/fourcc_gen.c +MOSTLYCLEANFILES = fourcc_gen + +fourcc_gen: misc/fourcc_gen.c misc/fourcc_list.h ../include/vlc_fourcc.h + $(AM_V_at)rm -f -- $@ + $(AM_V_CC)$(BUILDCC) -I$(srcdir) -o $@ $< + +fourcc_tables.h: fourcc_gen + $(AM_V_at)rm -f -- $@.tmp + $(AM_V_GEN)$(builddir)/fourcc_gen > $@.tmp + $(AM_V_at)mv -f -- $@.tmp $@ + # Unit/regression tests # check_PROGRAMS = \ diff --git a/src/misc/fourcc_gen.c b/src/misc/fourcc_gen.c new file mode 100644 index 000..d8903ac --- /dev/null +++ b/src/misc/fourcc_gen.c @@ -0,0 +1,156 @@ +/* + * fourcc_gen.c: FourCC preprocessor + * + * Copyright © 2015 Rémi Denis-Courmont + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + */ + +/* DO NOT include "config.h" here */ + +#include +#include +#include +#include +#include +#include +#include + +#define VLC_API +#define VLC_USED +typedef uint32_t vlc_fourcc_t; +#include "../include/vlc_fourcc.h" + +#define VLC_FOURCC(a,b,c,d) { a, b, c, d } +#define A(sfcc) E(sfcc, NULL) +#define B(fcc,dsc) { true, fcc, dsc } +#define E(sfcc,dsc) { false, sfcc, dsc } + +typedef struct +{ +bool klass; +char fourcc[4]; +const char *description; +} staticentry_t; + +#include "misc/fourcc_list.h" + +struct entry +{ +char fourcc[4]; +char alias[4]; +const char *desc; +}; + +static int cmp_entry(const void *a, const void *b) +{ +const struct entry *ea = a, *eb = b; + +return memcmp(ea->alias, eb->alias, 4); +} + +static void process_list(const char *name, const staticentry_t *list, size_t n) +{ +assert(n > 0); +n--; /* discard final nul entry */ + +struct entry *entries = malloc(sizeof (*entries) * n); +if (entries == NULL) +abort(); + +const staticentry_t *klass = NULL; + +for (size_t i = 0; i < n; i++) +{ +if (list[i].klass) +klass = &list[i]; + +if (klass == NULL) +{ +fprintf(stderr, "Error: FourCC \"%.4s\" not mapped!\n", +list[i].fourcc); +exit(1); +} + +memcpy(entries[i].fourcc, klass->fourcc, 4); +memcpy(entries[i].alias, list[i].fourcc, 4); +entries[i].desc = list[i].description; +} + +qsort(entries, n, sizeof (*entries), cmp_entry); + +size_t dups = 0; +for (size_t i = 1; i < n; i++) +{ +if (!memcmp(ent
[vlc-commits] fourcc: simplify
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 23:24:04 2015 +0300| [8d1bc6626f26a49a9088a4801dce62cb3dba7035] | committer: Rémi Denis-Courmont fourcc: simplify > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8d1bc6626f26a49a9088a4801dce62cb3dba7035 --- src/misc/fourcc_gen.c |3 --- src/misc/fourcc_list.h |6 -- 2 files changed, 9 deletions(-) diff --git a/src/misc/fourcc_gen.c b/src/misc/fourcc_gen.c index d8903ac..4f98a4d 100644 --- a/src/misc/fourcc_gen.c +++ b/src/misc/fourcc_gen.c @@ -63,9 +63,6 @@ static int cmp_entry(const void *a, const void *b) static void process_list(const char *name, const staticentry_t *list, size_t n) { -assert(n > 0); -n--; /* discard final nul entry */ - struct entry *entries = malloc(sizeof (*entries) * n); if (entries == NULL) abort(); diff --git a/src/misc/fourcc_list.h b/src/misc/fourcc_list.h index 42513c2..214a2a7 100644 --- a/src/misc/fourcc_list.h +++ b/src/misc/fourcc_list.h @@ -1075,8 +1075,6 @@ static const staticentry_t p_list_video[] = { B(VLC_CODEC_DFA, "Chronomaster DFA"), B(VLC_CODEC_HNM4_VIDEO, "Cryo Interactive Entertainment HNM4"), - -B(VLC_FOURCC(0,0,0,0), "") }; static const staticentry_t p_list_audio[] = { @@ -1482,8 +1480,6 @@ static const staticentry_t p_list_audio[] = { B(VLC_CODEC_ADPCM_EA_R1, "ADPCM Electronic Arts R1"), B(VLC_CODEC_ADPCM_IMA_APC, "ADPCM APC"), - -B(VLC_FOURCC(0,0,0,0), "") }; static const staticentry_t p_list_spu[] = { @@ -1554,6 +1550,4 @@ static const staticentry_t p_list_spu[] = { B(VLC_CODEC_TTML, "TTML subtitles"), A("ttml"), - -B(VLC_FOURCC(0,0,0,0), "") }; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] configure: test for BUILDCC (build machine CC)
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 19:41:54 2015 +0300| [91bea97e9b009b744e6372610e0839d6f442b5b8] | committer: Rémi Denis-Courmont configure: test for BUILDCC (build machine CC) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=91bea97e9b009b744e6372610e0839d6f442b5b8 --- configure.ac |2 ++ 1 file changed, 2 insertions(+) diff --git a/configure.ac b/configure.ac index 32be8bb..edd97b9 100644 --- a/configure.ac +++ b/configure.ac @@ -69,6 +69,8 @@ AM_PROG_AS AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files]) AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :) AC_PATH_PROG(YASM, yasm) +AC_ARG_VAR([BUILDCC], [Build system C99 compiler command]) +AC_PATH_PROG(BUILDCC, [c99-gcc c99]) dnl Check for compiler properties AC_C_CONST ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] fourcc: split the big FourCC table to a separate file
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 19:54:00 2015 +0300| [9d97ecb3e7afa37d5f3a9eb900c939e39529ffd0] | committer: Rémi Denis-Courmont fourcc: split the big FourCC table to a separate file > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9d97ecb3e7afa37d5f3a9eb900c939e39529ffd0 --- src/Makefile.am|1 + src/misc/fourcc.c | 1543 +-- src/misc/fourcc_list.h | 1563 3 files changed, 1565 insertions(+), 1542 deletions(-) Diff: http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=9d97ecb3e7afa37d5f3a9eb900c939e39529ffd0 ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: mp4: fix smooth restart
vlc | branch: master | Francois Cartegnie | Thu Jun 11 20:06:34 2015 +0200| [fe65f510689fa159be67fd2a779a67980ecd9eb3] | committer: Francois Cartegnie demux: mp4: fix smooth restart > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fe65f510689fa159be67fd2a779a67980ecd9eb3 --- modules/demux/mp4/mp4.c | 69 +++ 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 85c1bcc..9294901 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -421,7 +421,6 @@ static int CreateTracksFromSmooBox( demux_t *p_demux ) { mp4_track_t *p_track = &p_sys->track[j++]; MP4_SmoothTrackCreate( p_demux, p_track, p_stra ); -p_track->p_es = es_out_Add( p_demux->out, &p_track->fmt ); } p_stra = p_stra->p_next; } @@ -3509,6 +3508,7 @@ static int MP4_SmoothFormatFill( const MP4_Box_data_stra_t *p_data, const mp4_tr static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, const MP4_Box_t *p_stra ) { demux_sys_t *p_sys = p_demux->p_sys; +es_format_t *fmt = &p_track->fmt; p_track->b_ok = false; p_track->b_selected = false; @@ -3521,16 +3521,36 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, const p_track->i_timescale = p_sys->i_timescale; p_track->i_track_ID = p_data->i_track_ID; +p_track->i_width = 0; +p_track->i_height = 0; -es_format_t *fmt = &p_track->fmt; -es_format_Init( &p_track->fmt, p_data->i_es_cat, 0 ); +es_format_t newfmt; +es_format_Init( &newfmt, p_data->i_es_cat, 0 ); +if( MP4_SmoothFormatFill( BOXDATA(p_stra), p_track, &newfmt ) != VLC_SUCCESS ) +{ +es_format_Clean(&newfmt); +if( p_track->p_es ) +{ +es_out_Del( p_demux->out, p_track->p_es ); +p_track->p_es = NULL; +} +return VLC_EGENERIC; +} -if( MP4_SmoothFormatFill( p_data, p_track, fmt ) != VLC_SUCCESS ) +/* If format now differs from current (new or updated) */ +if( !es_format_IsSimilar( &newfmt, fmt ) || +newfmt.i_extra != fmt->i_extra || +memcmp( &newfmt.p_extra, fmt->p_extra, newfmt.i_extra ) ) { es_format_Clean( fmt ); -return VLC_EGENERIC; +es_format_Copy( fmt, &newfmt ); +if( p_track->p_es ) +es_out_Del( p_demux->out, p_track->p_es ); +p_track->p_es = es_out_Add( p_demux->out, fmt ); } -else if( fmt->i_cat == VIDEO_ES ) +es_format_Clean( &newfmt ); + +if( fmt->i_cat == VIDEO_ES ) { p_track->i_width = fmt->video.i_visible_width; p_track->i_height = fmt->video.i_visible_height; @@ -3544,7 +3564,7 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, const p_demux->p_sys->f_fps = 24; } -p_track->b_ok = true; +p_track->b_ok = !!p_track->p_es; return VLC_SUCCESS; } @@ -3615,44 +3635,35 @@ static int ReInitDecoder( demux_t *p_demux, mp4_track_t *p_track ) { demux_sys_t *p_sys = p_demux->p_sys; -uint32_t i_sample = 0; -bool b_smooth = false; -MP4_Box_t *p_stra = NULL, *p_trak = NULL; - -if( !CmpUUID( &p_sys->p_root->p_first->i_uuid, &SmooBoxUUID ) ) -b_smooth = true; +uint32_t i_sample = p_track->i_sample; -if( b_smooth ) +if( p_sys->b_smooth ) { -p_stra = MP4_BoxGet( p_sys->p_root, "uuid/uuid[0]" ); -if( !p_stra || CmpUUID( &p_stra->i_uuid, &StraBoxUUID ) ) +MP4_Box_t *p_stra = MP4_BoxGet( p_sys->p_root, "uuid/uuid[0]" ); +if( !p_stra || CmpUUID( &p_stra->i_uuid, &StraBoxUUID ) || +MP4_SmoothTrackCreate( p_demux, p_track, p_stra ) != VLC_SUCCESS ) return VLC_EGENERIC; } else /* DASH */ { -p_trak = MP4_BoxGet( p_sys->p_root, "/moov/trak[0]" ); +MP4_Box_t *p_trak = MP4_BoxGet( p_sys->p_root, "/moov/trak[0]" ); if( !p_trak ) return VLC_EGENERIC; -} - -i_sample = p_track->i_sample; -es_out_Del( p_demux->out, p_track->p_es ); -p_track->p_es = NULL; -es_format_Clean( &p_track->fmt ); -if( b_smooth ) -MP4_SmoothTrackCreate( p_demux, p_track, p_stra ); -else /* DASH */ +es_out_Del( p_demux->out, p_track->p_es ); +p_track->p_es = NULL; +es_format_Clean( &p_track->fmt ); MP4_TrackCreate( p_demux, p_track, p_trak, true ); +if(!p_track->p_es) +p_track->p_es = es_out_Add( p_demux->out, &p_track->fmt ); +p_track->b_ok = !!p_track->p_es; +} p_track->i_sample = i_sample; /* Temporary hack until we support track selection */ p_track->b_selected = true; -p_track->b_ok = true; p_track->b_enable = true; -if(!p_track->p_es) -p_track->p_es = es_out_Add( p_demux->out, &p_track->fmt ); p_track->b_codec_need_
[vlc-commits] demux: mp4: split smooth fmt from whole track setup
vlc | branch: master | Francois Cartegnie | Thu Jun 11 17:27:52 2015 +0200| [d991fd3a901af13a246fe372036c09ced859c7a3] | committer: Francois Cartegnie demux: mp4: split smooth fmt from whole track setup > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d991fd3a901af13a246fe372036c09ced859c7a3 --- modules/demux/mp4/mp4.c | 87 ++- 1 file changed, 49 insertions(+), 38 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index b50beca..85c1bcc 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -116,7 +116,7 @@ struct demux_sys_t * Declaration of local function */ static void MP4_TrackCreate ( demux_t *, mp4_track_t *, MP4_Box_t *, bool b_force_enable ); -static int MP4_SmoothTrackCreate( demux_t *, mp4_track_t *, MP4_Box_t *); +static int MP4_SmoothTrackCreate( demux_t *, mp4_track_t *, const MP4_Box_t *); static void MP4_TrackDestroy( demux_t *, mp4_track_t * ); static block_t * MP4_Block_Read( demux_t *, const mp4_track_t *, int ); @@ -3436,7 +3436,7 @@ static int build_raw_avcC( uint8_t **p_extra, const uint8_t *CodecPrivateData, * Build a mp4_track_t from a StraBox */ -static inline int MP4_SetCodecExtraData( es_format_t *fmt, MP4_Box_data_stra_t *p_data ) +static inline int MP4_SetCodecExtraData( es_format_t *fmt, const MP4_Box_data_stra_t *p_data ) { fmt->p_extra = malloc( p_data->cpd_len ); if( unlikely( !fmt->p_extra ) ) @@ -3446,29 +3446,9 @@ static inline int MP4_SetCodecExtraData( es_format_t *fmt, MP4_Box_data_stra_t * return VLC_SUCCESS; } -static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_stra ) +static int MP4_SmoothFormatFill( const MP4_Box_data_stra_t *p_data, const mp4_track_t *p_track, + es_format_t *fmt ) { -demux_sys_t *p_sys = p_demux->p_sys; -int ret; -MP4_Box_data_stra_t *p_data = BOXDATA(p_stra); -if( !p_data ) -return VLC_EGENERIC; - -p_track->b_ok = false; -p_track->b_selected = false; -p_track->i_sample_count = UINT32_MAX; - -p_track->i_timescale = p_sys->i_timescale; -p_track->i_width = p_data->MaxWidth; -p_track->i_height = p_data->MaxHeight; -p_track->i_track_ID = p_data->i_track_ID; - -es_format_t *fmt = &p_track->fmt; -if( fmt == NULL ) -return VLC_EGENERIC; - -es_format_Init( fmt, p_data->i_es_cat, 0 ); - /* Set language FIXME */ fmt->psz_language = strdup( "en" ); @@ -3490,9 +3470,8 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Bo } else { -ret = MP4_SetCodecExtraData( fmt, p_data ); -if( ret != VLC_SUCCESS ) -return ret; +if ( MP4_SetCodecExtraData( fmt, p_data ) != VLC_SUCCESS ) +return VLC_EGENERIC; } fmt->video.i_width = p_data->MaxWidth; @@ -3505,14 +3484,6 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Bo ChunkGetESSampleRate( &fmt->video.i_frame_rate, &fmt->video.i_frame_rate_base, p_track ); -if( fmt->video.i_frame_rate_base != 0 ) -{ -p_demux->p_sys->f_fps = (float)fmt->video.i_frame_rate / -(float)fmt->video.i_frame_rate_base; -} -else -p_demux->p_sys->f_fps = 24; - break; case AUDIO_ES: @@ -3523,9 +3494,8 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Bo fmt->i_bitrate = p_data->Bitrate; -ret = MP4_SetCodecExtraData( fmt, p_data ); -if( ret != VLC_SUCCESS ) -return ret; +if ( MP4_SetCodecExtraData( fmt, p_data ) != VLC_SUCCESS ) +return VLC_EGENERIC; break; @@ -3533,6 +3503,47 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Bo break; } +return VLC_SUCCESS; +} + +static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, const MP4_Box_t *p_stra ) +{ +demux_sys_t *p_sys = p_demux->p_sys; + +p_track->b_ok = false; +p_track->b_selected = false; + +MP4_Box_data_stra_t *p_data = BOXDATA(p_stra); +if( !p_data ) +return VLC_EGENERIC; + +p_track->i_sample_count = UINT32_MAX; + +p_track->i_timescale = p_sys->i_timescale; +p_track->i_track_ID = p_data->i_track_ID; + +es_format_t *fmt = &p_track->fmt; +es_format_Init( &p_track->fmt, p_data->i_es_cat, 0 ); + +if( MP4_SmoothFormatFill( p_data, p_track, fmt ) != VLC_SUCCESS ) +{ +es_format_Clean( fmt ); +return VLC_EGENERIC; +} +else if( fmt->i_ca
[vlc-commits] lua readme: mention state as second parameter for add_check_box
vlc | branch: master | David Fuhrmann | Thu Jun 11 19:25:39 2015 +0200| [377bab66f9721a22a9c1bb82acd84cd71db45b14] | committer: David Fuhrmann lua readme: mention state as second parameter for add_check_box > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=377bab66f9721a22a9c1bb82acd84cd71db45b14 --- share/lua/README.txt |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/lua/README.txt b/share/lua/README.txt index 84f322f..a3fea24 100644 --- a/share/lua/README.txt +++ b/share/lua/README.txt @@ -71,7 +71,7 @@ d:add_label( text, ... ): Create a text label with caption "text" (string). d:add_html( text, ... ): Create a rich text label with caption "text" (string), that supports basic HTML formatting (such as or for instance). d:add_text_input( text, ... ): Create an editable text field, in order to read user input. d:add_password( text, ... ): Create an editable text field, in order to read user input. Text entered in this box will not be readable (replaced by asterisks). -d:add_check_box( text, ... ): Create a check box with a text. They have a boolean state (true/false). +d:add_check_box( text, state, ... ): Create a check box with a text. They have a boolean state (true/false). d:add_dropdown( ... ): Create a drop-down widget. Only 1 element can be selected the same time. d:add_list( ... ): Create a list widget. Allows multiple or empty selections. d:add_image( path, ... ): Create an image label. path is a relative or absolute path to the image on the local computer. ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: extensions: delete dead code
vlc | branch: master | David Fuhrmann | Thu Jun 11 19:16:19 2015 +0200| [674fb436f25f557653b90c08f20ece856ab4ad67] | committer: David Fuhrmann macosx: extensions: delete dead code > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=674fb436f25f557653b90c08f20ece856ab4ad67 --- modules/gui/macosx/ExtensionsDialogProvider.m | 12 1 file changed, 12 deletions(-) diff --git a/modules/gui/macosx/ExtensionsDialogProvider.m b/modules/gui/macosx/ExtensionsDialogProvider.m index c723ab9..a3d5ea9 100644 --- a/modules/gui/macosx/ExtensionsDialogProvider.m +++ b/modules/gui/macosx/ExtensionsDialogProvider.m @@ -161,18 +161,6 @@ static void updateControlFromWidget(NSView *control, extension_widget_t *widget, break; } -{ -assert([control isKindOfClass:[NSTextView class]]); -NSTextView *textView = (NSTextView *)control; -NSString *string = [NSString stringWithUTF8String:widget->psz_text]; -NSAttributedString *attrString = [[NSAttributedString alloc] initWithHTML:[string dataUsingEncoding: NSISOLatin1StringEncoding] documentAttributes:NULL]; -[[textView textStorage] setAttributedString:attrString]; -[textView setNeedsDisplay:YES]; -[textView scrollRangeToVisible:NSMakeRange(0, 0)]; -[attrString release]; -break; - -} case EXTENSION_WIDGET_LABEL: case EXTENSION_WIDGET_PASSWORD: case EXTENSION_WIDGET_TEXT_FIELD: ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: add own configure switch to disable the sparkle update framework
vlc | branch: master | David Fuhrmann | Thu Jun 4 12:59:39 2015 +0200| [2a584bfba8e8b7eb5c9d5fded49c68810e9bd685] | committer: David Fuhrmann macosx: add own configure switch to disable the sparkle update framework --enable-update-check enables update support in core, which is not needed for the mac platform. To avoid linking libgcrypt into the core, instead a new configure switch is introduced to disable sparkle support directly. Now, for disabling sparkle support, one needs to pass --disable-sparkle. It completely removed sparkle from the GUI, and does not copy the framework to the final bundle as well. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2a584bfba8e8b7eb5c9d5fded49c68810e9bd685 --- configure.ac | 25 ++-- extras/package/macosx/configure.sh |1 - extras/package/macosx/package.mak |3 +++ .../package/macosx/vlc.xcodeproj/project.pbxproj |2 -- modules/gui/macosx/MainMenu.m |4 ++-- modules/gui/macosx/intf.m |6 ++--- modules/gui/macosx/simple_prefs.m |6 ++--- 7 files changed, 29 insertions(+), 18 deletions(-) diff --git a/configure.ac b/configure.ac index faba317..32be8bb 100644 --- a/configure.ac +++ b/configure.ac @@ -3795,13 +3795,6 @@ then VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit -Wl,-framework,CoreAudio -Wl,-framework,SystemConfiguration -Wl,-framework,ScriptingBridge]) - if test ! -d ${CONTRIB_DIR}/Sparkle.framework - then -AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}]) - fi - VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle]) - VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}]) - if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework then AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}]) @@ -3812,6 +3805,24 @@ fi AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"]) dnl +dnl MacOS X sparkle update support +dnl +AC_ARG_ENABLE(sparkle, + [ --enable-sparkleSparkle update support for OS X (default enabled on Mac OS X)]) +if test "x${enable_sparkle}" != "xno" -a "${SYS}" = "darwin" +then + if test ! -d ${CONTRIB_DIR}/Sparkle.framework + then +AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}]) + fi + VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle]) + VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}]) + AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.]) +fi +AM_CONDITIONAL(HAVE_SPARKLE, [test "$enable_sparkle" != "no"]) + + +dnl dnl Minimal Mac OS X module dnl AC_ARG_ENABLE(minimal-macosx, diff --git a/extras/package/macosx/configure.sh b/extras/package/macosx/configure.sh index 03b0a0d..d4af059 100755 --- a/extras/package/macosx/configure.sh +++ b/extras/package/macosx/configure.sh @@ -16,7 +16,6 @@ esac OPTIONS=" --prefix=`pwd`/vlc_install_dir ---enable-update-check --enable-macosx --enable-merge-ffmpeg --enable-growl diff --git a/extras/package/macosx/package.mak b/extras/package/macosx/package.mak index 40e4fe5..630eb9b 100644 --- a/extras/package/macosx/package.mak +++ b/extras/package/macosx/package.mak @@ -48,6 +48,9 @@ VLC-tmp: vlc xcodebuild -target vlc SYMROOT=../../../build DSTROOT=../../../build $(silentstd) cp -R $(top_builddir)/tmp/build/Default/VLC.bundle $@ mkdir -p $@/Contents/Frameworks && cp -R $(CONTRIB_DIR)/Growl.framework $@/Contents/Frameworks/ +if HAVE_SPARKLE + cp -R $(CONTRIB_DIR)/Sparkle.framework $@/Contents/Frameworks/ +endif mkdir -p $@/Contents/MacOS/share/locale/ cp -r "$(prefix)/lib/vlc/lua" "$(prefix)/share/vlc/lua" $@/Contents/MacOS/share/ mkdir -p $@/Contents/MacOS/include/ diff --git a/extras/package/macosx/vlc.xcodeproj/project.pbxproj b/extras/package/macosx/vlc.xcodeproj/project.pbxproj index 7743652..87cf1c1 100644 --- a/extras/package/macosx/vlc.xcodeproj/project.pbxproj +++ b/extras/package/macosx/vlc.xcodeproj/project.pbxproj @@ -682,7 +682,6 @@ CC402F430E00ABBB006A4BA4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC1941240B9C1F8400635F6B /* QTKit.framework */; }; CC402F440E00ABBB006A4BA4 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC962E2C0CC7992800A56695 /* WebKit.framework */; }; CC426FD11020D44F00A32659 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC426FD01020D44F00A32659 /* Sparkle.framework */; }; - CC426FD71020D47100A32659 /* Sparkle.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = CC426FD01020D44F00A32659 /* Sparkle.framework */; }; CC461F75160084A10022423C /* SharedDialogs.xi
[vlc-commits] macosx: fix checked state for extensions (close #14855)
vlc | branch: master | David Fuhrmann | Thu Jun 11 19:14:50 2015 +0200| [d768b02e609ec5c3295c09a54dd6dd425df687b1] | committer: David Fuhrmann macosx: fix checked state for extensions (close #14855) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d768b02e609ec5c3295c09a54dd6dd425df687b1 --- modules/gui/macosx/ExtensionsDialogProvider.m | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/gui/macosx/ExtensionsDialogProvider.m b/modules/gui/macosx/ExtensionsDialogProvider.m index d15966c..c723ab9 100644 --- a/modules/gui/macosx/ExtensionsDialogProvider.m +++ b/modules/gui/macosx/ExtensionsDialogProvider.m @@ -192,9 +192,9 @@ static void updateControlFromWidget(NSView *control, extension_widget_t *widget, { assert([control isKindOfClass:[NSButton class]]); NSButton *button = (NSButton *)control; -if (!widget->psz_text) -break; -[button setTitle:[NSString stringWithUTF8String:widget->psz_text]]; +[button setTitle:toNSStr(widget->psz_text)]; +if (widget->type == EXTENSION_WIDGET_CHECK_BOX) +[button setState:widget->b_checked ? NSOnState : NSOffState]; break; } case EXTENSION_WIDGET_DROPDOWN: @@ -342,7 +342,10 @@ static ExtensionsDialogProvider *_o_sharedInstance = nil; extension_widget_t *widget = [button widget]; vlc_mutex_lock(&widget->p_dialog->lock); -extension_WidgetClicked(widget->p_dialog, widget); +if (widget->type == EXTENSION_WIDGET_BUTTON) +extension_WidgetClicked(widget->p_dialog, widget); +else +widget->b_checked = [button state] == NSOnState; vlc_mutex_unlock(&widget->p_dialog->lock); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] fourcc: derecursify the Find() function
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 19:21:06 2015 +0300| [351869f2f4827fea4b00d7b6e89f2bb419b8a075] | committer: Rémi Denis-Courmont fourcc: derecursify the Find() function > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=351869f2f4827fea4b00d7b6e89f2bb419b8a075 --- src/misc/fourcc.c |6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c index 63e36f5..7922133 100644 --- a/src/misc/fourcc.c +++ b/src/misc/fourcc.c @@ -1666,11 +1666,11 @@ static entry_t Find( int i_cat, vlc_fourcc_t i_fourcc ) return Lookup( p_list_spu, i_fourcc ); default: -e = Find( VIDEO_ES, i_fourcc ); +e = Lookup( p_list_video, i_fourcc ); if( CreateFourcc( e.p_class ) == 0 ) -e = Find( AUDIO_ES, i_fourcc ); +e = Lookup( p_list_audio, i_fourcc ); if( CreateFourcc( e.p_class ) == 0 ) -e = Find( SPU_ES, i_fourcc ); +e = Lookup( p_list_spu, i_fourcc ); return e; } } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] filename: episode numbers can have more than 2 digits (fixes #14859)
vlc/vlc-2.2 | branch: master | Rémi Denis-Courmont | Thu Jun 11 18:49:27 2015 +0300| [b4bd8778947e4f5a1f9bcfbf709d1fb9197c4aa0] | committer: Rémi Denis-Courmont filename: episode numbers can have more than 2 digits (fixes #14859) (cherry picked from commit 9ad76e4f4542b0ff4d20fc6dc0d395112da554b0) > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.2.git/?a=commit;h=b4bd8778947e4f5a1f9bcfbf709d1fb9197c4aa0 --- share/lua/meta/reader/filename.lua |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/lua/meta/reader/filename.lua b/share/lua/meta/reader/filename.lua index 24cf..4b557de 100644 --- a/share/lua/meta/reader/filename.lua +++ b/share/lua/meta/reader/filename.lua @@ -42,7 +42,7 @@ function read_meta() -- Find "Show.Name.S01E12-blah.avi" local title, seasonNumber -_, _, showName, seasonNumber, episodeNumber = string.find(name, "(.+)S(%d%d)E(%d%d).*") +_, _, showName, seasonNumber, episodeNumber = string.find(name, "(.+)S(%d+)E(%d+).*") if not showName then return end ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] filename: episode numbers can have more than 2 digits (fixes #14859)
vlc | branch: master | Rémi Denis-Courmont | Thu Jun 11 18:49:27 2015 +0300| [9ad76e4f4542b0ff4d20fc6dc0d395112da554b0] | committer: Rémi Denis-Courmont filename: episode numbers can have more than 2 digits (fixes #14859) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9ad76e4f4542b0ff4d20fc6dc0d395112da554b0 --- share/lua/meta/reader/filename.lua |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/lua/meta/reader/filename.lua b/share/lua/meta/reader/filename.lua index 24cf..4b557de 100644 --- a/share/lua/meta/reader/filename.lua +++ b/share/lua/meta/reader/filename.lua @@ -42,7 +42,7 @@ function read_meta() -- Find "Show.Name.S01E12-blah.avi" local title, seasonNumber -_, _, showName, seasonNumber, episodeNumber = string.find(name, "(.+)S(%d%d)E(%d%d).*") +_, _, showName, seasonNumber, episodeNumber = string.find(name, "(.+)S(%d+)E(%d+).*") if not showName then return end ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] Mailmap: fix typo
vlc | branch: master | Jean-Baptiste Kempf | Thu Jun 11 17:02:13 2015 +0200| [d2007feb4171dd610951dc7a4d82f00d8c577512] | committer: Jean-Baptiste Kempf Mailmap: fix typo > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d2007feb4171dd610951dc7a4d82f00d8c577512 --- .mailmap |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.mailmap b/.mailmap index 5568ea3..98d2958 100644 --- a/.mailmap +++ b/.mailmap @@ -6,8 +6,8 @@ Jean-Baptiste Kempf -Jean-Baptiste Kempf U-AMBRE\Jean-Baptiste -Jean-Baptiste Kempf U-SASMIRA\jb +Jean-Baptiste Kempf U-AMBRE\Jean-Baptiste +Jean-Baptiste Kempf U-SASMIRA\jb ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: mp4: validate smooth tracks only after init
vlc | branch: master | Francois Cartegnie | Thu Jun 11 16:47:44 2015 +0200| [895d419f056bd6f9bcd1e1cc1d25d32c3db9e13b] | committer: Francois Cartegnie demux: mp4: validate smooth tracks only after init > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=895d419f056bd6f9bcd1e1cc1d25d32c3db9e13b --- modules/demux/mp4/mp4.c |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 2c1a72b..180a5e1 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -3454,7 +3454,7 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Bo if( !p_data ) return VLC_EGENERIC; -p_track->b_ok = true; +p_track->b_ok = false; p_track->b_selected = false; p_track->i_sample_count = UINT32_MAX; @@ -3533,6 +3533,8 @@ static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Bo break; } +p_track->b_ok = true; + return VLC_SUCCESS; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: mp4: fix track creation
vlc | branch: master | Francois Cartegnie | Thu Jun 11 16:19:52 2015 +0200| [be5bf637fd8e92a49b6dccc1f98d9bf0c553684f] | committer: Francois Cartegnie demux: mp4: fix track creation Could have been at least some leaks, and some nasty things due to smooth box handling. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=be5bf637fd8e92a49b6dccc1f98d9bf0c553684f --- modules/demux/mp4/mp4.c | 58 ++- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index f07b021..188bda3 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -376,50 +376,57 @@ LoadInitFragError: return VLC_EGENERIC; } -static int InitTracks( demux_t *p_demux ) +static int AllocateTracks( demux_t *p_demux, unsigned i_tracks ) { demux_sys_t *p_sys = p_demux->p_sys; -p_sys->track = calloc( p_sys->i_tracks, sizeof( mp4_track_t ) ); +p_sys->track = calloc( i_tracks, sizeof( mp4_track_t ) ); if( p_sys->track == NULL ) -return VLC_EGENERIC; +return VLC_ENOMEM; +p_sys->i_tracks = i_tracks; if( p_sys->b_fragmented ) { -mp4_track_t *p_track; -for( uint16_t i = 0; i < p_sys->i_tracks; i++ ) +for( unsigned i = 0; i < i_tracks; i++ ) { -p_track = &p_sys->track[i]; +mp4_track_t *p_track = &p_sys->track[i]; p_track->cchunk = calloc( 1, sizeof( mp4_chunk_t ) ); if( unlikely( !p_track->cchunk ) ) -{ -free( p_sys->track ); -return VLC_EGENERIC; -} +return VLC_ENOMEM; } } return VLC_SUCCESS; } -static void CreateTracksFromSmooBox( demux_t *p_demux ) +static int CreateTracksFromSmooBox( demux_t *p_demux ) { demux_sys_t *p_sys = p_demux->p_sys; MP4_Box_t *p_smoo = MP4_BoxGet( p_sys->p_root, "uuid" ); -mp4_track_t *p_track; -int j = 0; -for( int i = 0; i < 3; i++ ) +if( CmpUUID( &p_smoo->i_uuid, &SmooBoxUUID ) ) +return VLC_EGENERIC; + +/* Smooth tracks are stra UUID box below smooth UUID box */ +const unsigned i_tracks = MP4_BoxCount( p_smoo, "uuid" ); + +if( AllocateTracks( p_demux, i_tracks ) != VLC_SUCCESS ) +return VLC_EGENERIC; + +unsigned j = 0; +MP4_Box_t *p_stra = MP4_BoxGet( p_smoo, "uuid" ); +while( p_stra && j < p_sys->i_tracks ) { -MP4_Box_t *p_stra = MP4_BoxGet( p_smoo, "uuid[%d]", i ); -if( !p_stra || !BOXDATA(p_stra) || BOXDATA(p_stra)->i_track_ID == 0 ) -continue; -else +if( !CmpUUID( &p_stra->i_uuid, &StraBoxUUID ) && +BOXDATA(p_stra) && BOXDATA(p_stra)->i_track_ID > 0 ) { -p_track = &p_sys->track[j]; j++; +mp4_track_t *p_track = &p_sys->track[j++]; MP4_frg_TrackCreate( p_demux, p_track, p_stra ); p_track->p_es = es_out_Add( p_demux->out, &p_track->fmt ); } +p_stra = p_stra->p_next; } + +return VLC_SUCCESS; } static block_t * MP4_EIA608_Convert( block_t * p_block ) @@ -689,9 +696,9 @@ static int Open( vlc_object_t * p_this ) if( p_sys->b_smooth ) { -if( InitTracks( p_demux ) != VLC_SUCCESS ) +if( CreateTracksFromSmooBox( p_demux ) != VLC_SUCCESS ) goto error; -CreateTracksFromSmooBox( p_demux ); + p_demux->pf_demux = DemuxFrg; msg_Dbg( p_demux, "Set DemuxFrg mode" ); return VLC_SUCCESS; @@ -843,16 +850,15 @@ static int Open( vlc_object_t * p_this ) } } -if( !( p_sys->i_tracks = MP4_BoxCount( p_sys->p_root, "/moov/trak" ) ) ) +const unsigned i_tracks = MP4_BoxCount( p_sys->p_root, "/moov/trak" ); +if( i_tracks < 1 ) { msg_Err( p_demux, "cannot find any /moov/trak" ); goto error; } -msg_Dbg( p_demux, "found %d track%c", -p_sys->i_tracks, -p_sys->i_tracks ? 's':' ' ); +msg_Dbg( p_demux, "found %u track%c", i_tracks, i_tracks ? 's':' ' ); -if( InitTracks( p_demux ) != VLC_SUCCESS ) +if( AllocateTracks( p_demux, i_tracks ) != VLC_SUCCESS ) goto error; /* Search the first chap reference (like quicktime) and ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: mp4: rename confusing MP4_frg_TrackCreate
vlc | branch: master | Francois Cartegnie | Thu Jun 11 16:22:52 2015 +0200| [d62d41d6a43191cb51881101dccb0fd78321f0f0] | committer: Francois Cartegnie demux: mp4: rename confusing MP4_frg_TrackCreate > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d62d41d6a43191cb51881101dccb0fd78321f0f0 --- modules/demux/mp4/mp4.c |8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 188bda3..8554e65 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -116,7 +116,7 @@ struct demux_sys_t * Declaration of local function */ static void MP4_TrackCreate ( demux_t *, mp4_track_t *, MP4_Box_t *, bool b_force_enable ); -static int MP4_frg_TrackCreate( demux_t *, mp4_track_t *, MP4_Box_t *); +static int MP4_SmoothTrackCreate( demux_t *, mp4_track_t *, MP4_Box_t *); static void MP4_TrackDestroy( demux_t *, mp4_track_t * ); static block_t * MP4_Block_Read( demux_t *, const mp4_track_t *, int ); @@ -420,7 +420,7 @@ static int CreateTracksFromSmooBox( demux_t *p_demux ) BOXDATA(p_stra) && BOXDATA(p_stra)->i_track_ID > 0 ) { mp4_track_t *p_track = &p_sys->track[j++]; -MP4_frg_TrackCreate( p_demux, p_track, p_stra ); +MP4_SmoothTrackCreate( p_demux, p_track, p_stra ); p_track->p_es = es_out_Add( p_demux->out, &p_track->fmt ); } p_stra = p_stra->p_next; @@ -3446,7 +3446,7 @@ static inline int MP4_SetCodecExtraData( es_format_t *fmt, MP4_Box_data_stra_t * return VLC_SUCCESS; } -static int MP4_frg_TrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_stra ) +static int MP4_SmoothTrackCreate( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_stra ) { demux_sys_t *p_sys = p_demux->p_sys; int ret; @@ -3628,7 +3628,7 @@ static int ReInitDecoder( demux_t *p_demux, mp4_track_t *p_track ) es_format_Clean( &p_track->fmt ); if( b_smooth ) -MP4_frg_TrackCreate( p_demux, p_track, p_stra ); +MP4_SmoothTrackCreate( p_demux, p_track, p_stra ); else /* DASH */ MP4_TrackCreate( p_demux, p_track, p_trak, true ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: libmp4: fix MP4BoxCount signedness
vlc | branch: master | Francois Cartegnie | Thu Jun 11 16:01:04 2015 +0200| [b9c49f9998d6f56c840bcc65a0e62f7630719002] | committer: Francois Cartegnie demux: libmp4: fix MP4BoxCount signedness > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b9c49f9998d6f56c840bcc65a0e62f7630719002 --- modules/demux/mp4/libmp4.c |4 ++-- modules/demux/mp4/libmp4.h |2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index 140b290..dc606f0 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -4405,10 +4405,10 @@ MP4_Box_t *MP4_BoxGet( MP4_Box_t *p_box, const char *psz_fmt, ... ) * ex: /moov/trak[12] * ../mdia */ -int MP4_BoxCount( MP4_Box_t *p_box, const char *psz_fmt, ... ) +unsigned MP4_BoxCount( MP4_Box_t *p_box, const char *psz_fmt, ... ) { va_list args; -int i_count; +unsigned i_count; MP4_Box_t *p_result, *p_next; va_start( args, psz_fmt ); diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h index 693629d..4e56996 100644 --- a/modules/demux/mp4/libmp4.h +++ b/modules/demux/mp4/libmp4.h @@ -1696,7 +1696,7 @@ MP4_Box_t *MP4_BoxGet( MP4_Box_t *p_box, const char *psz_fmt, ... ); * ex: /moov/trak * ../mdia */ -int MP4_BoxCount( MP4_Box_t *p_box, const char *psz_fmt, ... ); +unsigned MP4_BoxCount( MP4_Box_t *p_box, const char *psz_fmt, ... ); /* Internal functions exposed for MKV demux */ int MP4_PeekBoxHeader( stream_t *p_stream, MP4_Box_t *p_box ); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: mp4: move fragmented duration computation
vlc | branch: master | Francois Cartegnie | Thu Jun 11 16:32:38 2015 +0200| [f3590c78f4434bf0a443382c7c76a8df60a63373] | committer: Francois Cartegnie demux: mp4: move fragmented duration computation tracks aren't init yet, so we can't compute duration when falling back from missing mehd > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f3590c78f4434bf0a443382c7c76a8df60a63373 --- modules/demux/mp4/mp4.c | 34 +- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 8554e65..2c1a72b 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -833,23 +833,6 @@ static int Open( vlc_object_t * p_this ) } } -if ( p_sys->i_overall_duration == 0 ) -{ -/* Try in mehd if fragmented */ -MP4_Box_t *p_mehd = MP4_BoxGet( p_demux->p_sys->p_root, "moov/mvex/mehd"); -if ( p_mehd && p_mehd->data.p_mehd ) -p_sys->i_overall_duration = p_mehd->data.p_mehd->i_fragment_duration; -else -{ -for( i = 0; i < p_sys->i_tracks; i++ ) -{ -mtime_t i_duration = GetTrackDurationInFragment( &p_sys->moovfragment, - p_sys->track[i].i_track_ID ); -p_sys->i_overall_duration = __MAX( p_sys->i_overall_duration, (uint64_t)i_duration ); -} -} -} - const unsigned i_tracks = MP4_BoxCount( p_sys->p_root, "/moov/trak" ); if( i_tracks < 1 ) { @@ -926,6 +909,23 @@ static int Open( vlc_object_t * p_this ) } } +if ( p_sys->i_overall_duration == 0 ) +{ +/* Try in mehd if fragmented */ +MP4_Box_t *p_mehd = MP4_BoxGet( p_demux->p_sys->p_root, "moov/mvex/mehd"); +if ( p_mehd && p_mehd->data.p_mehd ) +p_sys->i_overall_duration = p_mehd->data.p_mehd->i_fragment_duration; +else +{ +for( i = 0; i < p_sys->i_tracks; i++ ) +{ +mtime_t i_duration = GetTrackDurationInFragment( &p_sys->moovfragment, + p_sys->track[i].i_track_ID ); +p_sys->i_overall_duration = __MAX( p_sys->i_overall_duration, (uint64_t)i_duration ); +} +} +} + #ifdef MP4_VERBOSE mtime_t i_total_duration = 0; mp4_fragment_t *p_fragment = &p_sys->moovfragment; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: mp4: fix smooth extradata size
vlc | branch: master | Francois Cartegnie | Thu Jun 11 16:49:16 2015 +0200| [207c1d2a79ffd2d6da73a2bfc5d08b114d85a45c] | committer: Francois Cartegnie demux: mp4: fix smooth extradata size > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=207c1d2a79ffd2d6da73a2bfc5d08b114d85a45c --- modules/demux/mp4/mp4.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c index 180a5e1..b50beca 100644 --- a/modules/demux/mp4/mp4.c +++ b/modules/demux/mp4/mp4.c @@ -3438,10 +3438,10 @@ static int build_raw_avcC( uint8_t **p_extra, const uint8_t *CodecPrivateData, static inline int MP4_SetCodecExtraData( es_format_t *fmt, MP4_Box_data_stra_t *p_data ) { -fmt->i_extra = p_data->cpd_len; fmt->p_extra = malloc( p_data->cpd_len ); if( unlikely( !fmt->p_extra ) ) return VLC_ENOMEM; +fmt->i_extra = p_data->cpd_len; memcpy( fmt->p_extra, p_data->CodecPrivateData, p_data->cpd_len ); return VLC_SUCCESS; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] fourcc: add missing smooth streaming codec aliases
vlc | branch: master | Francois Cartegnie | Thu Jun 11 13:22:52 2015 +0200| [0d8babb9f4c0b7acc88d65ec621ba434202fcb89] | committer: Francois Cartegnie fourcc: add missing smooth streaming codec aliases > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0d8babb9f4c0b7acc88d65ec621ba434202fcb89 --- src/misc/fourcc.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/src/misc/fourcc.c b/src/misc/fourcc.c index 69b47a7..63e36f5 100644 --- a/src/misc/fourcc.c +++ b/src/misc/fourcc.c @@ -287,6 +287,7 @@ static const staticentry_t p_list_video[] = { /* avc1: special case h264 */ A("avc1"), A("AVC1"), +A("AVCB"), /* smooth streaming alias */ A("avc3"), E("ai5p", "AVC-Intra 50M 720p24/30/60"), E("ai5q", "AVC-Intra 50M 720p25/50"), @@ -1235,6 +1236,7 @@ static const staticentry_t p_list_audio[] = { A("aac "), A("AACL"), A("AACH"), +A("AACP"), /* smooth streaming alias */ /* ALS audio */ B(VLC_CODEC_ALS, "MPEG-4 Audio Lossless (ALS)"), ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits