New upstream version 21.0.2+dfsg1
This commit is contained in:
parent
1f1bbb3518
commit
baafb6325b
706 changed files with 49633 additions and 5044 deletions
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Comportament de la visibilitat"
|
|||
PlaybackBehavior.StopRestart="Aturar quan no sigui visible, reiniciar quan sigui visible"
|
||||
PlaybackBehavior.PauseUnpause="Pausa quan no sigui visible, reprendre quan sigui visible"
|
||||
PlaybackBehavior.AlwaysPlay="Reproduir sempre fins i tot quan no sigui visible"
|
||||
NetworkCaching="Memòria cau de xarxa (ms)"
|
||||
PlayPause="Reprodueix/Pausa"
|
||||
Restart="Reinicia"
|
||||
Stop="Atura"
|
||||
PlaylistNext="Següent"
|
||||
PlaylistPrev="Anterior"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Závislost na viditelnosti"
|
|||
PlaybackBehavior.StopRestart="Zastavit při skrytém, restartovat při obnovení"
|
||||
PlaybackBehavior.PauseUnpause="Pozastavit při skrytém, pokračovat při obnovení"
|
||||
PlaybackBehavior.AlwaysPlay="Přehrát vždy (i když není vidět)"
|
||||
NetworkCaching="Mezipaměť sítě (ms)"
|
||||
PlayPause="Přehrát/Pozastavit"
|
||||
Restart="Restartovat"
|
||||
Stop="Zastavit"
|
||||
PlaylistNext="Další"
|
||||
PlaylistPrev="Předchozí"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,15 @@
|
|||
VLCSource="VLC videokilde"
|
||||
VLCSource="VLC-videokilde"
|
||||
Playlist="Afspilningsliste"
|
||||
LoopPlaylist="Loop afspilningsliste"
|
||||
LoopPlaylist="Gentag afspilningsliste"
|
||||
Shuffle="Bland playliste"
|
||||
PlaybackBehavior="Synligheds opførsel"
|
||||
PlaybackBehavior="Synlighedsadfærd"
|
||||
PlaybackBehavior.StopRestart="Stop når ikke synlig, genstart når synlig"
|
||||
PlaybackBehavior.PauseUnpause="Paus når ikke synlig, genoptag når synlig"
|
||||
PlaybackBehavior.AlwaysPlay="Afspil altid også når usynlig"
|
||||
PlaybackBehavior.PauseUnpause="Pause når ikke synlig, genoptage når synlig"
|
||||
PlaybackBehavior.AlwaysPlay="Afspil altid, selv når usynlig"
|
||||
NetworkCaching="Netværkscaching (ms)"
|
||||
PlayPause="Afspil/Pause"
|
||||
Restart="Genstart"
|
||||
Stop="Stop"
|
||||
PlaylistNext="Næste"
|
||||
PlaylistPrev="Forrige"
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,13 @@ Playlist="Wiedergabeliste"
|
|||
LoopPlaylist="Wiedergabeliste wiederholen"
|
||||
Shuffle="Wiedergabeliste zufällig wiedergeben"
|
||||
PlaybackBehavior="Sichtbarkeitsverhalten"
|
||||
PlaybackBehavior.StopRestart="Anhalten wenn nicht sichtbar, neustarten wenn sichtbar"
|
||||
PlaybackBehavior.StopRestart="Anhalten wenn nicht sichtbar, neu starten wenn sichtbar"
|
||||
PlaybackBehavior.PauseUnpause="Pausieren wenn nicht sichtbar, fortsetzen wenn sichtbar"
|
||||
PlaybackBehavior.AlwaysPlay="Immer abspielen, auch wenn nicht sichtbar"
|
||||
NetworkCaching="Netzwerkpuffer (ms)"
|
||||
PlayPause="Abspielen/Pausieren"
|
||||
Restart="Neu starten"
|
||||
Stop="Stop"
|
||||
PlaylistNext="Weiter"
|
||||
PlaylistPrev="Zurück"
|
||||
|
||||
|
|
|
|||
15
plugins/vlc-video/data/locale/el-GR.ini
Normal file
15
plugins/vlc-video/data/locale/el-GR.ini
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
VLCSource="Πηγή βίντεο VLC"
|
||||
Playlist="Λίστα αναπαραγωγής"
|
||||
LoopPlaylist="Επανάληψη λίστας αναπαραγωγής"
|
||||
Shuffle="Τυχαία αναπαραγωγή λίστας αναπαραγωγής"
|
||||
PlaybackBehavior="Συμπεριφορά Ορατότητας"
|
||||
PlaybackBehavior.StopRestart="Διακοπή όταν δεν είναι ορατή, επανεκκίνηση όταν είναι ορατή"
|
||||
PlaybackBehavior.PauseUnpause="Παύση όταν δεν είναι ορατή, συνέχεια όταν είναι ορατή"
|
||||
PlaybackBehavior.AlwaysPlay="Αναπαραγωγή πάντα, ακόμα και αν δεν είναι ορατή"
|
||||
NetworkCaching="Προσωρινή αποθήκευση Δικτίου (ms)"
|
||||
PlayPause="Αναπαραγωγή/Παύση"
|
||||
Restart="Επανεκκίνηση"
|
||||
Stop="Διακοπή"
|
||||
PlaylistNext="Επόμενο"
|
||||
PlaylistPrev="Προηγούμενο"
|
||||
|
||||
|
|
@ -6,3 +6,9 @@ PlaybackBehavior="Visibility behavior"
|
|||
PlaybackBehavior.StopRestart="Stop when not visible, restart when visible"
|
||||
PlaybackBehavior.PauseUnpause="Pause when not visible, unpause when visible"
|
||||
PlaybackBehavior.AlwaysPlay="Always play even when not visible"
|
||||
NetworkCaching="Network Caching (ms)"
|
||||
PlayPause="Play/Pause"
|
||||
Restart="Restart"
|
||||
Stop="Stop"
|
||||
PlaylistNext="Next"
|
||||
PlaylistPrev="Previous"
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Comportamiento de la visibilidad"
|
|||
PlaybackBehavior.StopRestart="Detener cuando no sea visible, reiniciar cuando sea visible"
|
||||
PlaybackBehavior.PauseUnpause="Pausar cuando no sea visible, reanudar cuando sea visible"
|
||||
PlaybackBehavior.AlwaysPlay="Reproducir siempre incluso cuando no sea visible"
|
||||
NetworkCaching="Caché de Red (ms)"
|
||||
PlayPause="Reproducir/Pausar"
|
||||
Restart="Reiniciar"
|
||||
Stop="Detener"
|
||||
PlaylistNext="Siguiente"
|
||||
PlaylistPrev="Anterior"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Ikuste-jokabidea"
|
|||
PlaybackBehavior.StopRestart="Ikusten ez bada gelditu, ikusten denean berrabiarazi"
|
||||
PlaybackBehavior.PauseUnpause="Ikusten ez bada pausatu, ikusten denean jarraitu"
|
||||
PlaybackBehavior.AlwaysPlay="Erreproduzitu beti nahiz eta ez ikusi"
|
||||
NetworkCaching="Sarearen katxea (ms)"
|
||||
PlayPause=" Erreproduzitu/Pausarazi"
|
||||
Restart="Berrabiarazi"
|
||||
Stop="Gelditu"
|
||||
PlaylistNext="Hurrengoa"
|
||||
PlaylistPrev="Aurrekoa"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Näkyvyyden käyttäytyminen"
|
|||
PlaybackBehavior.StopRestart="Pysäytä toisto kun lähde ei näy. Käynnistä toisto uudelleen, kun se on taas näkyvissä"
|
||||
PlaybackBehavior.PauseUnpause="Keskeytä toisto kun lähde ei näy. Jatka toistoa, kun se on taas näkyvissä"
|
||||
PlaybackBehavior.AlwaysPlay="Toista aina, vaikka lähde ei olisi näkyvissä"
|
||||
NetworkCaching="Verkon välimuisti (ms)"
|
||||
PlayPause="Toista/Tauko"
|
||||
Restart="Aloita alusta"
|
||||
Stop="Pysäytä"
|
||||
PlaylistNext="Seuraava"
|
||||
PlaylistPrev="Edellinen"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Comportement de visibilité"
|
|||
PlaybackBehavior.StopRestart="Arrêter quand elle n'est pas visible, redémarrer lorsqu'elle est visible"
|
||||
PlaybackBehavior.PauseUnpause="Suspendre lorsqu'elle n'est pas visible, reprendre lorsqu'elle est visible"
|
||||
PlaybackBehavior.AlwaysPlay="Toujours jouer même lorsqu'elle n'est pas visible"
|
||||
NetworkCaching="Mise en cache réseau (ms)"
|
||||
PlayPause="Lecture/Pause"
|
||||
Restart="Redémarrer"
|
||||
Stop="Arrêter"
|
||||
PlaylistNext="Suivant"
|
||||
PlaylistPrev="Précédent"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Láthatósági opció"
|
|||
PlaybackBehavior.StopRestart="Leállítás, ha nem látható, újraindul, ha látható"
|
||||
PlaybackBehavior.PauseUnpause="Szüneteltet, ha nem látható, folytatás, ha látható"
|
||||
PlaybackBehavior.AlwaysPlay="Mindig lejátsza, akkor is, ha nem látható"
|
||||
NetworkCaching="Hálózati cache (ezredmásodperc)"
|
||||
PlayPause="Lejátszás/Szünet"
|
||||
Restart="Újraindítás"
|
||||
Stop="Leállítás"
|
||||
PlaylistNext="Következő"
|
||||
PlaylistPrev="Előző"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
VLCSource="Source Video VLC"
|
||||
Playlist="Playlist"
|
||||
LoopPlaylist="Riproduci playlist di continuo"
|
||||
Shuffle="Playlist casuale"
|
||||
PlaybackBehavior="Comportamento visibilità"
|
||||
PlaybackBehavior.StopRestart="Interrompi quando non visibile, riavvia quando visibile"
|
||||
PlaybackBehavior.PauseUnpause="Pausa quando non visibile, riprendi quando visibile"
|
||||
PlaybackBehavior.AlwaysPlay="Continua anche quando non visibile"
|
||||
NetworkCaching="Network Caching (ms)"
|
||||
PlayPause="Play/Pausa"
|
||||
Restart="Riavvia"
|
||||
Stop="Interrompi"
|
||||
PlaylistNext="Successivo"
|
||||
PlaylistPrev="Precedente"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="表示の動作"
|
|||
PlaybackBehavior.StopRestart="表示されていないときに停止、表示時に再開"
|
||||
PlaybackBehavior.PauseUnpause="表示されていないときに一時停止、表示時に一時停止を解除"
|
||||
PlaybackBehavior.AlwaysPlay="表示されていないときにも常に再生"
|
||||
NetworkCaching="ネットワークキャッシュ (ms)"
|
||||
PlayPause="再生/一時停止"
|
||||
Restart="再開"
|
||||
Stop="停止"
|
||||
PlaylistNext="次へ"
|
||||
PlaylistPrev="前へ"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="표시 동작 설정"
|
|||
PlaybackBehavior.StopRestart="보이지 않을 때 중단, 보이면 재시작"
|
||||
PlaybackBehavior.PauseUnpause="보이지 않을 때 일시 중지, 보이면 일시 중지 해제"
|
||||
PlaybackBehavior.AlwaysPlay="보이지 않더라도 항상 재생"
|
||||
NetworkCaching="네트워크 캐싱 (ms)"
|
||||
PlayPause="재생/일시정지"
|
||||
Restart="재시작"
|
||||
Stop="중단"
|
||||
PlaylistNext="다음"
|
||||
PlaylistPrev="이전"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
VLCSource="VLC-videokilde"
|
||||
Playlist="Spilleliste"
|
||||
LoopPlaylist="Repeter spilleliste"
|
||||
Shuffle="Shuffle spilleliste"
|
||||
PlaybackBehavior="Synlighetsadferd"
|
||||
PlaybackBehavior.StopRestart="Stans når ikke synlig, spill fra starten når synlig"
|
||||
PlaybackBehavior.PauseUnpause="Stans når ikke synlig, spill når synlig"
|
||||
PlaybackBehavior.AlwaysPlay="Spill alltid, selv når ikke synlig"
|
||||
NetworkCaching="Nettverks Buffering (ms)"
|
||||
PlayPause="Spill av/Pause"
|
||||
Restart="Start på nytt"
|
||||
Stop="Stopp avspilling"
|
||||
PlaylistNext="Neste"
|
||||
PlaylistPrev="Forrige"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Zichtbaarheidsgedrag"
|
|||
PlaybackBehavior.StopRestart="Stop wanneer niet zichtbaar, herstart wanneer zichtbaar"
|
||||
PlaybackBehavior.PauseUnpause="Pauzeer wanneer niet zichtbaar, hervat wanneer zichtbaar"
|
||||
PlaybackBehavior.AlwaysPlay="Altijd spelen, zelfs wanneer niet zichtbaar"
|
||||
NetworkCaching="Network Caching (ms)"
|
||||
PlayPause="Speel af/Pauzeer"
|
||||
Restart="Herstart"
|
||||
Stop="Stop"
|
||||
PlaylistNext="Volgende"
|
||||
PlaylistPrev="Vorige"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Zachowanie"
|
|||
PlaybackBehavior.StopRestart="Zatrzymaj, gdy niewidoczne. Odtwarzaj od początku, gdy widoczne."
|
||||
PlaybackBehavior.PauseUnpause="Wstrzymaj, gdy niewidoczne. Wznów, gdy widoczne."
|
||||
PlaybackBehavior.AlwaysPlay="Odtwarzaj cały czas bez względu na widoczność."
|
||||
NetworkCaching="Pamięć podręczna dla sieci (ms)"
|
||||
PlayPause="Odtwarzaj/Wstrzymaj"
|
||||
Restart="Zrestartuj"
|
||||
Stop="Zatrzymaj"
|
||||
PlaylistNext="Następny"
|
||||
PlaylistPrev="Poprzedni"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Comportamento de visibilidade"
|
|||
PlaybackBehavior.StopRestart="Parar quando não visível, reiniciar quando visível"
|
||||
PlaybackBehavior.PauseUnpause="Pausa quando não visível, resumir quando visível"
|
||||
PlaybackBehavior.AlwaysPlay="Sempre reproduzir, mesmo quando não visível"
|
||||
NetworkCaching="Cache de Rede (ms)"
|
||||
PlayPause="Reproduzir/Pausar"
|
||||
Restart="Reiniciar"
|
||||
Stop="Parar"
|
||||
PlaylistNext="Próximo"
|
||||
PlaylistPrev="Anterior"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Поведение видимости"
|
|||
PlaybackBehavior.StopRestart="Остановить, когда не видно, перезагрузить, когда видно"
|
||||
PlaybackBehavior.PauseUnpause="Пауза, когда не видно, возобновить, когда видно"
|
||||
PlaybackBehavior.AlwaysPlay="Всегда играть, даже когда не видно"
|
||||
NetworkCaching="Сетевое кэширование (мс)"
|
||||
PlayPause="Воспроизвести/Пауза"
|
||||
Restart="Перезапустить"
|
||||
Stop="Остановить"
|
||||
PlaylistNext="Следующий"
|
||||
PlaylistPrev="Предыдущий"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,2 +1,15 @@
|
|||
VLCSource="VLC Video zdroj"
|
||||
Playlist="Playlist"
|
||||
LoopPlaylist="Opakovať zoznam skladieb"
|
||||
Shuffle="Prehrať zoznam skladieb náhodne"
|
||||
PlaybackBehavior="Fungovanie podľa viditeľnosti"
|
||||
PlaybackBehavior.StopRestart="Zastaviť, keď nie je viditeľná, reštartovať, keď je viditeľná"
|
||||
PlaybackBehavior.PauseUnpause="Pozastaviť, keď nie je viditeľná, zrušiť pozastavenie, keď je viditeľná"
|
||||
PlaybackBehavior.AlwaysPlay="Vždy prehrávať, aj keď nie je viditeľná"
|
||||
NetworkCaching="Medzi-pamäť siete (ms)"
|
||||
PlayPause="Prehrať/Pozastaviť"
|
||||
Restart="Reštartovať"
|
||||
Stop="Zastaviť"
|
||||
PlaylistNext="Ďalší"
|
||||
PlaylistPrev="Predchádzajúci"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Synlighetsbeteende"
|
|||
PlaybackBehavior.StopRestart="Stoppa när den inte syns, starta om när den syns"
|
||||
PlaybackBehavior.PauseUnpause="Pausa när den inte syns, återuppta när den syns"
|
||||
PlaybackBehavior.AlwaysPlay="Spela alltid även när den inte syns"
|
||||
NetworkCaching="Närverkscaching (ms)"
|
||||
PlayPause="Spela/Pausa"
|
||||
Restart="Starta om"
|
||||
Stop="Stoppa"
|
||||
PlaylistNext="Nästa"
|
||||
PlaylistPrev="Föregående"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="Görünürlük davranışı"
|
|||
PlaybackBehavior.StopRestart="Görünür değilken durdur, görünür olunca yeniden başlat"
|
||||
PlaybackBehavior.PauseUnpause="Görünür değilken duraklat, görünür olunca oynat"
|
||||
PlaybackBehavior.AlwaysPlay="Görünür değilken bile oynat"
|
||||
NetworkCaching="Ağ Önbelleğe Alma (ms)"
|
||||
PlayPause="Oynat/Duraklat"
|
||||
Restart="Yeniden Başlat"
|
||||
Stop="Durdur"
|
||||
PlaylistNext="Sonraki"
|
||||
PlaylistPrev="Önceki"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,15 @@
|
|||
VLCSource="VLC-відео"
|
||||
Playlist="Список відтворення"
|
||||
LoopPlaylist="Повторювати список відтворювання"
|
||||
LoopPlaylist="Повтор списку відтворення"
|
||||
Shuffle="Перемішати список відтворення"
|
||||
PlaybackBehavior="Видимість та відтворення"
|
||||
PlaybackBehavior.StopRestart="Зупинити, коли не видимий. Грати з початку, коли видимий"
|
||||
PlaybackBehavior.PauseUnpause="Пизупинити, коли не видимий. Грати далі, коли видимий"
|
||||
PlaybackBehavior.PauseUnpause="Призупинити, коли не видимий. Грати далі, коли видимий"
|
||||
PlaybackBehavior.AlwaysPlay="Завжди грати навіть тоді, коли не видимий"
|
||||
NetworkCaching="Кешування мережевого контенту (мс)"
|
||||
PlayPause="Відтворення / Пауза"
|
||||
Restart="Грати з початку"
|
||||
Stop="Зупинити"
|
||||
PlaylistNext="Наступний"
|
||||
PlaylistPrev="Попередній"
|
||||
|
||||
|
|
|
|||
15
plugins/vlc-video/data/locale/vi-VN.ini
Normal file
15
plugins/vlc-video/data/locale/vi-VN.ini
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
VLCSource="Nguồn VLC Video"
|
||||
Playlist="Danh sách phát"
|
||||
LoopPlaylist="Lặp lại danh sách phát"
|
||||
Shuffle="Ngẫu nhiên hóa danh sách phát"
|
||||
PlaybackBehavior="Hành vi hiển thị"
|
||||
PlaybackBehavior.StopRestart="Dừng khi không hiển thị, khởi động lại khi hiển thị"
|
||||
PlaybackBehavior.PauseUnpause="Tạm dừng khi không hiển thị, bỏ tạm dừng khi hiển thị"
|
||||
PlaybackBehavior.AlwaysPlay="Luôn luôn chơi ngay cả khi không nhìn thấy được"
|
||||
NetworkCaching="Lưu trữ mạng (ms)"
|
||||
PlayPause="Phát/Tạm dừng"
|
||||
Restart="Khởi động lại"
|
||||
Stop="Dừng"
|
||||
PlaylistNext="Tiếp"
|
||||
PlaylistPrev="Trước"
|
||||
|
||||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="可见性的行为"
|
|||
PlaybackBehavior.StopRestart="不可见时停止, 可见时重启"
|
||||
PlaybackBehavior.PauseUnpause="不可见时暂停, 可见时取消暂停"
|
||||
PlaybackBehavior.AlwaysPlay="即使在不可见时也保持播放"
|
||||
NetworkCaching="网络缓存 (ms)"
|
||||
PlayPause="播放/暂停"
|
||||
Restart="重启"
|
||||
Stop="停止"
|
||||
PlaylistNext="下一个"
|
||||
PlaylistPrev="上一个"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,4 +6,10 @@ PlaybackBehavior="播放行為"
|
|||
PlaybackBehavior.StopRestart="不可見時停止,可見時重新開始"
|
||||
PlaybackBehavior.PauseUnpause="不可見時暫停,可見時取消暫停"
|
||||
PlaybackBehavior.AlwaysPlay="即使不可見一樣播放"
|
||||
NetworkCaching="網路快取 (ms)"
|
||||
PlayPause="播放/暫停"
|
||||
Restart="重新開始"
|
||||
Stop="停止"
|
||||
PlaylistNext="下一個"
|
||||
PlaylistPrev="前一個"
|
||||
|
||||
|
|
|
|||
|
|
@ -53,6 +53,8 @@ LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_PLAYER libvlc_media_list_player_set_media_pla
|
|||
LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_LIST libvlc_media_list_player_set_media_list_;
|
||||
LIBVLC_MEDIA_LIST_PLAYER_EVENT_MANAGER libvlc_media_list_player_event_manager_;
|
||||
LIBVLC_MEDIA_LIST_PLAYER_SET_PLAYBACK_MODE libvlc_media_list_player_set_playback_mode_;
|
||||
LIBVLC_MEDIA_LIST_PLAYER_NEXT libvlc_media_list_player_next_;
|
||||
LIBVLC_MEDIA_LIST_PLAYER_PREVIOUS libvlc_media_list_player_previous_;
|
||||
|
||||
void *libvlc_module = NULL;
|
||||
libvlc_instance_t *libvlc = NULL;
|
||||
|
|
@ -115,6 +117,8 @@ static bool load_vlc_funcs(void)
|
|||
LOAD_VLC_FUNC(libvlc_media_list_player_set_media_list);
|
||||
LOAD_VLC_FUNC(libvlc_media_list_player_event_manager);
|
||||
LOAD_VLC_FUNC(libvlc_media_list_player_set_playback_mode);
|
||||
LOAD_VLC_FUNC(libvlc_media_list_player_next);
|
||||
LOAD_VLC_FUNC(libvlc_media_list_player_previous);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -111,6 +111,10 @@ typedef libvlc_event_manager_t *(*LIBVLC_MEDIA_LIST_PLAYER_EVENT_MANAGER)(
|
|||
typedef void (*LIBVLC_MEDIA_LIST_PLAYER_SET_PLAYBACK_MODE)(
|
||||
libvlc_media_list_player_t *p_mlp,
|
||||
libvlc_playback_mode_t e_mode);
|
||||
typedef int (*LIBVLC_MEDIA_LIST_PLAYER_NEXT)(
|
||||
libvlc_media_list_player_t *p_mlp);
|
||||
typedef int (*LIBVLC_MEDIA_LIST_PLAYER_PREVIOUS)(
|
||||
libvlc_media_list_player_t *p_mlp);
|
||||
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
|
|
@ -159,6 +163,8 @@ extern LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_PLAYER libvlc_media_list_player_set_me
|
|||
extern LIBVLC_MEDIA_LIST_PLAYER_SET_MEDIA_LIST libvlc_media_list_player_set_media_list_;
|
||||
extern LIBVLC_MEDIA_LIST_PLAYER_EVENT_MANAGER libvlc_media_list_player_event_manager_;
|
||||
extern LIBVLC_MEDIA_LIST_PLAYER_SET_PLAYBACK_MODE libvlc_media_list_player_set_playback_mode_;
|
||||
extern LIBVLC_MEDIA_LIST_PLAYER_NEXT libvlc_media_list_player_next_;
|
||||
extern LIBVLC_MEDIA_LIST_PLAYER_PREVIOUS libvlc_media_list_player_previous_;
|
||||
|
||||
#define EXTENSIONS_AUDIO \
|
||||
"*.3ga;" \
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
#define S_BEHAVIOR_STOP_RESTART "stop_restart"
|
||||
#define S_BEHAVIOR_PAUSE_UNPAUSE "pause_unpause"
|
||||
#define S_BEHAVIOR_ALWAYS_PLAY "always_play"
|
||||
#define S_NETWORK_CACHING "network_caching"
|
||||
|
||||
#define T_(text) obs_module_text(text)
|
||||
#define T_PLAYLIST T_("Playlist")
|
||||
|
|
@ -26,6 +27,7 @@
|
|||
#define T_BEHAVIOR_STOP_RESTART T_("PlaybackBehavior.StopRestart")
|
||||
#define T_BEHAVIOR_PAUSE_UNPAUSE T_("PlaybackBehavior.PauseUnpause")
|
||||
#define T_BEHAVIOR_ALWAYS_PLAY T_("PlaybackBehavior.AlwaysPlay")
|
||||
#define T_NETWORK_CACHING T_("NetworkCaching")
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
|
|
@ -55,6 +57,12 @@ struct vlc_source {
|
|||
enum behavior behavior;
|
||||
bool loop;
|
||||
bool shuffle;
|
||||
|
||||
obs_hotkey_id play_pause_hotkey;
|
||||
obs_hotkey_id restart_hotkey;
|
||||
obs_hotkey_id stop_hotkey;
|
||||
obs_hotkey_id playlist_next_hotkey;
|
||||
obs_hotkey_id playlist_prev_hotkey;
|
||||
};
|
||||
|
||||
static libvlc_media_t *get_media(struct darray *array, const char *path)
|
||||
|
|
@ -395,7 +403,7 @@ static int vlcs_audio_setup(void **p_data, char *format, unsigned *rate,
|
|||
}
|
||||
|
||||
static void add_file(struct vlc_source *c, struct darray *array,
|
||||
const char *path)
|
||||
const char *path, int network_caching)
|
||||
{
|
||||
DARRAY(struct media_file_data) new_files;
|
||||
struct media_file_data data;
|
||||
|
|
@ -420,9 +428,14 @@ static void add_file(struct vlc_source *c, struct darray *array,
|
|||
new_media = create_media_from_file(path);
|
||||
|
||||
if (new_media) {
|
||||
if (is_url)
|
||||
if (is_url) {
|
||||
struct dstr network_caching_option = {0};
|
||||
dstr_catf(&network_caching_option,
|
||||
":network-caching=%d", network_caching);
|
||||
libvlc_media_add_option_(new_media,
|
||||
":network-caching=100");
|
||||
network_caching_option.array);
|
||||
dstr_free(&network_caching_option);
|
||||
}
|
||||
|
||||
data.path = new_path.array;
|
||||
data.media = new_media;
|
||||
|
|
@ -476,6 +489,7 @@ static void vlcs_update(void *data, obs_data_t *settings)
|
|||
obs_data_array_t *array;
|
||||
const char *behavior;
|
||||
size_t count;
|
||||
int network_caching;
|
||||
|
||||
da_init(new_files);
|
||||
da_init(old_files);
|
||||
|
|
@ -487,6 +501,8 @@ static void vlcs_update(void *data, obs_data_t *settings)
|
|||
|
||||
behavior = obs_data_get_string(settings, S_BEHAVIOR);
|
||||
|
||||
network_caching = (int)obs_data_get_int(settings, S_NETWORK_CACHING);
|
||||
|
||||
if (astrcmpi(behavior, S_BEHAVIOR_PAUSE_UNPAUSE) == 0) {
|
||||
c->behavior = BEHAVIOR_PAUSE_UNPAUSE;
|
||||
} else if (astrcmpi(behavior, S_BEHAVIOR_ALWAYS_PLAY) == 0) {
|
||||
|
|
@ -523,13 +539,14 @@ static void vlcs_update(void *data, obs_data_t *settings)
|
|||
dstr_copy(&dir_path, path);
|
||||
dstr_cat_ch(&dir_path, '/');
|
||||
dstr_cat(&dir_path, ent->d_name);
|
||||
add_file(c, &new_files.da, dir_path.array);
|
||||
add_file(c, &new_files.da, dir_path.array,
|
||||
network_caching);
|
||||
}
|
||||
|
||||
dstr_free(&dir_path);
|
||||
os_closedir(dir);
|
||||
} else {
|
||||
add_file(c, &new_files.da, path);
|
||||
add_file(c, &new_files.da, path, network_caching);
|
||||
}
|
||||
|
||||
obs_data_release(item);
|
||||
|
|
@ -551,14 +568,27 @@ static void vlcs_update(void *data, obs_data_t *settings)
|
|||
c->shuffle = obs_data_get_bool(settings, S_SHUFFLE);
|
||||
|
||||
if (c->files.num > 1 && c->shuffle) {
|
||||
for (size_t i = 0; i < c->files.num - 1; i++) {
|
||||
size_t j = i + rand() / (RAND_MAX
|
||||
/ (c->files.num - i) + 1);
|
||||
DARRAY(struct media_file_data) new_files;
|
||||
DARRAY(size_t) idxs;
|
||||
|
||||
struct media_file_data t = c->files.array[j];
|
||||
c->files.array[j] = c->files.array[i];
|
||||
c->files.array[i] = t;
|
||||
da_init(new_files);
|
||||
da_init(idxs);
|
||||
da_resize(idxs, c->files.num);
|
||||
da_reserve(new_files, c->files.num);
|
||||
|
||||
for (size_t i = 0; i < c->files.num; i++) {
|
||||
idxs.array[i] = i;
|
||||
}
|
||||
for (size_t i = idxs.num; i > 0; i--) {
|
||||
size_t val = rand() % i;
|
||||
size_t idx = idxs.array[val];
|
||||
da_push_back(new_files, &c->files.array[idx]);
|
||||
da_erase(idxs, val);
|
||||
}
|
||||
|
||||
da_free(c->files);
|
||||
da_free(idxs);
|
||||
c->files.da = new_files.da;
|
||||
}
|
||||
|
||||
/* ------------------------------------- */
|
||||
|
|
@ -600,11 +630,133 @@ static void vlcs_stopped(const struct libvlc_event_t *event, void *data)
|
|||
UNUSED_PARAMETER(event);
|
||||
}
|
||||
|
||||
static void vlcs_play_pause(void *data)
|
||||
{
|
||||
struct vlc_source *c = data;
|
||||
|
||||
libvlc_media_list_player_pause_(c->media_list_player);
|
||||
}
|
||||
|
||||
static void vlcs_restart(void *data)
|
||||
{
|
||||
struct vlc_source *c = data;
|
||||
|
||||
libvlc_media_list_player_stop_(c->media_list_player);
|
||||
libvlc_media_list_player_play_(c->media_list_player);
|
||||
}
|
||||
|
||||
static void vlcs_stop(void *data)
|
||||
{
|
||||
struct vlc_source *c = data;
|
||||
|
||||
libvlc_media_list_player_stop_(c->media_list_player);
|
||||
obs_source_output_video(c->source, NULL);
|
||||
}
|
||||
|
||||
static void vlcs_playlist_next(void *data)
|
||||
{
|
||||
struct vlc_source *c = data;
|
||||
|
||||
libvlc_media_list_player_next_(c->media_list_player);
|
||||
}
|
||||
|
||||
static void vlcs_playlist_prev(void *data)
|
||||
{
|
||||
struct vlc_source *c = data;
|
||||
|
||||
libvlc_media_list_player_previous_(c->media_list_player);
|
||||
}
|
||||
|
||||
static void vlcs_play_pause_hotkey(void *data, obs_hotkey_id id,
|
||||
obs_hotkey_t *hotkey, bool pressed)
|
||||
{
|
||||
UNUSED_PARAMETER(id);
|
||||
UNUSED_PARAMETER(hotkey);
|
||||
|
||||
struct vlc_source *c = data;
|
||||
|
||||
if (pressed && obs_source_active(c->source))
|
||||
vlcs_play_pause(c);
|
||||
}
|
||||
|
||||
static void vlcs_restart_hotkey(void *data, obs_hotkey_id id,
|
||||
obs_hotkey_t *hotkey, bool pressed)
|
||||
{
|
||||
UNUSED_PARAMETER(id);
|
||||
UNUSED_PARAMETER(hotkey);
|
||||
|
||||
struct vlc_source *c = data;
|
||||
|
||||
if (pressed && obs_source_active(c->source))
|
||||
vlcs_restart(c);
|
||||
}
|
||||
|
||||
static void vlcs_stop_hotkey(void *data, obs_hotkey_id id,
|
||||
obs_hotkey_t *hotkey, bool pressed)
|
||||
{
|
||||
UNUSED_PARAMETER(id);
|
||||
UNUSED_PARAMETER(hotkey);
|
||||
|
||||
struct vlc_source *c = data;
|
||||
|
||||
if (pressed && obs_source_active(c->source))
|
||||
vlcs_stop(c);
|
||||
}
|
||||
|
||||
static void vlcs_playlist_next_hotkey(void *data, obs_hotkey_id id,
|
||||
obs_hotkey_t *hotkey, bool pressed)
|
||||
{
|
||||
UNUSED_PARAMETER(id);
|
||||
UNUSED_PARAMETER(hotkey);
|
||||
|
||||
struct vlc_source *c = data;
|
||||
|
||||
if (pressed && obs_source_active(c->source))
|
||||
vlcs_playlist_next(c);
|
||||
}
|
||||
|
||||
static void vlcs_playlist_prev_hotkey(void *data, obs_hotkey_id id,
|
||||
obs_hotkey_t *hotkey, bool pressed)
|
||||
{
|
||||
UNUSED_PARAMETER(id);
|
||||
UNUSED_PARAMETER(hotkey);
|
||||
|
||||
struct vlc_source *c = data;
|
||||
|
||||
if (pressed && obs_source_active(c->source))
|
||||
vlcs_playlist_prev(c);
|
||||
}
|
||||
|
||||
static void *vlcs_create(obs_data_t *settings, obs_source_t *source)
|
||||
{
|
||||
struct vlc_source *c = bzalloc(sizeof(*c));
|
||||
c->source = source;
|
||||
|
||||
c->play_pause_hotkey = obs_hotkey_register_source(source,
|
||||
"VLCSource.PlayPause",
|
||||
obs_module_text("PlayPause"),
|
||||
vlcs_play_pause_hotkey, c);
|
||||
|
||||
c->restart_hotkey = obs_hotkey_register_source(source,
|
||||
"VLCSource.Restart",
|
||||
obs_module_text("Restart"),
|
||||
vlcs_restart_hotkey, c);
|
||||
|
||||
c->stop_hotkey = obs_hotkey_register_source(source,
|
||||
"VLCSource.Stop",
|
||||
obs_module_text("Stop"),
|
||||
vlcs_stop_hotkey, c);
|
||||
|
||||
c->playlist_next_hotkey = obs_hotkey_register_source(source,
|
||||
"VLCSource.PlaylistNext",
|
||||
obs_module_text("PlaylistNext"),
|
||||
vlcs_playlist_next_hotkey, c);
|
||||
|
||||
c->playlist_prev_hotkey = obs_hotkey_register_source(source,
|
||||
"VLCSource.PlaylistPrev",
|
||||
obs_module_text("PlaylistPrev"),
|
||||
vlcs_playlist_prev_hotkey, c);
|
||||
|
||||
pthread_mutex_init_value(&c->mutex);
|
||||
if (pthread_mutex_init(&c->mutex, NULL) != 0)
|
||||
goto error;
|
||||
|
|
@ -680,6 +832,7 @@ static void vlcs_defaults(obs_data_t *settings)
|
|||
obs_data_set_default_bool(settings, S_SHUFFLE, false);
|
||||
obs_data_set_default_string(settings, S_BEHAVIOR,
|
||||
S_BEHAVIOR_STOP_RESTART);
|
||||
obs_data_set_default_int(settings, S_NETWORK_CACHING, 400);
|
||||
}
|
||||
|
||||
static obs_properties_t *vlcs_properties(void *data)
|
||||
|
|
@ -691,6 +844,7 @@ static obs_properties_t *vlcs_properties(void *data)
|
|||
struct dstr path = {0};
|
||||
obs_property_t *p;
|
||||
|
||||
obs_properties_set_flags(ppts, OBS_PROPERTIES_DEFER_UPDATE);
|
||||
obs_properties_add_bool(ppts, S_LOOP, T_LOOP);
|
||||
obs_properties_add_bool(ppts, S_SHUFFLE, T_SHUFFLE);
|
||||
|
||||
|
|
@ -746,13 +900,18 @@ static obs_properties_t *vlcs_properties(void *data)
|
|||
dstr_free(&filter);
|
||||
dstr_free(&exts);
|
||||
|
||||
obs_properties_add_int(ppts, S_NETWORK_CACHING, T_NETWORK_CACHING,
|
||||
100, 60000, 10);
|
||||
|
||||
return ppts;
|
||||
}
|
||||
|
||||
struct obs_source_info vlc_source_info = {
|
||||
.id = "vlc_source",
|
||||
.type = OBS_SOURCE_TYPE_INPUT,
|
||||
.output_flags = OBS_SOURCE_ASYNC_VIDEO | OBS_SOURCE_AUDIO,
|
||||
.output_flags = OBS_SOURCE_ASYNC_VIDEO |
|
||||
OBS_SOURCE_AUDIO |
|
||||
OBS_SOURCE_DO_NOT_DUPLICATE,
|
||||
.get_name = vlcs_get_name,
|
||||
.create = vlcs_create,
|
||||
.destroy = vlcs_destroy,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue