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 (2)
......@@ -198,6 +198,7 @@ libmkv_plugin_la_SOURCES = \
demux/mkv/chapter_command.hpp demux/mkv/chapter_command.cpp \
demux/mkv/chapter_command_dvd.hpp demux/mkv/chapter_command_dvd.cpp \
demux/mkv/chapter_command_script.hpp demux/mkv/chapter_command_script.cpp \
demux/mkv/chapter_command_script_common.hpp demux/mkv/chapter_command_script_common.cpp \
demux/mkv/stream_io_callback.hpp demux/mkv/stream_io_callback.cpp \
demux/mkv/vlc_colors.c demux/mkv/vlc_colors.h \
demux/vobsub.h \
......
......@@ -275,6 +275,7 @@ if libebml_dep.found() and libmatroska_dep.found()
'mkv/chapter_command.cpp',
'mkv/chapter_command_dvd.cpp',
'mkv/chapter_command_script.cpp',
'mkv/chapter_command_script_common.cpp',
'mkv/stream_io_callback.cpp',
'mkv/vlc_colors.c',
'mp4/libmp4.c',
......
......@@ -89,7 +89,6 @@ protected:
struct vlc_logger *l;
chapter_codec_vm & vm;
};
} // namespace
#endif
// Copyright (C) 2003-2024 VLC authors and VideoLAN
// SPDX-License-Identifier: LGPL-2.1-or-later
//
// chapter_command_script.cpp : DVD codec for Matroska Chapter Codecs
// chapter_command_script.cpp : Matroska Script Codec for Matroska Chapter Codecs
// Authors: Laurent Aimar <fenrir@via.ecp.fr>
// Steve Lhomme <steve.lhomme@free.fr>
......@@ -11,6 +11,7 @@
namespace mkv {
//Matroska Script
const std::string matroska_script_interpretor_c::CMD_MS_GOTO_AND_PLAY = "GotoAndPlay";
// see http://www.matroska.org/technical/specs/chapters/index.html#mscript
......@@ -65,36 +66,4 @@ bool matroska_script_interpretor_c::Interpret( const binary * p_command, size_t
return b_result;
}
bool matroska_script_codec_c::Enter()
{
bool f_result = false;
ChapterProcess::iterator index = enter_cmds.begin();
while ( index != enter_cmds.end() )
{
if ( (*index).GetSize() )
{
vlc_debug( l, "Matroska Script enter command" );
f_result |= interpreter.Interpret( (*index).GetBuffer(), (*index).GetSize() );
}
++index;
}
return f_result;
}
bool matroska_script_codec_c::Leave()
{
bool f_result = false;
ChapterProcess::iterator index = leave_cmds.begin();
while ( index != leave_cmds.end() )
{
if ( (*index).GetSize() )
{
vlc_debug( l, "Matroska Script leave command" );
f_result |= interpreter.Interpret( (*index).GetBuffer(), (*index).GetSize() );
}
++index;
}
return f_result;
}
} // namespace
......@@ -8,42 +8,39 @@
#ifndef VLC_MKV_CHAPTER_COMMAND_SCRIPT_HPP_
#define VLC_MKV_CHAPTER_COMMAND_SCRIPT_HPP_
#include "chapter_command.hpp"
#include "chapter_command_script_common.hpp"
namespace mkv {
class matroska_script_interpretor_c
class matroska_script_interpretor_c : public matroska_script_interpreter_common_c
{
public:
matroska_script_interpretor_c( struct vlc_logger *log, chapter_codec_vm & vm_ )
:l( log )
,vm( vm_ )
:matroska_script_interpreter_common_c(log, vm_)
{}
bool Interpret( const binary * p_command, size_t i_size );
bool Interpret( const binary * p_command, size_t i_size ) override;
// DVD command IDs
// Matroska Script commands
static const std::string CMD_MS_GOTO_AND_PLAY;
protected:
struct vlc_logger *l;
chapter_codec_vm & vm;
};
class matroska_script_codec_c : public chapter_codec_cmds_c
class matroska_script_codec_c : public matroska_script_codec_common_c
{
public:
matroska_script_codec_c( struct vlc_logger *log, chapter_codec_vm & vm_ )
:chapter_codec_cmds_c( log, vm_, MATROSKA_CHAPTER_CODEC_NATIVE )
,interpreter( log, vm_ )
matroska_script_codec_c( struct vlc_logger *log, chapter_codec_vm & vm_, matroska_script_interpretor_c & interpreter_)
:matroska_script_codec_common_c( log, vm_, MATROSKA_CHAPTER_CODEC_NATIVE )
,interpreter( interpreter_ )
{}
bool Enter();
bool Leave();
matroska_script_interpreter_common_c & get_interpreter() override
{
return interpreter;
}
protected:
matroska_script_interpretor_c interpreter;
matroska_script_interpretor_c & interpreter;
};
} // namespace
......
// Copyright (C) 2024 VLC authors and VideoLAN
// SPDX-License-Identifier: LGPL-2.1-or-later
//
// chapter_command_script_common.cpp :
// Common file for Matroska JS and Matroska Script
// Authors: Laurent Aimar <fenrir@via.ecp.fr>
// Steve Lhomme <steve.lhomme@free.fr>
// Khalid Masum <khalid.masum.92@gmail.com>
#include "chapter_command_script_common.hpp"
namespace mkv {
bool matroska_script_codec_common_c::Enter()
{
bool f_result = false;
ChapterProcess::iterator index = enter_cmds.begin();
while ( index != enter_cmds.end() )
{
if ( (*index).GetSize() )
{
vlc_debug( l, "Matroska Script enter command" );
f_result |= get_interpreter().Interpret( (*index).GetBuffer(), (*index).GetSize() );
}
++index;
}
return f_result;
}
bool matroska_script_codec_common_c::Leave()
{
bool f_result = false;
ChapterProcess::iterator index = leave_cmds.begin();
while ( index != leave_cmds.end() )
{
if ( (*index).GetSize() )
{
vlc_debug( l, "Matroska Script leave command" );
f_result |= get_interpreter().Interpret( (*index).GetBuffer(), (*index).GetSize() );
}
++index;
}
return f_result;
}
} // namespace
// Copyright (C) 2003-2024 VLC authors and VideoLAN
// SPDX-License-Identifier: LGPL-2.1-or-later
//
// chapter_command_script.hpp : MatroskaScript codec for Matroska Chapter Codecs
// Authors: Laurent Aimar <fenrir@via.ecp.fr>
// Steve Lhomme <steve.lhomme@free.fr>
#ifndef VLC_MKV_CHAPTER_COMMAND_SCRIPT_COMMON_HPP_
#define VLC_MKV_CHAPTER_COMMAND_SCRIPT_COMMON_HPP_
#include "chapter_command.hpp"
namespace mkv {
class matroska_script_interpreter_common_c
{
public:
matroska_script_interpreter_common_c( struct vlc_logger *log, chapter_codec_vm & vm_ )
:l( log )
,vm( vm_ )
{}
virtual ~matroska_script_interpreter_common_c() = default;
// DVD command IDs
virtual bool Interpret( const binary * p_command, size_t i_size ) = 0;
protected:
struct vlc_logger *l;
chapter_codec_vm & vm;
};
class matroska_script_codec_common_c : public chapter_codec_cmds_c
{
public:
matroska_script_codec_common_c( struct vlc_logger *log, chapter_codec_vm &vm_, enum chapter_codec_id codec_id)
:chapter_codec_cmds_c(log, vm_, codec_id)
{}
bool Enter();
bool Leave();
virtual matroska_script_interpreter_common_c & get_interpreter()=0;
};
} // namespace
#endif // VLC_MKV_CHAPTER_COMMAND_SCRIPT_HPP_
......@@ -28,6 +28,7 @@
#include "chapter_command.hpp"
#include "chapter_command_dvd.hpp"
#include "chapter_command_script.hpp"
#include "events.hpp"
#include <memory>
......@@ -123,6 +124,19 @@ public:
return dvd_interpretor.get();
}
matroska_script_interpretor_c * GetMatroskaScriptInterpreter()
{
if (!ms_interpreter)
{
try {
ms_interpreter = std::make_unique<matroska_script_interpretor_c> ( vlc_object_logger( &demuxer ), *this );
} catch ( const std::bad_alloc & ) {
}
}
return ms_interpreter.get();
}
uint8_t palette[4][4];
vlc_mutex_t lock_demuxer;
......@@ -132,6 +146,7 @@ public:
private:
virtual_segment_c *p_current_vsegment = nullptr;
std::unique_ptr<dvd_command_interpretor_c> dvd_interpretor; // protected by lock_demuxer
std::unique_ptr<matroska_script_interpretor_c> ms_interpreter;
};
} // namespace
......
......@@ -1442,7 +1442,16 @@ void matroska_segment_c::ParseChapterAtom( int i_level, KaxChapterAtom *ca, chap
if( MKV_CHECKED_PTR_DECL_CONST( p_codec_id, KaxChapterProcessCodecID, proc ) )
{
if ( p_codec_id->GetValue() == MATROSKA_CHAPTER_CODEC_NATIVE )
p_ccodec = new matroska_script_codec_c( vlc_object_logger( &vars.obj->sys.demuxer ), vars.obj->sys );
{
auto interpreter = vars.obj->sys.GetMatroskaScriptInterpreter();
if (unlikely(interpreter == nullptr))
debug( vars, "failed to get the Matroska Script interpreter ");
else
p_ccodec = new matroska_script_codec_c(
vlc_object_logger( &vars.obj->sys.demuxer ),
vars.obj->sys, *interpreter
);
}
else if ( p_codec_id->GetValue() == MATROSKA_CHAPTER_CODEC_DVD )
{
auto interepreter = vars.obj->sys.GetDVDInterpretor();
......