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
404 results
Show changes
Commits on Source (2)
  • Alexandre Janniaux's avatar
    macosx: VLCMain: use CFRunLoop to avoid servicing dispatch · feefb1d7
    Alexandre Janniaux authored and Steve Lhomme's avatar Steve Lhomme committed
    The main dispatch_queue is a serial queue and cannot be re-entered, so
    we cannot start the NSApp runloop there since it will block into the
    callback while servicing the main queue, and thus no more blocks will
    be able to be executed on this main dispatch_queue. It is visible with
    the callstack there:
    
          thread #1, queue = 'com.apple.main-thread'
            frame #0: 0x0000000183c3e1f4 libsystem_kernel.dylib`mach_msg2_trap + 8
            frame #1: 0x0000000183c50b24 libsystem_kernel.dylib`mach_msg2_internal + 80
            frame #2: 0x0000000183c46e34 libsystem_kernel.dylib`mach_msg_overwrite + 476
            frame #3: 0x0000000183c3e578 libsystem_kernel.dylib`mach_msg + 24
            frame #4: 0x0000000183d5e680 CoreFoundation`__CFRunLoopServiceMachPort + 160
            frame #5: 0x0000000183d5cf44 CoreFoundation`__CFRunLoopRun + 1208
            frame #6: 0x0000000183d5c434 CoreFoundation`CFRunLoopRunSpecific + 608
            frame #7: 0x000000018e50019c HIToolbox`RunCurrentEventLoopInMode + 292
            frame #8: 0x000000018e4fffd8 HIToolbox`ReceiveNextEventCommon + 648
            frame #9: 0x000000018e4ffd30 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 76
            frame #10: 0x00000001875bbd68 AppKit`_DPSNextEvent + 660
            frame #11: 0x0000000187db1808 AppKit`-[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
            frame #12: 0x00000001875af09c AppKit`-[NSApplication run] + 476
            frame #13: 0x00000001030b791c libmacosx_plugin.dylib`__OpenIntf_block_invoke_2(.block_descriptor=<unavailable>) at VLCMain.m:166:17 [opt]
            frame #14: 0x0000000183acc750 libdispatch.dylib`_dispatch_call_block_and_release + 32
            frame #15: 0x0000000183ace3e8 libdispatch.dylib`_dispatch_client_callout + 20
            frame #16: 0x0000000183adcbb8 libdispatch.dylib`_dispatch_main_queue_drain + 988
            frame #17: 0x0000000183adc7cc libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44
            frame #18: 0x0000000183d9fad4 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
            frame #19: 0x0000000183d5d258 CoreFoundation`__CFRunLoopRun + 1996
            frame #20: 0x0000000183d5c434 CoreFoundation`CFRunLoopRunSpecific + 608
            frame #21: 0x0000000183dda45c CoreFoundation`CFRunLoopRun + 64
            frame #22: 0x0000000100003084 vlc-osx-static`main(i_argc=1, ppsz_argv=0x000000016fdff0c8) at darwinvlc.m:309:9 [opt]
            frame #23: 0x00000001838f60e0 dyld`start + 2360
    
    By running the CFRunLoop instead, we don't have this serial execution
    constraint and can re-enter the loop while servicing the main dispatch
    queue from inside the [NSApp run] runloop. It now has the following
    callstack when running:
    
         thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
            frame #0: 0x0000000183c3e1f4 libsystem_kernel.dylib`mach_msg2_trap + 8
            frame #1: 0x0000000183c50b24 libsystem_kernel.dylib`mach_msg2_internal + 80
            frame #2: 0x0000000183c46e34 libsystem_kernel.dylib`mach_msg_overwrite + 476
            frame #3: 0x0000000183c3e578 libsystem_kernel.dylib`mach_msg + 24
            frame #4: 0x0000000183d5e680 CoreFoundation`__CFRunLoopServiceMachPort + 160
            frame #5: 0x0000000183d5cf44 CoreFoundation`__CFRunLoopRun + 1208
            frame #6: 0x0000000183d5c434 CoreFoundation`CFRunLoopRunSpecific + 608
            frame #7: 0x000000018e50019c HIToolbox`RunCurrentEventLoopInMode + 292
            frame #8: 0x000000018e4fffd8 HIToolbox`ReceiveNextEventCommon + 648
            frame #9: 0x000000018e4ffd30 HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 76
            frame #10: 0x00000001875bbd68 AppKit`_DPSNextEvent + 660
            frame #11: 0x0000000187db1808 AppKit`-[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700
            frame #12: 0x00000001875af09c AppKit`-[NSApplication run] + 476
            frame #13: 0x00000001030b76c8 libmacosx_plugin.dylib`__OpenIntf_block_invoke(.block_descriptor=0x00006000038813c0) at VLCMain.m:166:13 [opt]
            frame #14: 0x0000000183d5e070 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28
            frame #15: 0x0000000183d5df84 CoreFoundation`__CFRunLoopDoBlocks + 356
            frame #16: 0x0000000183d5d414 CoreFoundation`__CFRunLoopRun + 2440
            frame #17: 0x0000000183d5c434 CoreFoundation`CFRunLoopRunSpecific + 608
            frame #18: 0x0000000183dda45c CoreFoundation`CFRunLoopRun + 64
            frame #19: 0x0000000100003084 vlc-osx-static`main(i_argc=1, ppsz_argv=0x000000016fdff0c8) at darwinvlc.m:309:9 [opt]
            frame #20: 0x00000001838f60e0 dyld`start + 2360
    
    And now dispatch will correctly work inside this.
    
    Regression from 3a6bd45b which
    introduced the dispatch call and then changed also in
    9cae3668 which also modified the
    dispatch call in the destructor.
    
    Fixes #28812
    feefb1d7
  • Alexandre Janniaux's avatar
    qt: use CFRunLoop to avoid servicing dispatch · 0b2a6f48
    Alexandre Janniaux authored and Steve Lhomme's avatar Steve Lhomme committed
    The main dispatch_queue is a serial queue and cannot be re-entered, so
    we cannot start the QApplication there since it will block into
    a callback while servicing the main queue, and thus no more blocks will
    be able to be executed on this main dispatch_queue.
    
    By running the CFRunLoop instead, we don't have this serial execution
    constraint and can re-enter the loop while servicing the main dispatch
    queue from inside the QApplication runloop.
    
    Regression from 9cae3668 which
    introduced the dispatch call.
    0b2a6f48
......@@ -142,7 +142,8 @@ intf_thread_t *getIntf()
int OpenIntf (vlc_object_t *p_this)
{
__block int retcode = VLC_SUCCESS;
dispatch_sync(dispatch_get_main_queue(), ^{
__block dispatch_semaphore_t sem = dispatch_semaphore_create(0);
CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopDefaultMode, ^{
@autoreleasepool {
intf_thread_t *p_intf = (intf_thread_t*) p_this;
p_interface_thread = p_intf;
......@@ -161,11 +162,13 @@ int OpenIntf (vlc_object_t *p_this)
retcode = VLC_EGENERIC;
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
[NSApp run];
});
dispatch_semaphore_signal(sem);
[NSApp run];
}
});
CFRunLoopWakeUp(CFRunLoopGetMain());
dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);
return retcode;
}
......
......@@ -536,10 +536,9 @@ static void *Thread( void * );
static void *ThreadCleanup( qt_intf_t *p_intf, CleanupReason cleanupReason );
#ifdef Q_OS_MAC
static void ThreadDarwin(void *);
/* Used to abort the app.exec() on OSX after libvlc_Quit is called */
#include "../../../lib/libvlc_internal.h" /* libvlc_SetExitHandler */
#include <dispatch/dispatch.h>
#include <CoreFoundation/CFRunLoop.h>
static void Abort( void *obj )
{
(void)obj;
......@@ -600,7 +599,10 @@ static int OpenInternal( qt_intf_t *p_intf )
#ifdef Q_OS_MAC
/* Run mainloop on the main thread as Cocoa requires */
libvlc_SetExitHandler( vlc_object_instance(p_intf), Abort, p_intf );
dispatch_async_f(dispatch_get_main_queue(), static_cast<void*>(p_intf), ThreadDarwin);
CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopDefaultMode, ^{
Thread(static_cast<void*>(p_intf));
});
CFRunLoopWakeUp(CFRunLoopGetMain());
#else
if( vlc_clone( &p_intf->thread, Thread, p_intf ) )
{
......@@ -1068,13 +1070,6 @@ static void *Thread( void *obj )
return ThreadCleanup( p_intf, CLEANUP_APP_TERMINATED );
}
#ifdef Q_OS_MAC
static void ThreadDarwin(void *opaque)
{
Thread(opaque);
}
#endif
static void *ThreadCleanup( qt_intf_t *p_intf, CleanupReason cleanupReason )
{
{
......