From e7905be87af7414c3386e8074fa5726459ddfba0 Mon Sep 17 00:00:00 2001
From: metehan-arslan <99metehanarslan@gmail.com>
Date: Thu, 25 Aug 2022 20:36:47 +0300
Subject: [PATCH 1/5]  replace deprecated option

---
 create_main.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/create_main.sh b/create_main.sh
index 3bbaf9a..5092e7e 100755
--- a/create_main.sh
+++ b/create_main.sh
@@ -41,7 +41,7 @@ emcc --bind -s USE_PTHREADS=1 -s TOTAL_MEMORY=2GB -s PTHREAD_POOL_SIZE=25 \
     --profiling-funcs \
     -s OFFSCREENCANVAS_SUPPORT=1 \
     -s MODULARIZE=1 -s EXPORT_NAME="initModule" \
-    -s EXTRA_EXPORTED_RUNTIME_METHODS="[allocateUTF8, writeAsciiToMemory]" \
+    -s EXPORTED_RUNTIME_METHODS="[allocateUTF8, writeAsciiToMemory]" \
     -s ASYNCIFY=1 -O3 \
     -s EXIT_RUNTIME=1 -s ASSERTIONS=1 \
     -I $PATH_VLC/include/ \
-- 
GitLab


From 9e065eaf8e4ff6997cb104dd31e146528ba7a714 Mon Sep 17 00:00:00 2001
From: metehan-arslan <99metehanarslan@gmail.com>
Date: Thu, 25 Aug 2022 20:37:15 +0300
Subject: [PATCH 2/5] add leading zero to seconds text

---
 lib/overlay.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/overlay.js b/lib/overlay.js
index 8f51b8c..c350cf4 100644
--- a/lib/overlay.js
+++ b/lib/overlay.js
@@ -135,11 +135,11 @@ export function update_overlay(overlay) {
     let time = media_player.get_time();
     let seconds = Math.trunc(time / 1000);
     let minutes = Math.trunc(seconds / 60);
-    seconds = seconds % 60;
+    seconds = ('00'+seconds % 60).slice(-2);
     let max_time = media_player.get_length();
     let max_seconds = Math.trunc(max_time / 1000);
     let max_minutes = Math.trunc(max_seconds / 60);
-    max_seconds = max_seconds % 60;
+    max_seconds = ('00' + (max_seconds % 60)).slice(-2);
 
     ctx.textAlign = "right";
     ctx.textBaseline = "middle";
-- 
GitLab


From 7fb34334e259b64550a695edd088b7b585db2c47 Mon Sep 17 00:00:00 2001
From: metehan-arslan <99metehanarslan@gmail.com>
Date: Thu, 25 Aug 2022 20:38:24 +0300
Subject: [PATCH 3/5] add favicon

---
 favicon.ico | Bin 0 -> 86358 bytes
 vlc.html    |   1 +
 2 files changed, 1 insertion(+)
 create mode 100644 favicon.ico

diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a7d628836178517a887a92d8cf96b7d7e5af2d35
GIT binary patch
literal 86358
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

literal 0
HcmV?d00001

diff --git a/vlc.html b/vlc.html
index 4b00798..aa049c2 100644
--- a/vlc.html
+++ b/vlc.html
@@ -1,5 +1,6 @@
 <!doctype html>
 <html lang="en-us">
+<link rel="vlc_favicon" href="favicon.ico">
 <head>
     <meta charset="utf-8">
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-- 
GitLab


From 5c34def85080bca8c2f6a0a017017130cafc42d3 Mon Sep 17 00:00:00 2001
From: metehan-arslan <99metehanarslan@gmail.com>
Date: Fri, 26 Aug 2022 22:55:25 +0300
Subject: [PATCH 4/5] fix jitter in flac playback

---
 .../0078-fix-jitter-in-flac-playback.patch    | 136 ++++++++++++++++++
 1 file changed, 136 insertions(+)
 create mode 100644 vlc_patches/aug/0078-fix-jitter-in-flac-playback.patch

diff --git a/vlc_patches/aug/0078-fix-jitter-in-flac-playback.patch b/vlc_patches/aug/0078-fix-jitter-in-flac-playback.patch
new file mode 100644
index 0000000..2a6255a
--- /dev/null
+++ b/vlc_patches/aug/0078-fix-jitter-in-flac-playback.patch
@@ -0,0 +1,136 @@
+From 41b4a0210077f0e9c677b94823a5d7c070fb08ab Mon Sep 17 00:00:00 2001
+From: metehan-arslan <99metehanarslan@gmail.com>
+Date: Fri, 26 Aug 2022 22:50:21 +0300
+Subject: [PATCH] fix jitter in flac playback
+
+---
+ modules/audio_output/emscripten.cpp | 51 +++++++++++++++++++++--------
+ 1 file changed, 37 insertions(+), 14 deletions(-)
+
+diff --git a/modules/audio_output/emscripten.cpp b/modules/audio_output/emscripten.cpp
+index a7e9fb0d4d..de442e2b73 100644
+--- a/modules/audio_output/emscripten.cpp
++++ b/modules/audio_output/emscripten.cpp
+@@ -40,8 +40,7 @@
+ #define STORAGE_SIZE 1024 * 1024
+ // Sample rate might change, and it would be good to be able to change it during playback.
+ #define AUDIO_WORKLET_SAMPLE_RATE 44100
+-// Don't know any way to get the browser's supported number of channels.
+-#define AUDIO_WORKLET_NB_CHANNELS 2
++
+ 
+ using namespace emscripten;
+ namespace {
+@@ -70,11 +69,11 @@ namespace {
+ 		uintptr_t getSabPtr() const { return sab_ptr; };
+ 		void setSabPtr(uintptr_t p_sab) { sab_ptr = p_sab; };
+ 
+-		int8_t channels;
+-		int8_t getChannels() const { return channels; };
++		unsigned channels;
++		unsigned getChannels() const { return channels; };
+ 		void setChannels(int8_t chan) { channels = chan; };
+ 
+-		AWNodeWrapper(int sample_rate) {
++		AWNodeWrapper(unsigned long sample_rate) {
+ 			// Prepare audio context options
+ 			val audio_ctx_options = val::object();
+ 			audio_ctx_options.set("sampleRate", sample_rate);
+@@ -146,7 +145,10 @@ namespace {
+ 	{
+ 		sound_buffer_t *sab; // TODO - rename to sound_buff
+ 		AWNodeWrapper *awn_inst;
+-
++		
++		// let's see if it changes channels to 2 and samplerate to 44100;
++	    unsigned i_channelCount = 0;
++        unsigned long i_sampleRate = 48000;
+ 	} aout_sys_t;
+ 
+ 	EM_BOOL requestAnimationFrame_cb( double time, void *userData ) {
+@@ -177,7 +179,7 @@ namespace {
+ 	void Flush( audio_output_t *aout )
+ 	{
+ 		aout_sys_t * sys = reinterpret_cast<aout_sys_t *>(aout->sys);
+-		bzero(&sys->sab->storage, sizeof(sys->sab->storage));
++		memset(&sys->sab->storage, 0, sizeof(sys->sab->storage));
+ 	}
+ 
+ 	int Start( audio_output_t *aout, audio_sample_format_t *restrict fmt )
+@@ -188,8 +190,8 @@ namespace {
+ 		if (( nbChannels == 0 ) || !AOUT_FMT_LINEAR(fmt))
+ 			return VLC_EGENERIC;
+ 		fmt->i_format = VLC_CODEC_FL32;
+-		fmt->i_channels = AUDIO_WORKLET_NB_CHANNELS;
+-		fmt->i_rate = AUDIO_WORKLET_SAMPLE_RATE;
++		fmt->i_channels = sys->i_channelCount;
++		fmt->i_rate = sys->i_sampleRate;
+ 
+ 		// resume audio context (first start, it is paused when initialized)
+ 		sys->sab->is_paused.store(1);
+@@ -216,7 +218,7 @@ namespace {
+ 
+ 			// Copy the part of the data at the buffer start
+ 			unsigned data_size_copy_start = data_size - data_size_copy_end;
+-			memcpy(sab_view + head, data, data_size_copy_start);
++			memcpy(sab_view + head, data + data_size_copy_end, data_size_copy_start);
+ 			head = data_size_copy_start;
+ 		}
+ 		else {
+@@ -324,17 +326,38 @@ namespace {
+ 		aout->time_get = Time_Get;
+ 		aout->volume_set = Volume_Set;
+ 		aout->mute_set = Mute_Set;
+-
++		
++        // Audio output is breaking when we implement i_sampleRate in here.
+ 		sys->awn_inst = new AWNodeWrapper(AUDIO_WORKLET_SAMPLE_RATE);
+ 		sys->sab = (sound_buffer_t*)malloc(sizeof(sound_buffer_t));
+ 
+ 		if ( unlikely(sys->sab == NULL) )
+ 			return VLC_ENOMEM;
+-		bzero(sys->sab, sizeof(sound_buffer_t));
++		memset(sys->sab, 0, sizeof(sound_buffer_t));
+ 		sys->sab->volume = 100;
+ 
+ 		val webaudio_context = sys->awn_inst->getCtx();
+ 
++        //These EM_ASM values needs to be re-written with Emval. (WiP)
++        EM_ASM(
++        let actx = new AudioContext();
++        console.log("maxChannelCount: " + actx.destination.maxChannelCount);
++        );
++
++        sys->i_channelCount = EM_ASM_INT(
++        let actx = new AudioContext();
++        console.log("channelCount: " + actx.destination.channelCount);
++        return actx.destination.maxChannelCount;
++        );
++        msg_Info(aout, "i_channelCount: %d", sys->i_channelCount);
++
++        sys->i_sampleRate = EM_ASM_INT(
++        let actx = new AudioContext();
++        console.log("sampleRate: " + actx.destination.context.sampleRate );
++        return actx.destination.context.sampleRate;
++        );
++        msg_Info(aout, "i_sampleRate: %lu", sys->i_sampleRate);
++
+ 		// Prepare audioWorkletProcessor blob
+ 		val document = val::global("document");
+ 		val script = document.call<val>("createElement", std::string("SCRIPT"));
+@@ -396,10 +419,10 @@ registerProcessor('worklet-processor', Processor);";
+ 		val WorkletModuleUrl = val::global("URL").call<val>("createObjectURL", val::global("Blob").new_(ProcessorTextArray, BlobObject));
+ 
+ 		// Prepare audioWorkletProcessor callback
+-		val cb_caller = val::module_property("awn_cb_wrapper").new_(AUDIO_WORKLET_SAMPLE_RATE);
++		val cb_caller = val::module_property("awn_cb_wrapper").new_(sys->i_sampleRate);
+ 		cb_caller.set("context", val(webaudio_context));
+ 		cb_caller.set("sab_ptr", val(reinterpret_cast<uintptr_t>(sys->sab)));
+-		cb_caller.set("channels", val(AUDIO_WORKLET_NB_CHANNELS));
++		cb_caller.set("channels", val(sys->i_channelCount));
+ 		val awn_caller = cb_caller["awn_call"];
+ 		val awn_cb = awn_caller.call<val>("bind", cb_caller);
+ 
+-- 
+2.37.2
+
-- 
GitLab


From 7c1cb3ce7bcfacfde9e6d508651c4db757a728c2 Mon Sep 17 00:00:00 2001
From: Metehan Arslan <99metehanarslan@gmail.com>
Date: Tue, 30 Aug 2022 17:48:25 +0000
Subject: [PATCH 5/5] play media after clicking the seekbar

---
 lib/overlay.js | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/overlay.js b/lib/overlay.js
index c350cf4..b9e2b5d 100644
--- a/lib/overlay.js
+++ b/lib/overlay.js
@@ -210,6 +210,9 @@ export function on_overlay_click(overlay, mouse_event) {
     if (x > PROGRESS_BAR_X && x < PROGRESS_BAR_X + PROGRESS_BAR_WIDTH) {
       let progress = (x - PROGRESS_BAR_X) / PROGRESS_BAR_WIDTH;
       media_player.set_position(progress);
+      if (!media_player.is_playing()){
+        media_player.toggle_play();
+      }
       update_overlay(overlay);
     }
 
-- 
GitLab