Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (11)
Showing
with 31 additions and 26 deletions
......@@ -255,6 +255,8 @@ struct subpicture_t
will be displayed until the next one appears
or if i_stop is reached when it is valid */
bool b_fade; /**< enable fading */
bool b_subtitle; /**< subtitle with timestamps relative to
the video */
/**@}*/
/** \name Display properties
......@@ -262,7 +264,6 @@ struct subpicture_t
* changed by the video output thread, or simply ignored depending of the
* subtitle type. */
/**@{*/
bool b_subtitle; /**< the picture is a movie subtitle */
unsigned i_original_picture_width; /**< original width of the movie */
unsigned i_original_picture_height;/**< original height of the movie */
int i_alpha; /**< transparency */
......
......@@ -263,7 +263,7 @@ static subpicture_t *render( decoder_t *p_dec, arib_parser_t *p_parser,
vlc_tick_t i_duration = VLC_TICK_FROM_US(arib_decoder_get_time( p_arib_decoder ));
p_spu->i_start = p_block->i_pts;
p_spu->i_stop = i_duration ? p_block->i_pts + i_duration : 0;
p_spu->i_stop = i_duration ? p_block->i_pts + i_duration : VLC_TICK_INVALID;
p_spu->b_ephemer = i_duration == 0;
arib_spu_updater_sys_t *p_spu_sys = p_spu->updater.sys;
......
......@@ -2011,7 +2011,8 @@ static block_t *Encode( encoder_t *p_enc, subpicture_t *p_subpic )
bs_write( s, 8, 0xff );/* End marker */
p_block->i_buffer = bs_pos( s ) / 8;
p_block->i_pts = p_block->i_dts = p_subpic->i_start;
if( !p_subpic->b_ephemer && ( p_subpic->i_stop > p_subpic->i_start ) )
if( !p_subpic->b_ephemer &&
( p_subpic->i_stop != VLC_TICK_INVALID && p_subpic->i_stop > p_subpic->i_start ) )
{
block_t *p_block_stop;
......@@ -2108,7 +2109,7 @@ static void encode_page_composition( encoder_t *p_enc, bs_t *s,
i_timeout = 0;
if( p_subpic && !p_subpic->b_ephemer &&
( p_subpic->i_stop > p_subpic->i_start ) )
( p_subpic->i_stop != VLC_TICK_INVALID && p_subpic->i_stop > p_subpic->i_start ) )
{
i_timeout = SEC_FROM_VLC_TICK(p_subpic->i_stop - p_subpic->i_start);
}
......@@ -2650,4 +2651,3 @@ static void default_dds_init( decoder_t * p_dec )
p_sys->display.i_height_minus1 = 576-1;
p_sys->display.b_windowed = false;
}
......@@ -210,7 +210,8 @@ static void OutputPicture( decoder_t *p_dec,
p_spu->b_ephemer = p_spu_properties->b_ephemer;
p_spu->b_subtitle = p_spu_properties->b_subtitle;
if( p_spu->i_stop <= p_spu->i_start && !p_spu->b_ephemer )
if( (p_spu->i_stop == VLC_TICK_INVALID || p_spu->i_stop <= p_spu->i_start) &&
!p_spu->b_ephemer )
{
/* This subtitle will live for 5 seconds or until the next subtitle */
p_spu->i_stop = p_spu->i_start + VLC_TICK_FROM_MS(500 * 11);
......
......@@ -419,7 +419,7 @@ static int Decode(decoder_t *p_dec, block_t *p_block)
{
p_sub->i_start = p_block->i_pts;
p_sub->i_stop = p_block->i_pts + p_block->i_length;
p_sub->b_ephemer = (p_block->i_length == VLC_TICK_INVALID);
p_sub->b_ephemer = (p_block->i_length == 0);
}
decoder_QueueSub(p_dec, p_sub);
}
......
......@@ -454,7 +454,7 @@ static subpicture_t *ParseText( decoder_t *p_dec, block_t *p_block )
}
p_spu->i_start = p_block->i_pts;
p_spu->i_stop = p_block->i_pts + p_block->i_length;
p_spu->b_ephemer = (p_block->i_length == VLC_TICK_INVALID);
p_spu->b_ephemer = (p_block->i_length == 0);
subtext_updater_sys_t *p_spu_sys = p_spu->updater.sys;
......
......@@ -413,7 +413,7 @@ static int Decode( decoder_t *p_dec, block_t *p_block )
p_spu->i_start = p_block->i_pts;
p_spu->i_stop = p_block->i_pts + p_block->i_length;
p_spu->b_ephemer = (p_block->i_length == VLC_TICK_INVALID);
p_spu->b_ephemer = (p_block->i_length == 0);
p_spu_sys->region.b_absolute = false;
p_spu_sys->region.align = SUBPICTURE_ALIGN_BOTTOM;
......
......@@ -262,7 +262,7 @@ static subpicture_t *ParseText( decoder_t *p_dec, block_t *p_block )
p_spu->i_start = p_block->i_pts;
p_spu->i_stop = p_block->i_pts + p_block->i_length;
p_spu->b_ephemer = (p_block->i_length == VLC_TICK_INVALID);
p_spu->b_ephemer = (p_block->i_length == 0);
if (p_sys->i_original_width > 0 && p_sys->i_original_height > 0)
{
p_spu->i_original_picture_width = p_sys->i_original_width;
......
......@@ -117,7 +117,8 @@ static block_t *Encode( encoder_t *p_enc, subpicture_t *p_spu )
p_block->p_buffer[p_block->i_buffer] = 0;
p_block->i_pts = p_block->i_dts = p_spu->i_start;
if( !p_spu->b_ephemer && ( p_spu->i_stop > p_spu->i_start ) )
if( !p_spu->b_ephemer &&
( p_spu->i_stop != VLC_TICK_INVALID && p_spu->i_stop > p_spu->i_start ) )
p_block->i_length = p_spu->i_stop - p_spu->i_start;
return p_block;
......
......@@ -202,7 +202,7 @@ static block_t *Encode( encoder_t *p_enc, subpicture_t *p_spu )
if( p_block )
{
p_block->i_dts = p_block->i_pts = VLC_TICK_0 + p_spu->i_start;
if( p_spu->i_stop > p_spu->i_start )
if( p_spu->i_stop != VLC_TICK_INVALID && p_spu->i_stop > p_spu->i_start )
p_block->i_length = p_spu->i_stop - p_spu->i_start;
}
}
......
......@@ -237,7 +237,7 @@ static block_t *Encode( encoder_t *p_enc, subpicture_t *p_spu )
if( p_block )
{
p_block->i_pts = p_block->i_dts = p_spu->i_start;
if( p_spu->i_stop > p_spu->i_start )
if( p_spu->i_stop != VLC_TICK_INVALID && p_spu->i_stop > p_spu->i_start )
p_block->i_length = p_spu->i_stop - p_spu->i_start;
}
......
......@@ -582,7 +582,7 @@ static subpicture_t *Subpicture( decoder_t *p_dec,
}
else
{
p_spu->i_stop = 0;
p_spu->i_stop = VLC_TICK_INVALID;
p_region->b_absolute = true;
p_region->i_align = i_align;
// bottom center based on "vbi-position"
......
......@@ -872,7 +872,7 @@ static int Demux( demux_t *p_demux )
{
p_block->i_dts =
p_block->i_pts = VLC_TICK_0 + p_subtitle->i_start * p_sys->f_rate;
if( p_subtitle->i_stop >= 0 && p_subtitle->i_stop >= p_subtitle->i_start )
if( p_subtitle->i_stop != VLC_TICK_INVALID && p_subtitle->i_stop >= p_subtitle->i_start )
p_block->i_length = (p_subtitle->i_stop - p_subtitle->i_start) * p_sys->f_rate;
es_out_Send( p_demux->out, p_sys->es, p_block );
......@@ -1032,7 +1032,7 @@ static int ParseMicroDvd( vlc_object_t *p_obj, subs_properties_t *p_props,
/* */
p_subtitle->i_start = VLC_TICK_0 + i_start * p_props->i_microsecperframe;
p_subtitle->i_stop = i_stop >= 0 ? (VLC_TICK_0 + i_stop * p_props->i_microsecperframe) : -1;
p_subtitle->i_stop = i_stop >= 0 ? (VLC_TICK_0 + i_stop * p_props->i_microsecperframe) : VLC_TICK_INVALID;
p_subtitle->psz_text = psz_text;
return VLC_SUCCESS;
}
......@@ -1578,7 +1578,7 @@ static int ParseMPL2(vlc_object_t *p_obj, subs_properties_t *p_props,
sscanf( s, "[%d][%d] %[^\r\n]", &i_start, &i_stop, psz_text ) == 3)
{
p_subtitle->i_start = VLC_TICK_0 + VLC_TICK_FROM_MS(i_start * 100);
p_subtitle->i_stop = i_stop >= 0 ? VLC_TICK_0 + VLC_TICK_FROM_MS(i_stop * 100) : -1;
p_subtitle->i_stop = i_stop >= 0 ? VLC_TICK_0 + VLC_TICK_FROM_MS(i_stop * 100) : VLC_TICK_INVALID;
break;
}
free( psz_text );
......
......@@ -363,7 +363,7 @@ static subpicture_t *FilterSub(filter_t *p_filter, vlc_tick_t date)
goto exit;
p_spu->i_start = date;
p_spu->i_stop = 0;
p_spu->i_stop = VLC_TICK_INVALID;
p_spu->b_ephemer = true;
/* Send an empty subpicture to clear the display when needed */
......
......@@ -347,7 +347,7 @@ static subpicture_t *Filter( filter_t *p_filter, vlc_tick_t date )
return NULL;
p_spu->i_start = date;
p_spu->i_stop = 0;
p_spu->i_stop = VLC_TICK_INVALID;
p_spu->b_ephemer = true;
vlc_vector_foreach(p_overlay, &p_sys->overlays)
......
......@@ -346,7 +346,7 @@ static subpicture_t *FilterSub( filter_t *p_filter, vlc_tick_t date )
goto exit;
p_spu->i_start = date;
p_spu->i_stop = 0;
p_spu->i_stop = VLC_TICK_INVALID;
p_spu->b_ephemer = true;
/* Send an empty subpicture to clear the display when needed */
......
......@@ -298,7 +298,7 @@ static subpicture_t *Filter( filter_t *p_filter, vlc_tick_t date )
p_region->p_text = text_segment_New( msg );
p_spu->i_start = date;
p_spu->i_stop = p_sys->i_timeout == 0 ? 0 : date + p_sys->i_timeout;
p_spu->i_stop = p_sys->i_timeout == 0 ? VLC_TICK_INVALID : date + p_sys->i_timeout;
p_spu->b_ephemer = true;
/* where to locate the string: */
......
......@@ -458,7 +458,7 @@ static subpicture_t *Filter( filter_t *p_filter, vlc_tick_t date )
/* Initialize subpicture */
p_spu->i_channel = 0;
p_spu->i_start = date;
p_spu->i_stop = 0;
p_spu->i_stop = VLC_TICK_INVALID;
p_spu->b_ephemer = true;
p_spu->i_alpha = p_sys->i_alpha;
......
......@@ -477,7 +477,7 @@ static subpicture_t *Filter( filter_t *p_filter, vlc_tick_t date )
if( p_sys->p_style->i_font_size > 0 )
region->fmt.i_visible_height = p_sys->p_style->i_font_size;
p_spu->i_start = date;
p_spu->i_stop = 0;
p_spu->i_stop = VLC_TICK_INVALID;
p_spu->b_ephemer = true;
/* where to locate the string: */
......
......@@ -875,8 +875,10 @@ spu_SelectSubpictures(spu_t *spu, vlc_tick_t system_now,
/* If the spu is ephemer, the stop time is invalid, but it has been converted to
system time and used in comparisons below */
const bool is_stop_valid = !current->b_ephemer || render_entry->orgstop > render_entry->orgstart;
render_entry->is_late = is_stop_valid && current->i_stop <= render_date;
const bool is_stop_valid = !current->b_ephemer ||
(render_entry->orgstop != VLC_TICK_INVALID && render_entry->orgstop > render_entry->orgstart);
render_entry->is_late = is_stop_valid &&
(current->i_stop == VLC_TICK_INVALID || current->i_stop <= render_date);
/* start_date will be used for correct automatic overlap support
* in case picture that should not be displayed anymore (display_time)
......@@ -2149,7 +2151,7 @@ void spu_PutSubpicture(spu_t *spu, subpicture_t *subpic)
/* An ephemer with stop time can be ephemer,
but a pic without stop time must be ephemer */
if(subpic->i_stop < subpic->i_start)
if(subpic->i_stop != VLC_TICK_INVALID && subpic->i_stop < subpic->i_start)
subpic->b_ephemer = true;
if (spu_channel_Push(channel, subpic, orgstart, orgstop))
......