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
408 results
Show changes
Commits on Source (9)
......@@ -27,8 +27,6 @@
#include <ebml/EbmlElement.h>
#include <ebml/EbmlId.h>
#include <vlc_threads.h>
#include <algorithm>
#include <typeinfo>
#include <vector>
......
......@@ -23,8 +23,18 @@
#include "chapter_command.hpp"
#include <vlc_arrays.h>
namespace mkv {
chapter_codec_cmds_c::~chapter_codec_cmds_c()
{
delete p_private_data;
vlc_delete_all( enter_cmds );
vlc_delete_all( leave_cmds );
vlc_delete_all( during_cmds );
}
void chapter_codec_cmds_c::AddCommand( const KaxChapterProcessCommand & command )
{
uint32_t codec_time = uint32_t(-1);
......
......@@ -24,7 +24,6 @@
#ifndef VLC_MKV_CHAPTER_COMMAND_HPP_
#define VLC_MKV_CHAPTER_COMMAND_HPP_
#include <vlc_arrays.h>
#include "mkv.hpp"
struct vlc_spu_highlight_t;
......@@ -61,13 +60,7 @@ public:
,vm( vm_ )
{}
virtual ~chapter_codec_cmds_c()
{
delete p_private_data;
vlc_delete_all( enter_cmds );
vlc_delete_all( leave_cmds );
vlc_delete_all( during_cmds );
}
virtual ~chapter_codec_cmds_c();
void SetPrivate( const KaxChapterProcessPrivate & private_data )
{
......
......@@ -25,6 +25,8 @@
#include "chapter_command.hpp"
#include <vlc_arrays.h>
#include <functional>
#include <algorithm>
......
......@@ -68,23 +68,39 @@ void event_thread_t::ResetPci()
if( !is_running )
return;
vlc_mutex_lock( &lock );
b_abort = true;
vlc_cond_signal( &wait );
vlc_mutex_unlock( &lock );
{
vlc_mutex_locker lock_guard(&lock);
b_abort = true;
vlc_cond_signal( &wait );
}
vlc_join( thread, NULL );
is_running = false;
}
int event_thread_t::SendEventNav( int nav_query )
int event_thread_t::SendEventNav( demux_query_e nav_query )
{
NavivationKey key;
switch( nav_query )
{
case DEMUX_NAV_LEFT: key = NavivationKey::LEFT; break;
case DEMUX_NAV_RIGHT: key = NavivationKey::RIGHT; break;
case DEMUX_NAV_UP: key = NavivationKey::UP; break;
case DEMUX_NAV_DOWN: key = NavivationKey::DOWN; break;
case DEMUX_NAV_ACTIVATE: key = NavivationKey::OK; break;
case DEMUX_NAV_MENU: key = NavivationKey::MENU; break;
case DEMUX_NAV_POPUP: key = NavivationKey::POPUP; break;
default:
assert(false); // invalid navigation query received
return VLC_ENOTSUP;
}
if( !is_running )
return VLC_EGENERIC;
vlc_mutex_locker lock_guard( &lock );
pending_events.push_back( EventInfo( nav_query ) );
pending_events.push_back( EventInfo( key ) );
vlc_cond_signal( &wait );
......@@ -100,7 +116,7 @@ void event_thread_t::EventMouse( vlc_mouse_t const* new_state, void* userdata )
return vlc_mouse_Init( &info->mouse_state );
info->owner.pending_events.push_back(
EventInfo( info, info->mouse_state, *new_state ) );
EventInfo( info->mouse_state, *new_state ) );
vlc_cond_signal( &info->owner.wait );
info->mouse_state = *new_state;
......@@ -152,20 +168,7 @@ void event_thread_t::HandleKeyEvent( EventInfo const& ev )
{
msg_Dbg( p_demux, "Handle Key Event");
NavivationKey key;
switch( ev.nav.query )
{
case DEMUX_NAV_LEFT: key = NavivationKey::LEFT;
case DEMUX_NAV_RIGHT: key = NavivationKey::RIGHT;
case DEMUX_NAV_UP: key = NavivationKey::UP;
case DEMUX_NAV_DOWN: key = NavivationKey::DOWN;
case DEMUX_NAV_ACTIVATE: key = NavivationKey::OK;
case DEMUX_NAV_MENU: key = NavivationKey::MENU;
case DEMUX_NAV_POPUP: key = NavivationKey::POPUP;
default: return;
}
HandleKeyEvent( key );
HandleKeyEvent( ev.nav.key );
}
void event_thread_t::HandleKeyEvent( NavivationKey key )
......@@ -177,12 +180,12 @@ void event_thread_t::HandleKeyEvent( NavivationKey key )
return;
vlc_mutex_unlock( &lock );
vlc_mutex_lock( &p_sys->lock_demuxer );
// process the button action
interpretor->HandleKeyEvent( key );
{
vlc_mutex_locker demux_lock ( &p_sys->lock_demuxer );
vlc_mutex_unlock( &p_sys->lock_demuxer );
// process the button action
interpretor->HandleKeyEvent( key );
}
vlc_mutex_lock( &lock );
}
......@@ -213,9 +216,11 @@ void event_thread_t::HandleMousePressed( unsigned x, unsigned y )
msg_Dbg( p_demux, "Handle Mouse Event: Mouse clicked x(%d)*y(%d)", x, y);
vlc_mutex_unlock( &lock );
vlc_mutex_lock( &p_sys->lock_demuxer );
interpretor->HandleMousePressed( x, y );
vlc_mutex_unlock( &p_sys->lock_demuxer );
{
vlc_mutex_locker demux_lock ( &p_sys->lock_demuxer );
interpretor->HandleMousePressed( x, y );
}
vlc_mutex_lock( &lock );
}
......@@ -224,24 +229,28 @@ void event_thread_t::SetHighlight( vlc_spu_highlight_t & spu_hl )
/* TODO: only control relevant SPU_ES given who fired the event */
for( auto it : es_list )
{
if( it.category != SPU_ES )
if( it.track.fmt.i_cat != SPU_ES )
continue;
es_out_Control( p_demux->out, ES_OUT_SPU_SET_HIGHLIGHT, it.es, &spu_hl );
es_out_Control( p_demux->out, ES_OUT_SPU_SET_HIGHLIGHT, it.track.p_es, &spu_hl );
}
}
bool event_thread_t::AddES( es_out_id_t* es, int category )
bool event_thread_t::AddTrack( mkv_track_t & track )
{
es_out_id_t* es = track.p_es;
int category = track.fmt.i_cat;
vlc_mutex_locker lock_guard( &lock );
es_list.push_front( ESInfo( es, category, *this ) );
es_list.push_front( ESInfo( track, *this ) );
es_list_t::iterator info = es_list.begin();
if( category == VIDEO_ES )
{
if( es_out_Control( p_demux->out, ES_OUT_VOUT_SET_MOUSE_EVENT,
es, EventMouse, static_cast<void*>( &*info ) ) )
es, static_cast<vlc_mouse_event>(EventMouse),
static_cast<void*>( &*info ) ) )
{
msg_Warn( p_demux, "Unable to subscribe to mouse events" );
es_list.erase( info );
......@@ -251,10 +260,10 @@ bool event_thread_t::AddES( es_out_id_t* es, int category )
return true;
}
void event_thread_t::DelES( es_out_id_t* es )
void event_thread_t::DelTrack( mkv_track_t &track )
{
vlc_mutex_locker lock_guard( &lock );
es_list_t::iterator info = std::find( es_list.begin(), es_list.end(), es );
es_list_t::iterator info = std::find( es_list.begin(), es_list.end(), track );
if( info != es_list.end() )
es_list.erase( info );
}
......
......@@ -46,28 +46,26 @@ public:
void SetPci(const pci_t *data);
void ResetPci();
int SendEventNav( int );
int SendEventNav( demux_query_e );
void SetHighlight( vlc_spu_highlight_t & spu_hl );
bool AddES( es_out_id_t* es, int category );
void DelES( es_out_id_t* es );
bool AddTrack( mkv_track_t & );
void DelTrack( mkv_track_t & );
private:
struct ESInfo {
ESInfo( es_out_id_t* es, int category, event_thread_t& owner )
: es( es )
, category( category )
ESInfo( mkv_track_t & track_, event_thread_t& owner )
: track( track_ )
, owner( owner )
{
vlc_mouse_Init( &mouse_state );
}
bool operator==( es_out_id_t* es ) const {
return this->es == es;
bool operator==( const mkv_track_t & t ) const {
return track.p_es == t.p_es;
}
es_out_id_t* es;
int category;
mkv_track_t & track;
event_thread_t& owner;
vlc_mouse_t mouse_state;
};
......@@ -78,29 +76,26 @@ private:
ActionEvent,
} type;
EventInfo( ESInfo* info, vlc_mouse_t state_old, vlc_mouse_t state_new )
EventInfo( const vlc_mouse_t & state_old, const vlc_mouse_t & state_new )
: type( ESMouseEvent )
, mouse{ state_old, state_new }
{
mouse.es_info = info;
mouse.state_old = state_old;
mouse.state_new = state_new;
}
EventInfo( int query )
EventInfo( NavivationKey key )
: type( ActionEvent )
, nav{ key }
{
nav.query = query;
}
union {
struct {
ESInfo* es_info;
vlc_mouse_t state_old;
vlc_mouse_t state_new;
const vlc_mouse_t state_old;
const vlc_mouse_t state_new;
} mouse;
struct {
int query;
const NavivationKey key;
} nav;
};
};
......
......@@ -27,6 +27,8 @@
#include "util.hpp"
#include "Ebml_dispatcher.hpp"
#include <vlc_arrays.h>
#include <new>
#include <iterator>
#include <limits>
......@@ -1132,7 +1134,7 @@ bool matroska_segment_c::ESCreate()
track.p_es = es_out_Add( sys.demuxer.out, &track.fmt );
if( track.p_es &&
!sys.ev.AddES( track.p_es, track.fmt.i_cat ) )
!sys.ev.AddTrack( track ) )
{
msg_Warn( &sys.demuxer, "Could not register events, interactive menus will not work");
}
......@@ -1171,7 +1173,7 @@ void matroska_segment_c::ESDestroy( )
if( track.p_es != NULL )
{
es_out_Del( sys.demuxer.out, track.p_es );
sys.ev.DelES( track.p_es );
sys.ev.DelTrack( track );
track.p_es = NULL;
}
}
......
......@@ -483,7 +483,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
case DEMUX_NAV_RIGHT:
case DEMUX_NAV_POPUP:
case DEMUX_NAV_MENU:
return p_sys->ev.SendEventNav( i_query );
return p_sys->ev.SendEventNav( static_cast<demux_query_e>(i_query) );
case DEMUX_CAN_PAUSE:
case DEMUX_SET_PAUSE_STATE:
......