sylware / nyanmp (public) (License: AGPLv3) (since 2020-02-12) (hash sha1)
intended to become a collection of media players for gnu/linux based on ffmpeg, alsa, vulkan, x11, wayland, etc.
List of commits:
Subject Hash Author Date (UTC)
npv: video timer names 8ab20e0c91538f9f84c09c78ee2d5242b5b74607 Sylvain BERTRAND 2020-05-30 17:14:56
npv:less worse pause support, some cleanup ded1666c8970d67bba8f5d0d2ee25230403bc9c3 Sylvain BERTRAND 2020-05-30 16:26:21
npv:fix dynamic loading of xcb lib 0235137068f40277460c4b6ea340bc5674d8dc7d Sylvain BERTRAND 2020-05-29 21:21:01
npv:x11/xcb screensaver heartbeat bd293398599beae694bd3f862c374489067a9f53 Sylvain BERTRAND 2020-05-29 21:06:00
npa: don't slow down too much the audio thread 1b8f1e2dd1d5272cd04a8fa711f26cdc3b6e1049 Sylvain BERTRAND 2020-05-29 03:00:23
npv/npa: lockless madness and much more 368cb50098ac824cc5cb603c3e1539adfeda7e1d Sylvain BERTRAND 2020-05-29 02:20:19
npv:restore pause/seeking, add tmp info command cf4da499db3123561aacd8732cd1eb97b9146e55 Sylvain BERTRAND 2020-05-27 17:31:56
npv:bugs, finer-grained locking, pthread_cond, etc 8bd06c28483adc9986b8b51612e609115948943d Sylvain BERTRAND 2020-05-26 23:59:16
npv: fix obvious multithread bug db4f3801c2185b8da1d9fb3f4b3da3d2ab92ea13 Sylvain BERTRAND 2020-05-24 21:42:08
remove old commented code d3701c5734aceda5c46cd5f60281cc524c55e4a3 Sylvain BERTRAND 2020-05-24 19:29:04
npv: video: handle latency spikes on main thread f629068cb27b47530058f81fc2b065b0786b4afa Sylvain BERTRAND 2020-05-24 18:11:07
npv: media pipeline 30efa7c8f2574c676d9d41b8bf5678d5725b8721 Sylvain BERTRAND 2020-05-24 17:40:23
alsa-lib warning 54b6dc9b912bb9509ba35405f15a623632adf784 Sylvain BERTRAND 2020-05-19 14:32:04
npv: proper handling of snd_pcm_drain() db7959bdd5f7ed921773aef42984b1c982575ad4 Sylvain BERTRAND 2020-05-15 15:00:13
proper handling of snd_pcm_drain() ae2c6458f893e77cd352fe9225e123bdf077e33f Sylvain BERTRAND 2020-05-15 14:46:30
after network testing: need an input thread 0c26bffd3c2268cfb9f7d8e43c7aba2fbf7fec16 Sylvain BERTRAND 2020-05-13 23:11:20
spin on futex waiting in threaded scaler e90420f459c608cbcbae423b3c487598a83de359 Sylvain BERTRAND 2020-05-13 21:05:48
npa tidying and npv addition, usable on our system 443ff39347c8b599dfaafff612caed84287f1a70 Sylvain BERTRAND 2020-05-13 15:12:15
here we go d5a2b11f4d73ec5365a340163f451fa8a123d728 Sylvain BERTRAND 2020-02-12 18:50:57
Commit 8ab20e0c91538f9f84c09c78ee2d5242b5b74607 - npv: video timer names
Author: Sylvain BERTRAND
Author date (UTC): 2020-05-30 17:14
Committer name: Sylvain BERTRAND
Committer date (UTC): 2020-05-30 17:14
Parent(s): ded1666c8970d67bba8f5d0d2ee25230403bc9c3
Signer:
Signing key:
Signing status: N
Tree: 79c8e7c41c542b463c601e88394f197dfd69a25f
File Lines added Lines deleted
npv/local/code.frag.c 3 3
npv/video/namespace/public.h 2 2
npv/video/public.h 2 2
npv/video/public/code.frag.c 3 3
File npv/local/code.frag.c changed (mode: 100644) (index ef428d8..189ec3b)
... ... static void cmd_pause(void)
799 799 avformat_read_play(fmt_ctx_p); avformat_read_play(fmt_ctx_p);
800 800 fmt_ctx_unlock(); fmt_ctx_unlock();
801 801 clk_unpause(); clk_unpause();
802 video_timer_140fps_start();
802 video_timer_start();
803 803 } else { } else {
804 804 int r; int r;
805 805
 
... ... static void cmd_pause(void)
809 809 avformat_read_pause(fmt_ctx_p); avformat_read_pause(fmt_ctx_p);
810 810 fmt_ctx_unlock(); fmt_ctx_unlock();
811 811 clk_pause(); clk_pause();
812 video_timer_10fps_start();
812 video_timer_slow_start();
813 813 } }
814 814 } }
815 815 static void cmd_vol_up(void) static void cmd_vol_up(void)
 
... ... int main(int argc, u8 **args)
867 867 POUT("predecoding audio and video..."); POUT("predecoding audio and video...");
868 868 predecode_wait(); predecode_wait();
869 869 POUT("done\n"); POUT("done\n");
870 video_timer_140fps_start();
870 video_timer_start();
871 871
872 872 loop evts_loop(); loop evts_loop();
873 873 /* unreachable */ /* unreachable */
File npv/video/namespace/public.h changed (mode: 100644) (index ea41aad..cbcd966)
16 16 #define scaler_p video_scaler_p #define scaler_p video_scaler_p
17 17 #define st_p video_st_p #define st_p video_st_p
18 18 #define timer_fd_p video_timer_fd_p #define timer_fd_p video_timer_fd_p
19 #define timer_140fps_start video_timer_140fps_start
20 #define timer_10fps_start video_timer_10fps_start
19 #define timer_slow_start video_timer_slow_start
20 #define timer_start video_timer_start
21 21 #define timer_evt video_timer_evt #define timer_evt video_timer_evt
22 22 /*============================================================================*/ /*============================================================================*/
23 23 #else #else
File npv/video/public.h changed (mode: 100644) (index 3ef832c..b417dac)
... ... static u8 dec_fr_try_receive(void);
24 24 static void dec_frs_receive_avail(void); static void dec_frs_receive_avail(void);
25 25 static void init_once(void); static void init_once(void);
26 26 static void timer_evt(void); static void timer_evt(void);
27 static void timer_140fps_start(void);
28 static void timer_10fps_start(void);
27 static void timer_start(void);
28 static void timer_slow_start(void);
29 29 static void dec_ctx_lock(void); static void dec_ctx_lock(void);
30 30 static void dec_ctx_unlock(void); static void dec_ctx_unlock(void);
31 31 static void dec_frs_lock(void); static void dec_frs_lock(void);
File npv/video/public/code.frag.c changed (mode: 100644) (index 65b73e3..084e9ee)
... ... static void dec_ctx_cfg(avcodec_params_t *params)
64 64 if (r < 0) if (r < 0)
65 65 FATALVFF("unable to open the decoder context\n"); FATALVFF("unable to open the decoder context\n");
66 66 } }
67 static void timer_140fps_start(void)
67 static void timer_start(void)
68 68 { {
69 69 struct itimerspec t; struct itimerspec t;
70 70 int r; int r;
 
... ... static void timer_140fps_start(void)
72 72 memset(&t, 0, sizeof(t)); memset(&t, 0, sizeof(t));
73 73 /* initial and interval */ /* initial and interval */
74 74 t.it_value.tv_nsec = 1; /* asap */ t.it_value.tv_nsec = 1; /* asap */
75 t.it_interval.tv_nsec = 7000000; /* ~7ms */
75 t.it_interval.tv_nsec = 2000000; /* 2ms */
76 76 r = timerfd_settime(timer_fd_p, 0, &t, 0); r = timerfd_settime(timer_fd_p, 0, &t, 0);
77 77 if (r == -1) if (r == -1)
78 78 FATALV("unable to arm the timer\n"); FATALV("unable to arm the timer\n");
79 79 } }
80 static void timer_10fps_start(void)
80 static void timer_slow_start(void)
81 81 { {
82 82 struct itimerspec t; struct itimerspec t;
83 83 int r; int r;
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/sylware/nyanmp

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/sylware/nyanmp

Clone this repository using git:
git clone git://git.rocketgit.com/user/sylware/nyanmp

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main