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 (8)
......@@ -196,7 +196,8 @@ typedef enum libvlc_media_parsed_status_t
typedef enum libvlc_media_slave_type_t
{
libvlc_media_slave_type_subtitle,
libvlc_media_slave_type_audio,
libvlc_media_slave_type_generic,
libvlc_media_slave_type_audio = libvlc_media_slave_type_generic,
} libvlc_media_slave_type_t;
/**
......
......@@ -142,7 +142,7 @@ enum input_item_net_type
enum slave_type
{
SLAVE_TYPE_SPU,
SLAVE_TYPE_AUDIO,
SLAVE_TYPE_GENERIC, /* audio, video or subtitle not matched in SLAVE_SPU_EXTENSIONS */
};
enum slave_priority
......
......@@ -879,7 +879,7 @@ vlc_player_ToggleRecording(vlc_player_t *player)
* Add an associated (or external) media to the current media
*
* @param player locked player instance
* @param cat AUDIO_ES or SPU_ES
* @param cat SPU_ES or UNKNOWN_ES
* @param uri absolute uri of the external media
* @param select true to select the track of this external media
* @param notify true to notify the OSD
......
......@@ -1218,8 +1218,8 @@ int libvlc_media_slaves_add( libvlc_media_t *p_md,
case libvlc_media_slave_type_subtitle:
i_input_slave_type = SLAVE_TYPE_SPU;
break;
case libvlc_media_slave_type_audio:
i_input_slave_type = SLAVE_TYPE_AUDIO;
case libvlc_media_slave_type_generic:
i_input_slave_type = SLAVE_TYPE_GENERIC;
break;
default:
vlc_assert_unreachable();
......@@ -1308,8 +1308,8 @@ unsigned int libvlc_media_slaves_get( libvlc_media_t *p_md,
case SLAVE_TYPE_SPU:
p_slave->i_type = libvlc_media_slave_type_subtitle;
break;
case SLAVE_TYPE_AUDIO:
p_slave->i_type = libvlc_media_slave_type_audio;
case SLAVE_TYPE_GENERIC:
p_slave->i_type = libvlc_media_slave_type_generic;
break;
default:
vlc_assert_unreachable();
......
......@@ -221,7 +221,7 @@ SDDirectory::read() const
for ( auto i = 0; i < m->i_slaves; ++i )
{
const auto* slave = m->pp_slaves[i];
const auto linked_type = slave->i_type == SLAVE_TYPE_AUDIO
const auto linked_type = slave->i_type == SLAVE_TYPE_GENERIC
? IFile::LinkedFileType::SoundTrack
: IFile::LinkedFileType::Subtitles;
......
......@@ -1139,7 +1139,7 @@ bool MediaServer::addItem( IXML_Element* itemElement )
}
else
holder.addSlave(xml_getChildElementValue( p_resource, "res" ),
SLAVE_TYPE_AUDIO);
SLAVE_TYPE_GENERIC);
}
}
ixmlNodeList_free( p_resource_list );
......
......@@ -2579,7 +2579,7 @@ static void EsOutSelect( es_out_t *out, es_out_id_t *es, bool b_force )
}
bool b_auto_selected = p_esprops->b_autoselect
|| input_source_IsCatAutoselected( es->id.source, es->fmt.i_cat );
|| input_source_IsAutoSelected( es->id.source );
bool b_auto_unselect = p_sys->i_mode == ES_OUT_MODE_AUTO &&
policy == ES_OUT_ES_POLICY_EXCLUSIVE &&
p_esprops->p_main_es && p_esprops->p_main_es != es;
......
......@@ -1043,7 +1043,7 @@ static void GetVarSlaves( input_thread_t *p_input,
msg_Warn( p_input,
"Can't deduce slave type of `%s\" with file extension.",
uri );
i_type = SLAVE_TYPE_AUDIO;
i_type = SLAVE_TYPE_GENERIC;
}
input_item_slave_t *p_slave =
input_item_slave_New( uri, i_type, SLAVE_PRIORITY_USER );
......@@ -1137,13 +1137,12 @@ static void LoadSlaves( input_thread_t *p_input )
TAB_CLEAN( p_item->i_slaves, p_item->pp_slaves );
vlc_mutex_unlock( &p_item->lock );
if( i_slaves > 0 )
if( i_slaves > 0 ) /* Sort by priority */
qsort( pp_slaves, i_slaves, sizeof (input_item_slave_t*),
SlaveCompare );
/* add all detected slaves */
bool p_forced[2] = { false, false };
static_assert( SLAVE_TYPE_AUDIO <= 1 && SLAVE_TYPE_SPU <= 1,
static_assert( SLAVE_TYPE_GENERIC <= 1 && SLAVE_TYPE_SPU <= 1,
"slave type size mismatch");
for( int i = 0; i < i_slaves && pp_slaves[i] != NULL; i++ )
{
......@@ -1151,24 +1150,15 @@ static void LoadSlaves( input_thread_t *p_input )
/* Slaves added via options should not fail */
unsigned i_flags = p_slave->i_priority != SLAVE_PRIORITY_USER
? SLAVE_ADD_CANFAIL : SLAVE_ADD_NOFLAG;
bool b_forced = false;
/* Force the first subtitle with the highest priority or with the
* forced flag */
if( !p_forced[p_slave->i_type]
&& ( p_slave->b_forced || p_slave->i_priority == SLAVE_PRIORITY_USER ) )
{
if ( p_slave->b_forced || p_slave->i_priority >= SLAVE_PRIORITY_MATCH_ALL )
i_flags |= SLAVE_ADD_FORCED;
b_forced = true;
}
if( input_SlaveSourceAdd( p_input, p_slave->i_type, p_slave->psz_uri,
i_flags ) == VLC_SUCCESS )
{
input_item_AddSlave( input_priv(p_input)->p_item, p_slave );
if( b_forced )
p_forced[p_slave->i_type] = true;
}
else
input_item_slave_Delete( p_slave );
}
......@@ -1204,10 +1194,8 @@ static void LoadSlaves( input_thread_t *p_input )
/* Force the first subtitle from attachment if there is no
* subtitles already forced */
if( input_SlaveSourceAdd( p_input, SLAVE_TYPE_SPU, psz_mrl,
p_forced[ SLAVE_TYPE_SPU ] ?
SLAVE_ADD_NOFLAG : SLAVE_ADD_FORCED ) == VLC_SUCCESS )
p_forced[ SLAVE_TYPE_SPU ] = true;
input_SlaveSourceAdd( p_input, SLAVE_TYPE_SPU, psz_mrl,
SLAVE_ADD_FORCED );
free( psz_mrl );
/* Don't update item slaves for attachements */
......@@ -2870,10 +2858,9 @@ int input_source_GetNewAutoId( input_source_t *in )
return in->auto_id++;
}
bool input_source_IsCatAutoselected( input_source_t *in,
enum es_format_category_e cat )
bool input_source_IsAutoSelected( input_source_t *in )
{
return in->autoselect_cats[cat];
return in->autoselected;
}
/*****************************************************************************
......@@ -3407,31 +3394,28 @@ static int input_SlaveSourceAdd( input_thread_t *p_input,
const bool b_can_fail = i_flags & SLAVE_ADD_CANFAIL;
const bool b_forced = i_flags & SLAVE_ADD_FORCED;
const bool b_set_time = i_flags & SLAVE_ADD_SET_TIME;
enum es_format_category_e i_cat;
switch( i_type )
{
case SLAVE_TYPE_SPU:
psz_forced_demux = "subtitle";
i_cat = SPU_ES;
break;
case SLAVE_TYPE_AUDIO:
case SLAVE_TYPE_GENERIC:
psz_forced_demux = NULL;
i_cat = AUDIO_ES;
break;
default:
vlc_assert_unreachable();
}
msg_Dbg( p_input, "loading %s slave: %s (forced: %d)",
i_cat == SPU_ES ? "spu" : "audio", psz_uri, b_forced );
i_type == SLAVE_TYPE_SPU ? "spu" : "generic", psz_uri, b_forced );
input_source_t *p_source = InputSourceNew( psz_uri );
if( !p_source )
return VLC_EGENERIC;
if( b_forced )
p_source->autoselect_cats[i_cat] = true;
p_source->autoselected = true;
int ret = InputSourceInit( p_source, p_input, psz_uri,
psz_forced_demux,
......@@ -3446,7 +3430,7 @@ static int input_SlaveSourceAdd( input_thread_t *p_input,
return VLC_EGENERIC;
}
if( i_type == SLAVE_TYPE_AUDIO )
if( i_type == SLAVE_TYPE_GENERIC )
{
if( b_set_time )
{
......
......@@ -379,7 +379,7 @@ struct input_source_t
char *str_id;
int auto_id;
bool autoselect_cats[ES_CATEGORY_COUNT];
bool autoselected;
/* Title infos for that input */
bool b_title_demux; /* Titles/Seekpoints provided by demux */
......@@ -684,10 +684,9 @@ const char *input_source_GetStrId( input_source_t *in );
int input_source_GetNewAutoId( input_source_t *in );
/**
* Returns true if a category should be auto-selected for a given source
* Returns true if a given source should be auto-selected
*/
bool input_source_IsCatAutoselected( input_source_t *in,
enum es_format_category_e cat );
bool input_source_IsAutoSelected( input_source_t *in );
/* Bound pts_delay */
#define INPUT_PTS_DELAY_MAX VLC_TICK_FROM_SEC(60)
......
......@@ -612,7 +612,7 @@ bool input_item_slave_GetType(const char *psz_filename,
size_t nmemb;
} p_slave_list[] = {
{ SLAVE_TYPE_SPU, ppsz_sub_exts, ARRAY_SIZE(ppsz_sub_exts) },
{ SLAVE_TYPE_AUDIO, ppsz_audio_exts, ARRAY_SIZE(ppsz_audio_exts) },
{ SLAVE_TYPE_GENERIC, ppsz_audio_exts, ARRAY_SIZE(ppsz_audio_exts) },
};
const char *psz_ext = strrchr(psz_filename, '.');
......
......@@ -1060,14 +1060,12 @@ vlc_player_AddAssociatedMedia(vlc_player_t *player,
enum slave_type type;
switch (cat)
{
case AUDIO_ES:
type = SLAVE_TYPE_AUDIO;
break;
case SPU_ES:
type = SLAVE_TYPE_SPU;
break;
default:
return VLC_EGENERIC;
type = SLAVE_TYPE_GENERIC;
break;
}
if (check_ext && type == SLAVE_TYPE_SPU && !subtitles_Filter(uri))
......@@ -1089,13 +1087,13 @@ vlc_player_AddAssociatedMedia(vlc_player_t *player,
{
switch( type )
{
case SLAVE_TYPE_AUDIO:
case SLAVE_TYPE_GENERIC:
vlc_player_osd_Message(player, "%s",
vlc_gettext("Audio track added"));
vlc_gettext("Slave added"));
break;
case SLAVE_TYPE_SPU:
vlc_player_osd_Message(player, "%s",
vlc_gettext("Subtitle track added"));
vlc_gettext("Subtitle slave added"));
break;
}
}
......
......@@ -136,7 +136,7 @@ main (void)
};
libvlc_media_slave_t p_expected_slaves[] = {
{ NULL, libvlc_media_slave_type_audio, 3 /* all */ },
{ NULL, libvlc_media_slave_type_generic, 3 /* all */ },
{ NULL, libvlc_media_slave_type_subtitle, 2 /* right */ },
{ NULL, libvlc_media_slave_type_subtitle, 1 /* left */ },
{ NULL, libvlc_media_slave_type_subtitle, 0 /* none */ },
......