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
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
  • b.sullender/vlc
  • hulxv/vlc
  • zyad-ayad/vlc
  • shocknovaa/vlc
  • gremlinflat/vlc
  • Pratham24D/vlc
  • hmaarrfk/vlc
412 results
Show changes
Commits on Source (3)
......@@ -235,6 +235,8 @@ var_Read_float(const char *psz)
X(can_record, bool, add_bool, Bool, true, NO_FREE) \
X(error, bool, add_bool, Bool, false, NO_FREE) \
X(pts_delay, vlc_tick_t, add_integer, Unsigned, DEFAULT_PTS_DELAY, NO_FREE) \
X(pts_offset, vlc_tick_t, add_integer, Unsigned, 0, NO_FREE) \
X(time_offset, vlc_tick_t, add_integer, Ssize, 0, NO_FREE) \
X(discontinuities, char *, add_string, String, NULL, FREE_CB) \
X(config, char *, add_string, String, NULL, FREE_CB)
......@@ -300,7 +302,7 @@ struct demux_sys
{
mock_track_vector tracks;
vlc_tick_t pts;
vlc_tick_t clock;
vlc_tick_t audio_pts;
vlc_tick_t video_pts;
......@@ -506,7 +508,7 @@ Control(demux_t *demux, int query, va_list args)
if (new_title >= sys->title_count)
return VLC_EGENERIC;
sys->current_title = new_title;
sys->pts = sys->audio_pts = sys->video_pts = VLC_TICK_0;
sys->clock = sys->audio_pts = sys->video_pts = VLC_TICK_0 + sys->pts_offset;
sys->updates |= INPUT_UPDATE_TITLE;
return VLC_SUCCESS;
}
......@@ -517,8 +519,8 @@ Control(demux_t *demux, int query, va_list args)
const int seekpoint_idx = va_arg(args, int);
if (seekpoint_idx < sys->chapter_count)
{
sys->pts = sys->audio_pts = sys->video_pts =
(seekpoint_idx * sys->chapter_gap) + VLC_TICK_0;
sys->clock = sys->audio_pts = sys->video_pts =
(seekpoint_idx * sys->chapter_gap) + sys->pts_offset + VLC_TICK_0;
sys->current_chapter = seekpoint_idx;
return VLC_SUCCESS;
}
......@@ -546,24 +548,27 @@ Control(demux_t *demux, int query, va_list args)
}
return VLC_EGENERIC;
case DEMUX_GET_POSITION:
*va_arg(args, double *) = sys->pts / (double) sys->length;
*va_arg(args, double *) = (sys->clock - VLC_TICK_0 - sys->pts_offset) / (double) sys->length;
return VLC_SUCCESS;
case DEMUX_SET_POSITION:
if (!sys->can_seek)
return VLC_EGENERIC;
sys->pts = sys->video_pts = sys->audio_pts =
VLC_TICK_0 + va_arg(args, double) * sys->length;
sys->clock = sys->video_pts = sys->audio_pts =
VLC_TICK_0 + sys->pts_offset + va_arg(args, double) * sys->length;
return VLC_SUCCESS;
case DEMUX_GET_LENGTH:
*va_arg(args, vlc_tick_t *) = sys->length;
return VLC_SUCCESS;
case DEMUX_GET_NORMAL_TIME:
*va_arg(args, vlc_tick_t *) = VLC_TICK_0 + sys->pts_offset;
return VLC_SUCCESS;
case DEMUX_GET_TIME:
*va_arg(args, vlc_tick_t *) = sys->pts;
*va_arg(args, vlc_tick_t *) = sys->time_offset + sys->clock - VLC_TICK_0 - sys->pts_offset;
return VLC_SUCCESS;
case DEMUX_SET_TIME:
if (!sys->can_seek)
return VLC_EGENERIC;
sys->pts = sys->video_pts = sys->audio_pts = va_arg(args, vlc_tick_t);
sys->clock = sys->video_pts = sys->audio_pts = va_arg(args, vlc_tick_t) + VLC_TICK_0 + sys->time_offset;
return VLC_SUCCESS;
case DEMUX_GET_TITLE_INFO:
if (sys->title_count > 0)
......@@ -809,7 +814,7 @@ CheckAndCreateTracksEs(demux_t *demux, vlc_tick_t pts, bool *created)
{
if (track->id ||
(track->video.add_track_at != VLC_TICK_INVALID &&
pts < track->video.add_track_at))
(pts - VLC_TICK_0 - sys->pts_offset) < track->video.add_track_at))
continue;
track->id = es_out_Add(demux->out, & track->fmt);
if (!track->id)
......@@ -1208,35 +1213,35 @@ Demux(demux_t *demux)
/* Add late tracks if any */
bool created;
ret = CheckAndCreateTracksEs(demux, sys->pts, &created);
ret = CheckAndCreateTracksEs(demux, sys->clock, &created);
if (ret != VLC_SUCCESS)
return VLC_DEMUXER_EGENERIC;
if (sys->pcr_points.size > sys->next_pcr_index)
{
const struct pcr_point *pt = &sys->pcr_points.data[sys->next_pcr_index];
if (sys->pts >= pt->oldpcr)
if (sys->clock >= pt->oldpcr)
{
sys->audio_pts = sys->video_pts = sys->pts = pt->newpcr;
sys->audio_pts = sys->video_pts = sys->clock = pt->newpcr;
sys->next_pcr_index++;
}
}
vlc_tick_t prev_pts = sys->pts;
vlc_tick_t prev_pts = sys->clock;
if (sys->audio_track_count > 0
&& (sys->video_track_count > 0 || sys->sub_track_count > 0))
sys->pts = __MIN(sys->audio_pts, sys->video_pts);
sys->clock = __MIN(sys->audio_pts, sys->video_pts);
else if (sys->audio_track_count > 0)
sys->pts = sys->audio_pts;
sys->clock = sys->audio_pts;
else if (sys->video_track_count > 0 || sys->sub_track_count > 0)
sys->pts = sys->video_pts;
sys->clock = sys->video_pts;
if (sys->pts > sys->length)
sys->pts = sys->length;
if (sys->clock > VLC_TICK_0 + sys->pts_offset + sys->length)
sys->clock = VLC_TICK_0 + sys->pts_offset + sys->length;
if (sys->chapter_gap > 0)
{
int chapter_index = sys->pts / sys->chapter_gap;
int chapter_index = (sys->clock - VLC_TICK_0 - sys->pts_offset) / sys->chapter_gap;
if (chapter_index != sys->current_chapter)
{
sys->updates |= INPUT_UPDATE_SEEKPOINT;
......@@ -1247,12 +1252,12 @@ Demux(demux_t *demux)
if (!sys->can_control_pace)
{
/* Simulate a live input */
vlc_tick_t delay = sys->pts - prev_pts;
vlc_tick_t delay = sys->clock - prev_pts;
delay = delay - delay / 1000 /* Sleep a little less */;
vlc_tick_sleep(delay);
}
es_out_SetPCR(demux->out, sys->pts);
es_out_SetPCR(demux->out, sys->clock);
const vlc_tick_t video_step_length =
(sys->video_track_count > 0 || sys->sub_track_count > 0) ?
......@@ -1268,8 +1273,8 @@ Demux(demux_t *demux)
if (sys->audio_track_count > 0)
{
ret = DemuxAudio(demux, audio_step_length,
__MIN(step_length + sys->audio_pts, sys->length));
if (sys->audio_pts + audio_step_length < sys->length)
__MIN(step_length + sys->audio_pts - VLC_TICK_0, sys->length));
if (sys->audio_pts - VLC_TICK_0 + audio_step_length <= sys->length)
eof = false;
}
......@@ -1277,16 +1282,16 @@ Demux(demux_t *demux)
&& (sys->video_track_count > 0 || sys->sub_track_count > 0))
{
ret = DemuxVideo(demux, video_step_length,
__MIN(step_length + sys->video_pts, sys->length));
if (sys->video_pts + video_step_length < sys->length)
__MIN(step_length + sys->video_pts - VLC_TICK_0 - sys->pts_offset, sys->length));
if (sys->video_pts - VLC_TICK_0 - sys->pts_offset + video_step_length < sys->length)
eof = false;
}
/* No audio/video/sub: simulate that we read some inputs */
if (step_length == 0)
{
sys->pts += sys->input_sample_length;
if (sys->pts + sys->input_sample_length < sys->length)
sys->clock += sys->input_sample_length;
if (sys->clock - VLC_TICK_0 - sys->pts_offset + sys->input_sample_length < sys->length)
eof = false;
}
......@@ -1535,8 +1540,8 @@ ParseDiscontinuities(demux_t *demux)
assert(index < pcr_count);
struct pcr_point *point = &sys->pcr_points.data[index++];
point->oldpcr = oldpcrval;
point->newpcr = newpcrval;
point->oldpcr = VLC_TICK_0 + oldpcrval;
point->newpcr = VLC_TICK_0 + newpcrval;
}
return VLC_SUCCESS;
......@@ -1705,7 +1710,7 @@ Open(vlc_object_t *obj)
if (CheckAndCreateTracksEs(demux, VLC_TICK_0, &created) != VLC_SUCCESS)
goto error;
sys->pts = sys->audio_pts = sys->video_pts = VLC_TICK_0;
sys->clock = sys->audio_pts = sys->video_pts = VLC_TICK_0 + sys->pts_offset;
sys->current_title = 0;
sys->chapter_gap = sys->chapter_count > 0 ?
(sys->length / sys->chapter_count) : VLC_TICK_INVALID;
......
......@@ -3006,9 +3006,9 @@ test_clock_discontinuities(struct ctx *ctx)
vlc_player_CondWait(player, &ctx->wait);
assert(vec->data[0] == VLC_TICK_0); /* Initial PTS */
assert(vec->data[1] == 2); /* 1st discontinuity */
assert(vec->data[2] == 2500000); /* 2nd discontinuity */
assert(vec->data[3] == 10000000); /* 3rd discontinuity */
assert(vec->data[1] == VLC_TICK_0 + 2); /* 1st discontinuity */
assert(vec->data[2] == VLC_TICK_0 + 2500000); /* 2nd discontinuity */
assert(vec->data[3] == VLC_TICK_0 + 10000000); /* 3rd discontinuity */
test_end(ctx);
}
......