[vlc-commits] win32 packaging: do not fail if shared libraries do not exist
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
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
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)
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
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.
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)
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
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)
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
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
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
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)
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
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
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
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
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