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 (5)
......@@ -256,13 +256,13 @@ static int TOC_GetAudioRange(vcddev_toc_t *p_toc,
int i_last = p_toc->i_last_track;
for(int i=i_first; i<p_toc->i_tracks; i++)
{
if((p_toc->p_sectors[i - 1].i_control & CD_ROM_DATA_FLAG) == 0)
if((p_toc->p_sectors[i - 1].i_control & CD_ROM_SUBCODE_DATA) == 0)
break;
i_first++;
}
for(int i=i_last; i > 0; i--)
{
if((p_toc->p_sectors[i - 1].i_control & CD_ROM_DATA_FLAG) == 0)
if((p_toc->p_sectors[i - 1].i_control & CD_ROM_SUBCODE_DATA) == 0)
break;
i_last--;
}
......@@ -677,24 +677,21 @@ static int ReadDir(stream_t *access, input_item_node_t *node)
const vcddev_toc_t *p_toc = sys->p_toc;
/* Build title table */
const int i_start_cddb_offset = sys->i_cdda_first - sys->p_toc->i_first_track;
const int cdda_offset = sys->i_cdda_first - p_toc->i_first_track;
for (int i = 0; i < sys->i_cdda_tracks; i++)
{
if(i < i_start_cddb_offset)
continue;
msg_Dbg(access, "track[%d] start=%d", i, p_toc->p_sectors[i].i_lba);
msg_Dbg(access, "track[%d] start=%d", i, p_toc->p_sectors[i + cdda_offset].i_lba);
/* Initial/default name */
char *name;
if (unlikely(asprintf(&name, _("Audio CD - Track %02i"),
i - i_start_cddb_offset + 1 ) == -1))
i + 1 ) == -1))
name = NULL;
/* Create playlist items */
int i_first_sector = p_toc->p_sectors[i].i_lba;
int i_last_sector = p_toc->p_sectors[i + 1].i_lba;
int i_first_sector = p_toc->p_sectors[i + cdda_offset].i_lba;
int i_last_sector = p_toc->p_sectors[i + cdda_offset + 1].i_lba;
if(sys->i_cdda_first + i == sys->i_cdda_last &&
p_toc->i_last_track > sys->i_cdda_last)
i_last_sector -= CD_ROM_XA_INTERVAL;
......@@ -717,8 +714,7 @@ static int ReadDir(stream_t *access, input_item_node_t *node)
free(opt);
}
if (likely(asprintf(&opt, "cdda-first-sector=%i",
p_toc->p_sectors[i].i_lba) != -1))
if (likely(asprintf(&opt, "cdda-first-sector=%i", i_first_sector) != -1))
{
input_item_AddOption(item, opt, VLC_INPUT_OPTION_TRUSTED);
free(opt);
......@@ -836,7 +832,7 @@ static int ReadDir(stream_t *access, input_item_node_t *node)
char num[4];
if(snprintf(num, sizeof (num), "%u", i + 1) < 4)
input_item_SetTrackNum(item, num);
snprintf(num, sizeof (num), "%u", p_toc->i_tracks);
snprintf(num, sizeof (num), "%u", p_toc->i_last_track - p_toc->i_first_track);
input_item_SetTrackTotal(item, num);
input_item_node_AppendItem(node, item);
......
......@@ -840,7 +840,7 @@ static int OpenVCDImage( vlc_object_t * p_this, const char *psz_dev,
p_vcddev->i_vcdimage_handle = vlc_open( psz_vcdfile,
O_RDONLY | O_NONBLOCK | O_BINARY );
while( fgets( line, 1024, cuefile ) && !b_found )
while( !b_found && fgets( line, 1024, cuefile ) )
{
/* We have a cue file, but no valid vcd file yet */
char filename[1024];
......@@ -883,12 +883,31 @@ static int OpenVCDImage( vlc_object_t * p_this, const char *psz_dev,
* about the cuefile */
p_toc->i_tracks = 0;
int track_subcodes = CD_ROM_SUBCODE_NONE;
while( fgets( line, 1024, cuefile ) && p_toc->i_tracks < INT_MAX-1 )
{
/* look for a TRACK line */
char psz_dummy[10];
if( !sscanf( line, "%9s", psz_dummy ) || strcmp(psz_dummy, "TRACK") )
unsigned track_num;
char psz_track_type[32];
const char *track_start = strstr(line, "TRACK ");
if( track_start == NULL )
continue;
track_start += 6; // skip the "TRACK " part
int i = sscanf( track_start, "%u %31s", &track_num, psz_track_type );
if( i != 2 ) // no type set: assume audio track
psz_track_type[0] = '\0';
if( i<=0 )
i = sscanf( track_start, "%u", &track_num);
if( i<=0 )
continue;
if ( psz_track_type[0] && strcmp(psz_track_type,"AUDIO")!=0)
{
msg_Dbg( p_this, "detected %s track %02u", psz_track_type, track_num);
track_subcodes = CD_ROM_SUBCODE_DATA;
}
else
track_subcodes = CD_ROM_SUBCODE_NONE;
/* look for an INDEX line */
while( fgets( line, 1024, cuefile ) )
......@@ -905,7 +924,7 @@ static int OpenVCDImage( vlc_object_t * p_this, const char *psz_dev,
goto error;
p_toc->p_sectors = buf;
p_toc->p_sectors[p_toc->i_tracks].i_lba = MSF_TO_LBA(i_min, i_sec, i_frame);
p_toc->p_sectors[p_toc->i_tracks].i_control = 0x00;
p_toc->p_sectors[p_toc->i_tracks].i_control = track_subcodes;
msg_Dbg( p_this, "vcd track %i begins at sector:%i",
p_toc->i_tracks, p_toc->p_sectors[p_toc->i_tracks].i_lba );
p_toc->i_tracks++;
......@@ -921,10 +940,9 @@ static int OpenVCDImage( vlc_object_t * p_this, const char *psz_dev,
p_toc->p_sectors = buf;
p_toc->p_sectors[p_toc->i_tracks].i_lba =
lseek(p_vcddev->i_vcdimage_handle, 0, SEEK_END) / VCD_SECTOR_SIZE;
p_toc->p_sectors[p_toc->i_tracks].i_control = 0x00;
msg_Dbg( p_this, "vcd track %i, begins at sector:%i",
p_toc->i_tracks, p_toc->p_sectors[p_toc->i_tracks].i_lba );
p_toc->i_tracks++;
p_toc->p_sectors[p_toc->i_tracks].i_control = track_subcodes;
msg_Dbg( p_this, "vcd tracks end at sector:%i",
p_toc->p_sectors[p_toc->i_tracks].i_lba );
p_toc->i_first_track = 1;
p_toc->i_last_track = p_toc->i_tracks;
i_ret = 0;
......
......@@ -43,7 +43,12 @@ enum {
#define CD_ROM_XA_INTERVAL ((60 + 90 + 2) * CD_ROM_XA_FRAMES)
/* Subcode control flag */
#define CD_ROM_DATA_FLAG 0x04
#define CD_ROM_SUBCODE_NONE 0x00
#define CD_ROM_SUBCODE_PRE_EMPHASIS 0x01
#define CD_ROM_SUBCODE_COPY_PERMITTED 0x02
#define CD_ROM_SUBCODE_DATA 0x04
#define CD_ROM_SUBCODE_4CH 0x08
#define CD_ROM_SUBCODE_SCMS 0x10
/* size of a CD sector */
#define CD_SECTOR_SIZE CD_ROM_MODE1_DATA_SIZE
......