[vlc-commits] win32 packaging: do not fail if shared libraries do not exist

2014-09-22 Thread Rafaël Carré
vlc/vlc-2.1 | branch: master | Rafaël Carré  | Mon Apr 14 
10:32:05 2014 +0200| [1cdca8615dd69237d229550d4b770e18558722d5] | committer: 
Rafaël Carré

win32 packaging: do not fail if shared libraries do not exist

(cherry picked from commit 3b33df911c5c9e7d035df6212487c7fa9b70fd66)
Signed-off-by: Rafaël Carré 

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

 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 6553d26..0cabf3c 100644
--- a/extras/package/win32/package.mak
+++ b/extras/package/win32/package.mak
@@ -62,7 +62,7 @@ endif
 # Compiler shared DLLs, when using compilers built with --enable-shared
 # The shared DLLs may not necessarily be in the first LIBRARY_PATH, we
 # should check them all.
-   library_path_list=`$(CXX) -v /dev/null 2>&1 | grep ^LIBRARY_PATH|cut 
-d= -f2` ;\
+   -library_path_list=`$(CXX) -v /dev/null 2>&1 | grep ^LIBRARY_PATH|cut 
-d= -f2` ;\
IFS=':' ;\
for x in $$library_path_list ;\
do \

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


[vlc-commits] input: Tag attachments with the demuxer that produced them

2014-09-22 Thread Timothy B. Terriberry
vlc/vlc-2.2 | branch: master | Timothy B. Terriberry  | Sat 
Sep 20 10:16:33 2014 -0700| [46613a9d6b7f725038764b7615c2122e472aa481] | 
committer: Jean-Baptiste Kempf

input: Tag attachments with the demuxer that produced them

This way, when metadata is updated, we only replace the attachments
produced by the demuxer whose metadata changed.

Fixes #11976

Tested by reverting the patch in #11966 (with some fix-ups to pass the
right arguments where the code had changed).

Signed-off-by: Rémi Denis-Courmont 
(cherry picked from commit 223a42c1ec748dd5a0b338c90c571a37483f3297)
Signed-off-by: Jean-Baptiste Kempf 

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

 src/input/input.c  |   46 +++-
 src/input/input_internal.h |1 +
 2 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/src/input/input.c b/src/input/input.c
index 8affd94..41c1a99 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -98,8 +98,8 @@ static void InputGetExtraFiles( input_thread_t *p_input,
 int *pi_list, char ***pppsz_list,
 const char *psz_access, const char *psz_path );
 
-static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment,
-  int i_new, input_attachment_t **pp_new );
+static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment, demux_t ***ppp_attachment_demux,
+  int i_new, input_attachment_t **pp_new, demux_t 
*p_demux );
 
 enum {
 SUB_NOFLAG = 0x00,
@@ -342,6 +342,7 @@ static input_thread_t *Create( vlc_object_t *p_parent, 
input_item_t *p_item,
 memset( &p_input->p->bookmark, 0, sizeof(p_input->p->bookmark) );
 TAB_INIT( p_input->p->i_bookmark, p_input->p->pp_bookmark );
 TAB_INIT( p_input->p->i_attachment, p_input->p->attachment );
+p_input->p->attachment_demux = NULL;
 p_input->p->p_sout   = NULL;
 p_input->p->b_out_pace_control = false;
 
@@ -1406,6 +1407,8 @@ static void End( input_thread_t * p_input )
 for( i = 0; i < p_input->p->i_attachment; i++ )
 vlc_input_attachment_Delete( p_input->p->attachment[i] );
 TAB_CLEAN( p_input->p->i_attachment, p_input->p->attachment );
+free( p_input->p->attachment_demux);
+p_input->p->attachment_demux = NULL;
 }
 vlc_mutex_unlock( &p_input->p->p_item->lock );
 
@@ -2458,8 +2461,8 @@ static int InputSourceInit( input_thread_t *p_input,
  &attachment, &i_attachment ) )
 {
 vlc_mutex_lock( &p_input->p->p_item->lock );
-AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment,
-  i_attachment, attachment );
+AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment, &p_input->p->attachment_demux,
+  i_attachment, attachment, in->p_demux );
 vlc_mutex_unlock( &p_input->p->p_item->lock );
 }
 
@@ -2560,8 +2563,8 @@ static void InputSourceMeta( input_thread_t *p_input,
 if( p_demux_meta->i_attachments > 0 )
 {
 vlc_mutex_lock( &p_input->p->p_item->lock );
-AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment,
-  p_demux_meta->i_attachments, 
p_demux_meta->attachments );
+AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment, &p_input->p->attachment_demux,
+  p_demux_meta->i_attachments, 
p_demux_meta->attachments, p_demux);
 vlc_mutex_unlock( &p_input->p->p_item->lock );
 }
 module_unneed( p_demux, p_id3 );
@@ -2690,22 +2693,29 @@ static void InputMetaUser( input_thread_t *p_input, 
vlc_meta_t *p_meta )
 }
 }
 
-static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment,
-  int i_new, input_attachment_t **pp_new )
+static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment, demux_t ***ppp_attachment_demux,
+  int i_new, input_attachment_t **pp_new, demux_t 
*p_demux )
 {
 int i_attachment = *pi_attachment;
 input_attachment_t **attachment = *ppp_attachment;
+demux_t **attachment_demux = *ppp_attachment_demux;
 int i;
 
 attachment = xrealloc( attachment,
 sizeof(*attachment) * ( i_attachment + i_new ) );
+attachment_demux = xrealloc( attachment_demux,
+sizeof(*attachment_demux) * ( i_attachment + i_new ) );
 for( i = 0; i < i_new; i++ )
-attachment[i_attachment++] = pp_new[i];
+{
+attachment[i_attachment] = pp_new[i];
+attachment_demux[i_attachment++] = p_demux;
+}
 free( pp_new );
 
 /* */
 *pi_attachment = i_attachment;
 *ppp_attachment = attac

[vlc-commits] input: deduplicate code

2014-09-22 Thread Rémi Denis-Courmont
vlc/vlc-2.2 | branch: master | Rémi Denis-Courmont  | Fri Aug 
15 20:16:58 2014 +0300| [1d1bf7886bb1837579675e259b74c26752d05f04] | committer: 
Jean-Baptiste Kempf

input: deduplicate code

(cherry picked from commit 04a366e3e6d83495c76452c9fdc2bb6e2c869b77)
Signed-off-by: Jean-Baptiste Kempf 

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

 src/input/input.c |   34 +++---
 1 file changed, 15 insertions(+), 19 deletions(-)

diff --git a/src/input/input.c b/src/input/input.c
index 03c9dcf..8affd94 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -93,7 +93,7 @@ static void SlaveDemux( input_thread_t *p_input, bool 
*pb_demux_polled );
 static void SlaveSeek( input_thread_t *p_input );
 
 static void InputMetaUser( input_thread_t *p_input, vlc_meta_t *p_meta );
-static void InputUpdateMeta( input_thread_t *p_input, vlc_meta_t *p_meta );
+static void InputUpdateMeta( input_thread_t *p_input, demux_t *p_demux );
 static void InputGetExtraFiles( input_thread_t *p_input,
 int *pi_list, char ***pppsz_list,
 const char *psz_access, const char *psz_path );
@@ -1961,7 +1961,6 @@ static bool Control( input_thread_t *p_input,
 
 if( slave && !InputSourceInit( p_input, slave, uri, NULL, 
false ) )
 {
-vlc_meta_t *p_meta;
 int64_t i_time;
 
 /* Add the slave */
@@ -1986,12 +1985,7 @@ static bool Control( input_thread_t *p_input,
 }
 
 /* Get meta (access and demux) */
-p_meta = vlc_meta_New();
-if( p_meta )
-{
-demux_Control( slave->p_demux, DEMUX_GET_META, p_meta 
);
-InputUpdateMeta( p_input, p_meta );
-}
+InputUpdateMeta( p_input, slave->p_demux );
 
 TAB_APPEND( p_input->p->i_slave, p_input->p->slave, slave 
);
 }
@@ -2147,12 +2141,7 @@ static void UpdateGenericFromDemux( input_thread_t 
*p_input )
 
 if( p_demux->info.i_update & INPUT_UPDATE_META )
 {
-vlc_meta_t *p_meta = vlc_meta_New();
-if( p_meta )
-{
-demux_Control( p_input->p->input.p_demux, DEMUX_GET_META, p_meta );
-InputUpdateMeta( p_input, p_meta );
-}
+InputUpdateMeta( p_input, p_demux );
 p_demux->info.i_update &= ~INPUT_UPDATE_META;
 }
 {
@@ -2723,15 +2712,21 @@ static void AppendAttachment( int *pi_attachment, 
input_attachment_t ***ppp_atta
  * InputUpdateMeta: merge p_item meta data with p_meta taking care of
  * arturl and locking issue.
  */
-static void InputUpdateMeta( input_thread_t *p_input, vlc_meta_t *p_meta )
+static void InputUpdateMeta( input_thread_t *p_input, demux_t *p_demux )
 {
+vlc_meta_t *p_meta = vlc_meta_New();
+if( unlikely(p_meta == NULL) )
+return;
+
+demux_Control( p_demux, DEMUX_GET_META, p_meta );
+
 /* If metadata changed, then the attachments might have changed.
We need to update them in case they contain album art. */
-input_source_t *in = &p_input->p->input;
-int i_attachment;
 input_attachment_t **attachment;
-if( !demux_Control( in->p_demux, DEMUX_GET_ATTACHMENTS,
- &attachment, &i_attachment ) )
+int i_attachment;
+
+if( !demux_Control( p_demux, DEMUX_GET_ATTACHMENTS,
+&attachment, &i_attachment ) )
 {
 vlc_mutex_lock( &p_input->p->p_item->lock );
 if( p_input->p->i_attachment > 0 )
@@ -2744,6 +2739,7 @@ static void InputUpdateMeta( input_thread_t *p_input, 
vlc_meta_t *p_meta )
   i_attachment, attachment );
 vlc_mutex_unlock( &p_input->p->p_item->lock );
 }
+
 es_out_ControlSetMeta( p_input->p->p_es_out, p_meta );
 vlc_meta_Delete( p_meta );
 }

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


[vlc-commits] packetizer: dirac: block sanitizing must clean reordering (fix #12051)

2014-09-22 Thread Francois Cartegnie
vlc/vlc-2.2 | branch: master | Francois Cartegnie  | Mon Sep 
22 20:12:18 2014 +0200| [55b88a4073c41c263a0d0f310e95fb6082ffece9] | committer: 
Jean-Baptiste Kempf

packetizer: dirac: block sanitizing must clean reordering (fix #12051)

(cherry picked from commit fa551675f5a01fd6bfbe72f670aba67ed061d4fa)
Signed-off-by: Jean-Baptiste Kempf 

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

 modules/packetizer/dirac.c |   30 +-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/modules/packetizer/dirac.c b/modules/packetizer/dirac.c
index 6deec71..71b0b11 100644
--- a/modules/packetizer/dirac.c
+++ b/modules/packetizer/dirac.c
@@ -1179,6 +1179,34 @@ static int dirac_TimeGenPush( decoder_t *p_dec, block_t 
*p_block_in )
 return 0;
 }
 
+
+static void dirac_ReorderDequeueAndReleaseBlock( decoder_t *p_dec, block_t 
*p_block )
+{
+decoder_sys_t *p_sys = p_dec->p_sys;
+/* Check if that block is present in reorder queue and release it
+   if needed */
+struct dirac_reorder_entry **pp_at = &p_sys->reorder_buf.p_head;
+for( ; *pp_at; pp_at = &(*pp_at)->p_next )
+{
+/* backup address in case we remove member */
+struct dirac_reorder_entry *p_entry = *pp_at;
+if ( p_entry->p_eu == p_block )
+{
+/* unlink member */
+*pp_at = (*pp_at)->p_next;
+
+/* Add to empty reorder entry list*/
+p_entry->p_next = p_sys->reorder_buf.p_empty;
+p_sys->reorder_buf.p_empty = p_entry;
+
+p_sys->reorder_buf.u_size--;
+break;
+}
+}
+
+block_Release( p_block );
+}
+
 /*
  * Packetize: form dated encapsulation units from anything
  */
@@ -1307,7 +1335,7 @@ static block_t *Packetize( decoder_t *p_dec, block_t 
**pp_block )
 block_t *p_block_next = p_block->p_next;
 if( p_block->i_pts > VLC_TS_INVALID && p_block->i_dts > 
VLC_TS_INVALID )
 break;
-block_Release( p_block );
+dirac_ReorderDequeueAndReleaseBlock( p_dec, p_block );
 p_sys->p_outqueue = p_block = p_block_next;
 }
 }

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


[vlc-commits] demux: avi:fix block reading

2014-09-22 Thread Francois Cartegnie
vlc/vlc-2.2 | branch: master | Francois Cartegnie  | Thu Sep 
18 23:25:23 2014 +0200| [62dc2df2401d59148074fe930864a00104e87052] | committer: 
Jean-Baptiste Kempf

demux: avi:fix block reading

(cherry picked from commit d4c5f2dcd6a2df117b18422e2c50691e48be9707)
Signed-off-by: Jean-Baptiste Kempf 

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

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

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 3c213e7..989c111 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -1027,7 +1027,7 @@ static int Demux_Seekable( demux_t *p_demux )
 {
 toread[i_track].i_toread = AVI_PTSToByte( tk, llabs( i_dpts ) );
 }
-else
+else if ( i_dpts > -2 * CLOCK_FREQ ) /* don't send a too early dts 
(low fps video) */
 {
 toread[i_track].i_toread = AVI_PTSToChunk( tk, llabs( i_dpts ) );
 }
@@ -1036,6 +1036,8 @@ static int Demux_Seekable( demux_t *p_demux )
 {
 toread[i_track].i_toread *= -1;
 }
+else
+toread[i_track].i_toread = -1;
 }
 
 for( ;; )
@@ -1057,7 +1059,7 @@ static int Demux_Seekable( demux_t *p_demux )
 continue;
 }
 
-if( toread[i].i_toread > 0 )
+if( toread[i].i_toread >= 0 )
 {
 b_done = false; /* not yet finished */
 }

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


[vlc-commits] Extras/tools: ship ragel-6.8-javacodegen.patch in the tarball.

2014-09-22 Thread Konstantin Pavlov
vlc/vlc-2.2 | branch: master | Konstantin Pavlov  | Sun 
Sep 21 20:38:17 2014 +0400| [c9e14c40ae6babc87d0412f95ef1aa1f6643d169] | 
committer: Jean-Baptiste Kempf

Extras/tools: ship ragel-6.8-javacodegen.patch in the tarball.

(cherry picked from commit e23945f09a32dca43b55a1cf67de9375b8d7162f)
Signed-off-by: Jean-Baptiste Kempf 

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

 Makefile.am |3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index 7efa545..b609cc5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -571,7 +571,8 @@ EXTRA_DIST += \
 EXTRA_DIST += \
extras/tools/bootstrap \
extras/tools/packages.mak \
-   extras/tools/tools.mak
+   extras/tools/tools.mak \
+   extras/tools/ragel-6.8-javacodegen.patch
 
 ###
 # Various utilities ( editor syntax files, D-Bus controller ... )

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


[vlc-commits] demux: mp4: fix heap buffer overflow (fix #12266)

2014-09-22 Thread Francois Cartegnie
vlc/vlc-2.2 | branch: master | Francois Cartegnie  | Mon Sep 
22 21:17:40 2014 +0200| [9cd23e9ab6a0d89dd2dca3124c958b8badd2e247] | committer: 
Jean-Baptiste Kempf

demux: mp4: fix heap buffer overflow (fix #12266)

(cherry picked from commit 26258915a956bd1150d4d369d476770af21c71b7)
Signed-off-by: Jean-Baptiste Kempf 

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

 modules/demux/mp4/mp4.c |   13 -
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 824b575..06732ce 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -1747,12 +1747,15 @@ static int TrackCreateChunksIndex( demux_t *p_demux,
 i_last = BOXDATA(p_stsc)->i_first_chunk[i_index] - 1;
 }
 
-p_demux_track->chunk[0].i_sample_first = 0;
-for( i_chunk = 1; i_chunk < p_demux_track->i_chunk_count; i_chunk++ )
+if ( p_demux_track->i_chunk_count )
 {
-p_demux_track->chunk[i_chunk].i_sample_first =
-p_demux_track->chunk[i_chunk-1].i_sample_first +
-p_demux_track->chunk[i_chunk-1].i_sample_count;
+p_demux_track->chunk[0].i_sample_first = 0;
+for( i_chunk = 1; i_chunk < p_demux_track->i_chunk_count; i_chunk++ )
+{
+p_demux_track->chunk[i_chunk].i_sample_first =
+p_demux_track->chunk[i_chunk-1].i_sample_first +
+p_demux_track->chunk[i_chunk-1].i_sample_count;
+}
 }
 
 msg_Dbg( p_demux, "track[Id 0x%x] read %d chunk",

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


[vlc-commits] Fix memory leak when using subtitles with VDPAU

2014-09-22 Thread Devin Heitmueller
vlc/vlc-2.2 | branch: master | Devin Heitmueller  
| Sun Sep 21 12:54:55 2014 -0400| [3b8f453114d554357ad086a49297073a0f7e9dc7] | 
committer: Jean-Baptiste Kempf

Fix memory leak when using subtitles with VDPAU

When rendering closed captions with VDPAU, nothing frees the subpicture,
causing a leak that bleeds all the memory out of the system within
minutes.

Signed-off-by: Rémi Denis-Courmont 
(cherry picked from commit 89089ebc9f7625b7317262803394d96139325e54)
Signed-off-by: Jean-Baptiste Kempf 

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

 modules/hw/vdpau/display.c |6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/modules/hw/vdpau/display.c b/modules/hw/vdpau/display.c
index 3355d7e..68000b7 100644
--- a/modules/hw/vdpau/display.c
+++ b/modules/hw/vdpau/display.c
@@ -315,7 +315,11 @@ static void Wait(vout_display_t *vd, picture_t *pic, 
subpicture_t *subpicture)
 }
 
 sys->current = pic;
-(void) subpicture;
+
+/* We already dealt with the subpicture in the Queue phase, so it's safe to
+   delete at this point */
+if (subpicture)
+subpicture_Delete(subpicture);
 }
 
 static int Control(vout_display_t *vd, int query, va_list ap)

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


[vlc-commits] demux: mp4: fix heap buffer overflow (fix #12266)

2014-09-22 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Mon Sep 22 
21:17:40 2014 +0200| [26258915a956bd1150d4d369d476770af21c71b7] | committer: 
Francois Cartegnie

demux: mp4: fix heap buffer overflow (fix #12266)

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

 modules/demux/mp4/mp4.c |   13 -
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index 8682513..9de642d 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -1762,12 +1762,15 @@ static int TrackCreateChunksIndex( demux_t *p_demux,
 i_last = BOXDATA(p_stsc)->i_first_chunk[i_index] - 1;
 }
 
-p_demux_track->chunk[0].i_sample_first = 0;
-for( i_chunk = 1; i_chunk < p_demux_track->i_chunk_count; i_chunk++ )
+if ( p_demux_track->i_chunk_count )
 {
-p_demux_track->chunk[i_chunk].i_sample_first =
-p_demux_track->chunk[i_chunk-1].i_sample_first +
-p_demux_track->chunk[i_chunk-1].i_sample_count;
+p_demux_track->chunk[0].i_sample_first = 0;
+for( i_chunk = 1; i_chunk < p_demux_track->i_chunk_count; i_chunk++ )
+{
+p_demux_track->chunk[i_chunk].i_sample_first =
+p_demux_track->chunk[i_chunk-1].i_sample_first +
+p_demux_track->chunk[i_chunk-1].i_sample_count;
+}
 }
 
 msg_Dbg( p_demux, "track[Id 0x%x] read %d chunk",

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


[vlc-commits] input: Tag attachments with the demuxer that produced them

2014-09-22 Thread Timothy B. Terriberry
vlc | branch: master | Timothy B. Terriberry  | Sat Sep 20 
10:16:33 2014 -0700| [223a42c1ec748dd5a0b338c90c571a37483f3297] | committer: 
Rémi Denis-Courmont

input: Tag attachments with the demuxer that produced them

This way, when metadata is updated, we only replace the attachments
produced by the demuxer whose metadata changed.

Fixes #11976

Tested by reverting the patch in #11966 (with some fix-ups to pass the
right arguments where the code had changed).

Signed-off-by: Rémi Denis-Courmont 

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

 src/input/input.c  |   46 +++-
 src/input/input_internal.h |1 +
 2 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/src/input/input.c b/src/input/input.c
index 7f916f2..01a8123 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -97,8 +97,8 @@ static void InputGetExtraFiles( input_thread_t *p_input,
 int *pi_list, char ***pppsz_list,
 const char *psz_access, const char *psz_path );
 
-static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment,
-  int i_new, input_attachment_t **pp_new );
+static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment, demux_t ***ppp_attachment_demux,
+  int i_new, input_attachment_t **pp_new, demux_t 
*p_demux );
 
 enum {
 SUB_NOFLAG = 0x00,
@@ -341,6 +341,7 @@ static input_thread_t *Create( vlc_object_t *p_parent, 
input_item_t *p_item,
 memset( &p_input->p->bookmark, 0, sizeof(p_input->p->bookmark) );
 TAB_INIT( p_input->p->i_bookmark, p_input->p->pp_bookmark );
 TAB_INIT( p_input->p->i_attachment, p_input->p->attachment );
+p_input->p->attachment_demux = NULL;
 p_input->p->p_sout   = NULL;
 p_input->p->b_out_pace_control = false;
 
@@ -1399,6 +1400,8 @@ static void End( input_thread_t * p_input )
 for( i = 0; i < p_input->p->i_attachment; i++ )
 vlc_input_attachment_Delete( p_input->p->attachment[i] );
 TAB_CLEAN( p_input->p->i_attachment, p_input->p->attachment );
+free( p_input->p->attachment_demux);
+p_input->p->attachment_demux = NULL;
 }
 vlc_mutex_unlock( &p_input->p->p_item->lock );
 
@@ -2450,8 +2453,8 @@ static int InputSourceInit( input_thread_t *p_input,
  &attachment, &i_attachment ) )
 {
 vlc_mutex_lock( &p_input->p->p_item->lock );
-AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment,
-  i_attachment, attachment );
+AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment, &p_input->p->attachment_demux,
+  i_attachment, attachment, in->p_demux );
 vlc_mutex_unlock( &p_input->p->p_item->lock );
 }
 
@@ -2552,8 +2555,8 @@ static void InputSourceMeta( input_thread_t *p_input,
 if( p_demux_meta->i_attachments > 0 )
 {
 vlc_mutex_lock( &p_input->p->p_item->lock );
-AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment,
-  p_demux_meta->i_attachments, 
p_demux_meta->attachments );
+AppendAttachment( &p_input->p->i_attachment, 
&p_input->p->attachment, &p_input->p->attachment_demux,
+  p_demux_meta->i_attachments, 
p_demux_meta->attachments, p_demux);
 vlc_mutex_unlock( &p_input->p->p_item->lock );
 }
 module_unneed( p_demux, p_id3 );
@@ -2682,22 +2685,29 @@ static void InputMetaUser( input_thread_t *p_input, 
vlc_meta_t *p_meta )
 }
 }
 
-static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment,
-  int i_new, input_attachment_t **pp_new )
+static void AppendAttachment( int *pi_attachment, input_attachment_t 
***ppp_attachment, demux_t ***ppp_attachment_demux,
+  int i_new, input_attachment_t **pp_new, demux_t 
*p_demux )
 {
 int i_attachment = *pi_attachment;
 input_attachment_t **attachment = *ppp_attachment;
+demux_t **attachment_demux = *ppp_attachment_demux;
 int i;
 
 attachment = xrealloc( attachment,
 sizeof(*attachment) * ( i_attachment + i_new ) );
+attachment_demux = xrealloc( attachment_demux,
+sizeof(*attachment_demux) * ( i_attachment + i_new ) );
 for( i = 0; i < i_new; i++ )
-attachment[i_attachment++] = pp_new[i];
+{
+attachment[i_attachment] = pp_new[i];
+attachment_demux[i_attachment++] = p_demux;
+}
 free( pp_new );
 
 /* */
 *pi_attachment = i_attachment;
 *ppp_attachment = attachment;
+*ppp_attachment_demux = attachment_demux;
 }
 
 /

[vlc-commits] Fix memory leak when using subtitles with VDPAU

2014-09-22 Thread Devin Heitmueller
vlc | branch: master | Devin Heitmueller  | Sun 
Sep 21 12:54:55 2014 -0400| [89089ebc9f7625b7317262803394d96139325e54] | 
committer: Rémi Denis-Courmont

Fix memory leak when using subtitles with VDPAU

When rendering closed captions with VDPAU, nothing frees the subpicture,
causing a leak that bleeds all the memory out of the system within
minutes.

Signed-off-by: Rémi Denis-Courmont 

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

 modules/hw/vdpau/display.c |6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/modules/hw/vdpau/display.c b/modules/hw/vdpau/display.c
index e64fc5e..044ac33 100644
--- a/modules/hw/vdpau/display.c
+++ b/modules/hw/vdpau/display.c
@@ -315,7 +315,11 @@ static void Wait(vout_display_t *vd, picture_t *pic, 
subpicture_t *subpicture)
 }
 
 sys->current = pic;
-(void) subpicture;
+
+/* We already dealt with the subpicture in the Queue phase, so it's safe to
+   delete at this point */
+if (subpicture)
+subpicture_Delete(subpicture);
 }
 
 static int Control(vout_display_t *vd, int query, va_list ap)

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


[vlc-commits] demux: avi:fix block reading

2014-09-22 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Thu Sep 18 
23:25:23 2014 +0200| [d4c5f2dcd6a2df117b18422e2c50691e48be9707] | committer: 
Francois Cartegnie

demux: avi:fix block reading

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

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

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index b04e966..2d16936 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -1027,10 +1027,12 @@ static int Demux_Seekable( demux_t *p_demux )
 {
 toread[i_track].i_toread = AVI_PTSToByte( tk, i_dpts );
 }
-else
+else if ( i_dpts > -2 * CLOCK_FREQ ) /* don't send a too early dts 
(low fps video) */
 {
 toread[i_track].i_toread = AVI_PTSToChunk( tk, i_dpts );
 }
+else
+toread[i_track].i_toread = -1;
 }
 
 for( ;; )
@@ -1052,7 +1054,7 @@ static int Demux_Seekable( demux_t *p_demux )
 continue;
 }
 
-if( toread[i].i_toread > 0 )
+if( toread[i].i_toread >= 0 )
 {
 b_done = false; /* not yet finished */
 }

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


[vlc-commits] packetizer: dirac: block sanitizing must clean reordering (fix #12051)

2014-09-22 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Mon Sep 22 
20:12:18 2014 +0200| [fa551675f5a01fd6bfbe72f670aba67ed061d4fa] | committer: 
Francois Cartegnie

packetizer: dirac: block sanitizing must clean reordering (fix #12051)

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

 modules/packetizer/dirac.c |   30 +-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/modules/packetizer/dirac.c b/modules/packetizer/dirac.c
index 6deec71..71b0b11 100644
--- a/modules/packetizer/dirac.c
+++ b/modules/packetizer/dirac.c
@@ -1179,6 +1179,34 @@ static int dirac_TimeGenPush( decoder_t *p_dec, block_t 
*p_block_in )
 return 0;
 }
 
+
+static void dirac_ReorderDequeueAndReleaseBlock( decoder_t *p_dec, block_t 
*p_block )
+{
+decoder_sys_t *p_sys = p_dec->p_sys;
+/* Check if that block is present in reorder queue and release it
+   if needed */
+struct dirac_reorder_entry **pp_at = &p_sys->reorder_buf.p_head;
+for( ; *pp_at; pp_at = &(*pp_at)->p_next )
+{
+/* backup address in case we remove member */
+struct dirac_reorder_entry *p_entry = *pp_at;
+if ( p_entry->p_eu == p_block )
+{
+/* unlink member */
+*pp_at = (*pp_at)->p_next;
+
+/* Add to empty reorder entry list*/
+p_entry->p_next = p_sys->reorder_buf.p_empty;
+p_sys->reorder_buf.p_empty = p_entry;
+
+p_sys->reorder_buf.u_size--;
+break;
+}
+}
+
+block_Release( p_block );
+}
+
 /*
  * Packetize: form dated encapsulation units from anything
  */
@@ -1307,7 +1335,7 @@ static block_t *Packetize( decoder_t *p_dec, block_t 
**pp_block )
 block_t *p_block_next = p_block->p_next;
 if( p_block->i_pts > VLC_TS_INVALID && p_block->i_dts > 
VLC_TS_INVALID )
 break;
-block_Release( p_block );
+dirac_ReorderDequeueAndReleaseBlock( p_dec, p_block );
 p_sys->p_outqueue = p_block = p_block_next;
 }
 }

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


[vlc-commits] demux: avi: simplify dpts code

2014-09-22 Thread Francois Cartegnie
vlc | branch: master | Francois Cartegnie  | Thu Sep 18 
15:17:55 2014 +0200| [5e4b6380fc0468acde12957eb7aa4b9784874565] | committer: 
Francois Cartegnie

demux: avi: simplify dpts code

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

 modules/demux/avi/avi.c |   12 +++-
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/modules/demux/avi/avi.c b/modules/demux/avi/avi.c
index 2b12223..b04e966 100644
--- a/modules/demux/avi/avi.c
+++ b/modules/demux/avi/avi.c
@@ -1006,7 +1006,6 @@ static int Demux_Seekable( demux_t *p_demux )
 for( i_track = 0; i_track < p_sys->i_track; i_track++ )
 {
 avi_track_t *tk = p_sys->track[i_track];
-mtime_t i_dpts;
 
 toread[i_track].b_ok = tk->b_activated && !tk->b_eof;
 if( tk->i_idxposc < tk->idx.i_size )
@@ -1022,20 +1021,15 @@ static int Demux_Seekable( demux_t *p_demux )
 toread[i_track].i_posf = -1;
 }
 
-i_dpts = p_sys->i_time - AVI_GetPTS( tk  );
+mtime_t i_dpts = p_sys->i_time - AVI_GetPTS( tk );
 
 if( tk->i_samplesize )
 {
-toread[i_track].i_toread = AVI_PTSToByte( tk, llabs( i_dpts ) );
+toread[i_track].i_toread = AVI_PTSToByte( tk, i_dpts );
 }
 else
 {
-toread[i_track].i_toread = AVI_PTSToChunk( tk, llabs( i_dpts ) );
-}
-
-if( i_dpts < 0 )
-{
-toread[i_track].i_toread *= -1;
+toread[i_track].i_toread = AVI_PTSToChunk( tk, i_dpts );
 }
 }
 

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


[vlc-commits] rdp: drop bogus non-zero priority

2014-09-22 Thread Rémi Denis-Courmont
vlc | branch: master | Rémi Denis-Courmont  | Mon Sep 22 
21:16:22 2014 +0300| [299de9d9597607b05106c91c1b8b04d382364dbe] | committer: 
Rémi Denis-Courmont

rdp: drop bogus non-zero priority

This plugin does not access local files.

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

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

diff --git a/modules/access/rdp.c b/modules/access/rdp.c
index ed3b9e0..c48ae99 100644
--- a/modules/access/rdp.c
+++ b/modules/access/rdp.c
@@ -83,7 +83,7 @@ vlc_module_begin()
 set_category( CAT_INPUT )
 set_subcategory( SUBCAT_INPUT_ACCESS )
 set_description( N_("RDP Remote Desktop") )
-set_capability( "access_demux", 10 )
+set_capability( "access_demux", 0 )
 
 add_string( CFG_PREFIX "user", NULL, RDP_USER, RDP_USER, false )
 change_safe()

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


[vlc-commits] Update TODO

2014-09-22 Thread Olivier Aubert
vlc/python | branch: master | Olivier Aubert  | Mon 
Sep 22 13:51:43 2014 +0200| [47d3dc21c5e0a793448a139f0dddb3958558f2f6] | 
committer: Olivier Aubert

Update TODO

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

 TODO |5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/TODO b/TODO
index 07ddd07..512143c 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,3 @@
+* Add more test coverage
+* Provide more examples
 * Investigate memory management
-
-* Support multiple VLC versions: define a front-end module which will
-   load the appropriate versionned module from a subdirectory.

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


[vlc-commits] NEWS: update for daala

2014-09-22 Thread Tristan Matthews
vlc | branch: master | Tristan Matthews  | Mon Sep 22 
11:51:17 2014 +0100| [9c8d5afec7e83b117409cb291f923c2cd91dea24] | committer: 
Tristan Matthews

NEWS: update for daala

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

 NEWS |5 +
 1 file changed, 5 insertions(+)

diff --git a/NEWS b/NEWS
index 98b73a0..311d8e1 100644
--- a/NEWS
+++ b/NEWS
@@ -14,13 +14,18 @@ Decoder:
  * Support for ARIB B24 subtitles
  * Support for Daala video
 
+Encoder:
+ * Support for Daala video
+
 Demuxers:
  * Support HD-DVD .evo (H.264, VC-1, MPEG-2, PCM, AC-3, E-AC3, MLP, DTS)
  * Opus in MPEG Transport Stream
+ * Daala in Ogg
 
 Muxers:
  * Added fragmented/streamable MP4 muxer
  * Opus in MPEG Transport Stream
+ * Daala in Ogg
 
 Service Discovery:
  * New NetBios service discovery using libdsm

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