<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Caro</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Caro"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Caro/"/>
	<updated>2026-11-04T15:53:21Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Playback_States&amp;diff=57166</id>
		<title>Playback States</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Playback_States&amp;diff=57166"/>
		<updated>2019-01-28T14:48:52Z</updated>

		<summary type="html">&lt;p&gt;Caro: Created page with &amp;quot;= Saving State =  We have different settings and options per media and per Application in the clients. The settings should behave the same across all of Platforms. This docume...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Saving State =&lt;br /&gt;
&lt;br /&gt;
We have different settings and options per media and per Application in the clients. The settings should behave the same across all of Platforms.&lt;br /&gt;
This document tries to formulate a guideline on how to persist these states &lt;br /&gt;
&lt;br /&gt;
==What states need to be considered for persistance?==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border: 1px solid dark green; text-align: center; align: left; margin: 1em auto 1em auto&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;150px&amp;quot; | State/Setting&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;100px&amp;quot; | Media&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;100px&amp;quot; | Application&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;100px&amp;quot; | has Default&lt;br /&gt;
|-&lt;br /&gt;
| Repeat || {{No}} || {{Yes}} || {{No}} ||&lt;br /&gt;
|-          &lt;br /&gt;
| Playback speed  || {{Yes}} || {{No}} || {{Yes}} ||&lt;br /&gt;
|- &lt;br /&gt;
| Shuffle  || {{No}} || {{Yes}} || {{No}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Audio/Video track || {{Yes}} || {{No}} || {{No}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Aspect Ratio  || {{Yes}} || {{No}} || {{No}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Audio/Video sync  || {{Yes}} || {{No}} || {{Yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Equalizer || {{No}} || {{Yes}} || {{No}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Subtitle sync  || {{Yes}} || {{No}} || {{Yes}} ||&lt;br /&gt;
|-&lt;br /&gt;
| last played media  || {{No}} || {{Yes}} || {{No}} ||&lt;br /&gt;
|-&lt;br /&gt;
| play as audio || {{No}} || {{Yes}} || {{No}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Current renderer || {{No}} || {{Yes}} || {{No}} ||&lt;br /&gt;
|-&lt;br /&gt;
| Current position in playlist || {{No}} || {{Yes}} || {{No}} ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
has Default: means that there is a general value and can be changed in the settings or somewhere in the application&lt;br /&gt;
&lt;br /&gt;
Application: means that it is application wide one state&lt;br /&gt;
&lt;br /&gt;
Media: just a state per media&lt;br /&gt;
 &lt;br /&gt;
==Reasoning==&lt;br /&gt;
&lt;br /&gt;
===Playback Speed===&lt;br /&gt;
&lt;br /&gt;
If you watch conference videos you might want to double the speed. Persisting this across the Application when you change it on one Media item and applying it to the next might be confusing and unwanted.&lt;br /&gt;
Instead there should be a default playback speed that can be set. Up for discussion is still if it should be a checkmark next to the playback speed control like [x] always apply or if it should be somewhere hidden in the settings. &lt;br /&gt;
On Android Devices we also detect the medium, like Podcast or Audiobook to set a different playback speed automatically. &lt;br /&gt;
&lt;br /&gt;
=== Audio Video sync, subtitle sync ===&lt;br /&gt;
For bluetooth headsets some users want a default delay to make up for the delay experienced due to bluetooth connectivity&lt;/div&gt;</summary>
		<author><name>Caro</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Hacker_Guide&amp;diff=57165</id>
		<title>Hacker Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Hacker_Guide&amp;diff=57165"/>
		<updated>2019-01-28T14:24:27Z</updated>

		<summary type="html">&lt;p&gt;Caro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is a very popular, but quite large and complex piece of software.&amp;lt;br /&amp;gt;&lt;br /&gt;
It uses a large number of [[Contrib Status|3rd party libraries]]. &lt;br /&gt;
&lt;br /&gt;
VLC development is open source, and then a large community of developers worldwide contribute to it.&amp;lt;br /&amp;gt;&lt;br /&gt;
However, entering a project such as {{VLC}} can be long and complex for new developers. &lt;br /&gt;
&lt;br /&gt;
This &#039;&#039;&#039;guide&#039;&#039;&#039; seeks to help understanding the VLC code base and VLC internals to quickly get up to speed.&amp;lt;br /&amp;gt;&lt;br /&gt;
&#039;&#039;NB: this guide is &#039;&#039;&#039;not&#039;&#039;&#039; about [[Compile|compiling]] VLC.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A very good introduction to VLC can also be found on (an archived copy of the site) [//web.archive.org/web/20141204234622/http://www.enjoythearchitecture.com/vlc-architecture.html enjoythearchitecture].&lt;br /&gt;
&lt;br /&gt;
= The layers of VLC and libVLC  =&lt;br /&gt;
&lt;br /&gt;
== VLC&#039;s Core / libVLCcore  ==&lt;br /&gt;
&lt;br /&gt;
The most important (and probably most complex) part of VLC is the core, located in src/ in the repository. &lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Core|Introduction to the core]]&lt;br /&gt;
** This is a &#039;&#039;&#039;MUST-READ&#039;&#039;&#039; for developers. &lt;br /&gt;
*[[Documentation:VLC Modules Loading|VLC modules loading]]&lt;br /&gt;
** How the numerous VLC modules work and are loaded.&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Input|Input]]&lt;br /&gt;
** How the main input chain works (slightly outdated)&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Object Management|VLC Object Management]]&lt;br /&gt;
*[[Hacker Guide/Variables|VLC variables]]&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/VLM Internals|VLM Internals]]&lt;br /&gt;
&lt;br /&gt;
== Plugins / Modules  ==&lt;br /&gt;
&lt;br /&gt;
[[Documentation:Hacker&#039;s Guide/Module Writers Guide|How to write a VLC module]].&lt;br /&gt;
&lt;br /&gt;
=== Input === &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Access|Access]] &lt;br /&gt;
** An access module provides a byte stream from a location string [[MRL]], like support for files, HTTP streams, webcams...&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Demux|Demuxer]]&lt;br /&gt;
** A demux module parses a byte stream and splits it into [http://en.wikipedia.org/wiki/Elementary_stream elementary streams] (tracks).&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Access Demux|Access-Demuxer]]&lt;br /&gt;
** An access_demux module combines the functionality of access and demux (and bypass any stream filters), splitting elementary streams directly from a location string. It&#039;s used where the bytestream abstraction is inadequate.&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Stream Filters|Stream Filters]]&lt;br /&gt;
** A stream filter module converts a byte stream into another byte stream. It could be used for file or byte stream decryption, as it is already used for decompression (gzip, Bzip2, XZ) and multi-part files.&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Decoder|Decoder]]&lt;br /&gt;
** A decoder takes an elementary stream and convert into raw video, audio or text data, reading for output.&lt;br /&gt;
&lt;br /&gt;
=== Audio === &lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Audio Filters|Audio Filters]] &lt;br /&gt;
**[[Documentation:Hacker&#039;s Guide/Audio Mixers|Audio Mixers]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Audio Output|Audio Output]]&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Video Filters|Video Filters]] &lt;br /&gt;
**[[Documentation:Hacker&#039;s Guide/Video Filters/Deinterlace|Deinterlace]]&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Video Output|Video Output]]&lt;br /&gt;
&lt;br /&gt;
=== Interfaces ===&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Interfaces|Interfaces]]&lt;br /&gt;
&lt;br /&gt;
=== Modules types not documented (yet) ===&lt;br /&gt;
==== Misc ====&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Visualization|Visualization]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Packetizers|Packetizers]]&lt;br /&gt;
&lt;br /&gt;
==== Streaming output ====&lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Encoder|Encoder]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Mux|Mux]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Stream Output|Stream Output]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Access Output|Access Output]]&lt;br /&gt;
&lt;br /&gt;
== libVLC and bindings ==&lt;br /&gt;
&lt;br /&gt;
*Using [[Documentation:Hacker&#039;s Guide/libvlc|libvlc]] &lt;br /&gt;
*bindings&lt;br /&gt;
&lt;br /&gt;
= VLC source code overview  =&lt;br /&gt;
&lt;br /&gt;
*[[VLC source tree]] &lt;br /&gt;
*[[Modules source tree]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Preferences|VLC Preferences]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Playlist|VLC Playlist and Media Library]]&lt;br /&gt;
&lt;br /&gt;
= Coding for VLC  =&lt;br /&gt;
&lt;br /&gt;
*[[Patches|Patching]] &lt;br /&gt;
*[[Sending Patches]] &lt;br /&gt;
*[[Code Conventions]] &lt;br /&gt;
*[[Documentation:Hacker&#039;s Guide/Module Writers Guide|Adding a module]] &lt;br /&gt;
*[[Documentation:Unicode]] &lt;br /&gt;
*[http://www.videolan.org/developers/vlc/doc/doxygen/html/ Doxygen Documentation] &lt;br /&gt;
*[[C Types]] &lt;br /&gt;
*[[Strings]]&lt;br /&gt;
&lt;br /&gt;
= User Experience  =&lt;br /&gt;
&lt;br /&gt;
*[[Playback States]] &lt;br /&gt;
&lt;br /&gt;
= Testing  =&lt;br /&gt;
&lt;br /&gt;
*[[Test Suite]]&lt;br /&gt;
&lt;br /&gt;
= Mozilla plugins =&lt;br /&gt;
&lt;br /&gt;
* [[Plugins/Mozilla|Plugins in Mozilla]]&lt;br /&gt;
&lt;br /&gt;
{{Hacker_Guide}}&lt;/div&gt;</summary>
		<author><name>Caro</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=IOSCompile&amp;diff=26227</id>
		<title>IOSCompile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=IOSCompile&amp;diff=26227"/>
		<updated>2013-11-27T20:35:39Z</updated>

		<summary type="html">&lt;p&gt;Caro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment ==&lt;br /&gt;
&lt;br /&gt;
To develop VLC for iOS, you need:&lt;br /&gt;
* Mac OS X Lion (or later)&lt;br /&gt;
* Latest XCode version (4.6.3 works so far)&lt;br /&gt;
* A correct shell (we recommend iTerm2 and zsh)&lt;br /&gt;
&lt;br /&gt;
== Get the source ==&lt;br /&gt;
&lt;br /&gt;
If you want to develop VLC for iOS, it is &#039;&#039;&#039;highly recommended&#039;&#039;&#039; that you use the [[git]] version:&lt;br /&gt;
&lt;br /&gt;
 git clone git://git.videolan.org/vlc-ports/ios.git&lt;br /&gt;
&lt;br /&gt;
== Build it ==&lt;br /&gt;
&lt;br /&gt;
Build it for the simulator.&lt;br /&gt;
 &lt;br /&gt;
 sh compileVLCforiOS.sh -s&lt;br /&gt;
&lt;br /&gt;
Wait, and grab a coffee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manually assign the code sign in Xcode, and build it for devices.&lt;br /&gt;
&lt;br /&gt;
 sh compileVLCforiOS.sh&lt;br /&gt;
&lt;br /&gt;
Grab a second coffee. :)&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
Open the project in Xcode and click on Run.&lt;br /&gt;
&lt;br /&gt;
If you want to run in the simulator after running compileVLCforiOS.sh without the -s option, you need to run it again with the -s option, and vice versa.&lt;br /&gt;
&lt;br /&gt;
== Send patches ==&lt;br /&gt;
You can create patches and send them to our [http://mailman.videolan.org/listinfo/ios mailing list] ios@v.o, or on our [[IRC]].&lt;br /&gt;
&lt;br /&gt;
Please see [[Git#Submitting_patches]] on how to send patches...&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If everything goes well, congratulations to Lucky You! If not, please report any problem to our [http://mailman.videolan.org/listinfo/ios mailing list] ios@v.o, or on our [[IRC]]. &lt;br /&gt;
&lt;br /&gt;
This might help you more than Google, because any lately committing might cause compiling errors(at least these days), although the latest git is supposed to be an all time stable one.&lt;br /&gt;
&lt;br /&gt;
=== History ===&lt;br /&gt;
The first version of this howto was written by [[User:J-b|jb]] on 18 July 2013.&lt;br /&gt;
&lt;br /&gt;
Last edited by leoujzwiki on 12 Oct 2013.&lt;br /&gt;
&lt;br /&gt;
=== Previous Version ===&lt;br /&gt;
The old version of the app can be compiled using this [[MobileVLC|howto]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;br /&gt;
[[Category:iOS]]&lt;/div&gt;</summary>
		<author><name>Caro</name></author>
	</entry>
</feed>