{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":3459673,"defaultBranch":"master","name":"MPD","ownerLogin":"MusicPlayerDaemon","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2012-02-16T12:28:31.000Z","ownerAvatar":"https://github.com/avatars/u/27852248?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1720196530.0","currentOid":""},"activityList":{"items":[{"before":"959826d1d125a50bc885c374b10f3a15eea644fb","after":"f7790430a0323eadaaa8e0dacce24dda7331d583","ref":"refs/heads/master","pushedAt":"2024-07-31T08:06:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"lib/curl/Multi: add SetSocketFunction(), SetTimerFunction()","shortMessageHtmlLink":"lib/curl/Multi: add SetSocketFunction(), SetTimerFunction()"}},{"before":"dc51015c75f20f8304f1838b8ff8116db773c662","after":"959826d1d125a50bc885c374b10f3a15eea644fb","ref":"refs/heads/master","pushedAt":"2024-07-30T10:43:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"input/ffmpeg: offload FFmpeg calls to thread\n\nPrepare for interruptible I/O.","shortMessageHtmlLink":"input/ffmpeg: offload FFmpeg calls to thread"}},{"before":"b050e0132ed3a207f86545773eaecb8ff11c1b2b","after":"dc51015c75f20f8304f1838b8ff8116db773c662","ref":"refs/heads/master","pushedAt":"2024-07-30T10:33:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"input/mms: move MMS_BUFFER_SIZE into the class","shortMessageHtmlLink":"input/mms: move MMS_BUFFER_SIZE into the class"}},{"before":"c29d23b4c331ce90ee3744669641f4630a4f33f1","after":"b050e0132ed3a207f86545773eaecb8ff11c1b2b","ref":"refs/heads/master","pushedAt":"2024-07-29T21:18:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"input/{async,thread}: add an additional Cond field\n\nThis eliminates the ScopeExchangeInputStreamHandler kludge.","shortMessageHtmlLink":"input/{async,thread}: add an additional Cond field"}},{"before":"4a55e3e8bd88503f40ac53c60297fb2b1d768d02","after":"c29d23b4c331ce90ee3744669641f4630a4f33f1","ref":"refs/heads/master","pushedAt":"2024-07-29T21:09:15.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"input/thread: use notify_one() instead of notify_all()\n\nThere's only ever one waiter, and notify_one() may be faster than\nnotify_all().","shortMessageHtmlLink":"input/thread: use notify_one() instead of notify_all()"}},{"before":"2e78bd430c7b9dbb71b44f1d25597216195812be","after":"4a55e3e8bd88503f40ac53c60297fb2b1d768d02","ref":"refs/heads/master","pushedAt":"2024-07-29T21:03:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"input/thread: check buffer.empty() in IsEOF()","shortMessageHtmlLink":"input/thread: check buffer.empty() in IsEOF()"}},{"before":"dbaa72cb4047db47b7006f03d20b6aa6cf96b9a8","after":"2e78bd430c7b9dbb71b44f1d25597216195812be","ref":"refs/heads/master","pushedAt":"2024-07-29T20:33:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"input/thread: use pass std::span to ThreadRead()","shortMessageHtmlLink":"input/thread: use pass std::span<std::byte> to ThreadRead()"}},{"before":"0899d80ae0df281f8cf5346ef627414a16848804","after":"dbaa72cb4047db47b7006f03d20b6aa6cf96b9a8","ref":"refs/heads/master","pushedAt":"2024-07-29T20:25:38.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"util/CircularBuffer: use std::span internally","shortMessageHtmlLink":"util/CircularBuffer: use std::span internally"}},{"before":"5726d9f06a2c6ccce0a30a5cdd7ff93b4d6fae79","after":"0899d80ae0df281f8cf5346ef627414a16848804","ref":"refs/heads/master","pushedAt":"2024-07-29T20:15:15.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"util/CircularBuffer: add `noexcept` and `constexpr`","shortMessageHtmlLink":"util/CircularBuffer: add noexcept and constexpr"}},{"before":"12eaaef210dda959c8a1717914870ef4fcfde69b","after":"5726d9f06a2c6ccce0a30a5cdd7ff93b4d6fae79","ref":"refs/heads/master","pushedAt":"2024-07-29T15:18:57.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"mixer/Memento: include cleanup","shortMessageHtmlLink":"mixer/Memento: include cleanup"}},{"before":"196258ea13972860dab15bb665564dfca73d8b36","after":"12eaaef210dda959c8a1717914870ef4fcfde69b","ref":"refs/heads/master","pushedAt":"2024-07-29T14:57:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"output/Thread: allow Delay() to return duration::max()\n\nEliminate the periodic wakeups while paused in some output plugins.","shortMessageHtmlLink":"output/Thread: allow Delay() to return duration::max()"}},{"before":"0a035f3ce02293011a68b5dd0611dc1d0c84198f","after":"196258ea13972860dab15bb665564dfca73d8b36","ref":"refs/heads/master","pushedAt":"2024-07-29T14:39:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":".github/workflows/build_android.yml: update NDK to r27","shortMessageHtmlLink":".github/workflows/build_android.yml: update NDK to r27"}},{"before":"9c8f4aaf997914f9cc3887177bb6b1a1962e045b","after":"0a035f3ce02293011a68b5dd0611dc1d0c84198f","ref":"refs/heads/master","pushedAt":"2024-07-29T14:34:00.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"output/alsa: add option \"close_on_pause\"\n\nThis allows keeping the ALSA PCM open even if playback is paused. As\na side effect, this allows using the \"always_on\" option with ALSA\noutputs, because \"always_on\" pauses the output.\n\nCloses https://github.com/MusicPlayerDaemon/MPD/issues/1623","shortMessageHtmlLink":"output/alsa: add option \"close_on_pause\""}},{"before":"9d9c4045e20b603dce6060030a168fde6ed51139","after":"9c8f4aaf997914f9cc3887177bb6b1a1962e045b","ref":"refs/heads/master","pushedAt":"2024-07-29T13:44:12.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"lib/alsa/meson.build: require libasound 1.2 or later\n\nThis allows us to drop the 1.1.4 snd_pcm_drain() bug workaround (added\nby commit f85d4d28d1e).","shortMessageHtmlLink":"lib/alsa/meson.build: require libasound 1.2 or later"}},{"before":"bbbbf5f4bde1403b41785892de1eb08fed7ad65e","after":"9d9c4045e20b603dce6060030a168fde6ed51139","ref":"refs/heads/master","pushedAt":"2024-07-29T13:30:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"output/alsa: move redundant code to UnregisterSockets()","shortMessageHtmlLink":"output/alsa: move redundant code to UnregisterSockets()"}},{"before":"f030b22bec85026926bbf459911edea6ea2a82c7","after":"bbbbf5f4bde1403b41785892de1eb08fed7ad65e","ref":"refs/heads/master","pushedAt":"2024-07-25T18:17:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"event/MultiSocketMonitor: reschedule epoll/EPERM workaround forever\n\nFixes a regression by commit 3558317dc9c which caused the ALSA null\nplugin to cease to work because the workaround timer was never rescheduled.","shortMessageHtmlLink":"event/MultiSocketMonitor: reschedule epoll/EPERM workaround forever"}},{"before":"a693052f2c78ef297a5fdcb5f024c04a1e3f38c4","after":"f030b22bec85026926bbf459911edea6ea2a82c7","ref":"refs/heads/master","pushedAt":"2024-07-25T18:08:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"player/thread: wait for the first chunk in CheckCrossFade()\n\nThis fixes MixRamp problems which occur because CheckCrossFade() is\ncalled before the decoder has parsed MixRamp tags after\nDecoderClient::Ready().\n\nCloses https://github.com/MusicPlayerDaemon/MPD/issues/2084","shortMessageHtmlLink":"player/thread: wait for the first chunk in CheckCrossFade()"}},{"before":"41cc69584835dc57424612d0f260da53dcba426b","after":"a693052f2c78ef297a5fdcb5f024c04a1e3f38c4","ref":"refs/heads/master","pushedAt":"2024-07-25T12:03:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"Merge branch 'feat/showmovement' of https://github.com/mayanez/MPD","shortMessageHtmlLink":"Merge branch 'feat/showmovement' of https://github.com/mayanez/MPD"}},{"before":"4c4a3c8664245950f76922f35d5ba54077852edc","after":"41cc69584835dc57424612d0f260da53dcba426b","ref":"refs/heads/master","pushedAt":"2024-07-23T13:12:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"Instance: fix io/rtio thread mixup\n\nFixes regression by commit 43d633f560ee2499a02094039fa1ec24d8f47f14","shortMessageHtmlLink":"Instance: fix io/rtio thread mixup"}},{"before":"b4374ddb35226bf7a59150a737e593f4d92a873c","after":"4c4a3c8664245950f76922f35d5ba54077852edc","ref":"refs/heads/master","pushedAt":"2024-07-23T11:43:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"event/TimerList: use FineTimerEvent::GetDue()\n\nAvoid accessing the private field from an inner class of the friend\nclass, because some compilers apparently don't like it (Apple clang).","shortMessageHtmlLink":"event/TimerList: use FineTimerEvent::GetDue()"}},{"before":"8e42467bd274fe4e0b15781c4d57e505185fced0","after":"b4374ddb35226bf7a59150a737e593f4d92a873c","ref":"refs/heads/master","pushedAt":"2024-07-23T11:11:25.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"python/build/libs.py: update libopenmpt to 0.7.9","shortMessageHtmlLink":"python/build/libs.py: update libopenmpt to 0.7.9"}},{"before":"de9f0dc91023d1383be78a68c71c30aea35f470e","after":"8e42467bd274fe4e0b15781c4d57e505185fced0","ref":"refs/heads/master","pushedAt":"2024-07-12T14:11:17.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"decoder/mpg123: relax mpg123_length() check in Scan()\n\nDo not fail the Scan() function completely if libmpg123 cannot\ndetermine the duration.","shortMessageHtmlLink":"decoder/mpg123: relax mpg123_length() check in Scan()"}},{"before":"cf5970a6e17f8c99abedd2853de83ae8de8a529f","after":"de9f0dc91023d1383be78a68c71c30aea35f470e","ref":"refs/heads/master","pushedAt":"2024-07-12T14:01:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"playlist/Plugin: convert _init() and _finish() to methods","shortMessageHtmlLink":"playlist/Plugin: convert _init() and _finish() to methods"}},{"before":"040c4a856019f79f279cfef5d90386250694ae3f","after":"cf5970a6e17f8c99abedd2853de83ae8de8a529f","ref":"refs/heads/master","pushedAt":"2024-07-12T13:58:03.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"output/Registry: replace output_plugins_for_each() with a container class","shortMessageHtmlLink":"output/Registry: replace output_plugins_for_each() with a container c…"}},{"before":"90dfa437e024a0967557e31ccc4ff452a15cf691","after":"040c4a856019f79f279cfef5d90386250694ae3f","ref":"refs/heads/master","pushedAt":"2024-07-12T08:24:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"archive/ArchiveList: replace archive_plugins_for_each() with a container class","shortMessageHtmlLink":"archive/ArchiveList: replace archive_plugins_for_each() with a contai…"}},{"before":"4486b2ededeecb595a3f51e40b94b302af02e65c","after":"90dfa437e024a0967557e31ccc4ff452a15cf691","ref":"refs/heads/master","pushedAt":"2024-07-11T19:47:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"lib/alsa/NonBlock: use a persistent pollfd array\n\nThis implements the semantic API change introduced by commit\nhttps://github.com/alsa-project/alsa-lib/commit/cd04da2bcfe147b08b8db2930b2294aead0a8968","shortMessageHtmlLink":"lib/alsa/NonBlock: use a persistent pollfd array"}},{"before":"9704cf3dcba2a81fa6a140b67f833fea88afe6f7","after":"4486b2ededeecb595a3f51e40b94b302af02e65c","ref":"refs/heads/master","pushedAt":"2024-07-11T19:40:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"lib/alsa/NonBlock: add common base class","shortMessageHtmlLink":"lib/alsa/NonBlock: add common base class"}},{"before":"9aa6b03ba823c115a7349f5fad725c3a5b9abf04","after":"9704cf3dcba2a81fa6a140b67f833fea88afe6f7","ref":"refs/heads/master","pushedAt":"2024-07-11T19:12:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"lib/alsa/NonBlock: fix lambda indent","shortMessageHtmlLink":"lib/alsa/NonBlock: fix lambda indent"}},{"before":"fb87e19bae74f173077a4d2328ea4d4cb507cfb2","after":"9aa6b03ba823c115a7349f5fad725c3a5b9abf04","ref":"refs/heads/master","pushedAt":"2024-07-11T19:11:11.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"event/MultiSocketMonitor: pass std::span to ReplaceSocketList()","shortMessageHtmlLink":"event/MultiSocketMonitor: pass std::span to ReplaceSocketList()"}},{"before":"49edb16de0d439a7a5e84b0a074c3d0459ca2f9d","after":"fb87e19bae74f173077a4d2328ea4d4cb507cfb2","ref":"refs/heads/master","pushedAt":"2024-07-11T18:53:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"MaxKellermann","name":"Max Kellermann","path":"/MaxKellermann","primaryAvatarUrl":"https://github.com/avatars/u/1443144?s=80&v=4"},"commit":{"message":"input/Registry: replace the input_plugins_for_each macros with a container class","shortMessageHtmlLink":"input/Registry: replace the input_plugins_for_each macros with a cont…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEjco04QA","startCursor":null,"endCursor":null}},"title":"Activity · MusicPlayerDaemon/MPD"}