mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-11 18:50:50 +00:00
LibMedia: Remove AudioQueue and UserSampleQueue
Both unused.
This commit is contained in:
parent
7728633906
commit
3bf910706f
Notes:
github-actions[bot]
2024-09-12 08:02:27 +00:00
Author: https://github.com/gmta
Commit: 3bf910706f
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1369
6 changed files with 1 additions and 138 deletions
|
@ -12,7 +12,6 @@ shared_library("LibMedia") {
|
||||||
"Audio/QOALoader.cpp",
|
"Audio/QOALoader.cpp",
|
||||||
"Audio/QOATypes.cpp",
|
"Audio/QOATypes.cpp",
|
||||||
"Audio/SampleFormats.cpp",
|
"Audio/SampleFormats.cpp",
|
||||||
"Audio/UserSampleQueue.cpp",
|
|
||||||
"Audio/VorbisComment.cpp",
|
"Audio/VorbisComment.cpp",
|
||||||
"Audio/WavLoader.cpp",
|
"Audio/WavLoader.cpp",
|
||||||
]
|
]
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "Queue.h"
|
|
||||||
#include "SampleFormats.h"
|
#include "SampleFormats.h"
|
||||||
#include <AK/ByteBuffer.h>
|
#include <AK/ByteBuffer.h>
|
||||||
#include <AK/Types.h>
|
#include <AK/Types.h>
|
||||||
#include <AK/Variant.h>
|
#include <AK/Variant.h>
|
||||||
|
#include <AK/Vector.h>
|
||||||
#include <LibCrypto/Checksum/CRC16.h>
|
#include <LibCrypto/Checksum/CRC16.h>
|
||||||
#include <LibCrypto/Checksum/CRC8.h>
|
#include <LibCrypto/Checksum/CRC8.h>
|
||||||
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2018-2022, the SerenityOS developers.
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "Sample.h"
|
|
||||||
#include <LibCore/SharedCircularQueue.h>
|
|
||||||
|
|
||||||
namespace Audio {
|
|
||||||
|
|
||||||
static constexpr size_t AUDIO_BUFFERS_COUNT = 128;
|
|
||||||
// The audio buffer size is specifically chosen to be about 1/1000th of a second (1ms).
|
|
||||||
// This has the biggest impact on latency and performance.
|
|
||||||
// The currently chosen value was not put here with much thought and a better choice is surely possible.
|
|
||||||
static constexpr size_t AUDIO_BUFFER_SIZE = 50;
|
|
||||||
using AudioQueue = Core::SharedSingleProducerCircularQueue<Array<Sample, AUDIO_BUFFER_SIZE>, AUDIO_BUFFERS_COUNT>;
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,64 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "UserSampleQueue.h"
|
|
||||||
|
|
||||||
namespace Audio {
|
|
||||||
|
|
||||||
void UserSampleQueue::append(FixedArray<Sample>&& samples)
|
|
||||||
{
|
|
||||||
Threading::MutexLocker lock(m_sample_mutex);
|
|
||||||
if (m_samples_to_discard != 0)
|
|
||||||
m_backing_samples = m_backing_samples.release_slice(m_samples_to_discard);
|
|
||||||
m_backing_samples.append(move(samples));
|
|
||||||
fix_spans();
|
|
||||||
}
|
|
||||||
|
|
||||||
void UserSampleQueue::clear()
|
|
||||||
{
|
|
||||||
discard_samples(size());
|
|
||||||
}
|
|
||||||
|
|
||||||
void UserSampleQueue::fix_spans()
|
|
||||||
{
|
|
||||||
Threading::MutexLocker lock(m_sample_mutex);
|
|
||||||
m_enqueued_samples = m_backing_samples.spans();
|
|
||||||
m_samples_to_discard = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Sample UserSampleQueue::operator[](size_t index)
|
|
||||||
{
|
|
||||||
Threading::MutexLocker lock(m_sample_mutex);
|
|
||||||
return m_enqueued_samples[index];
|
|
||||||
}
|
|
||||||
|
|
||||||
void UserSampleQueue::discard_samples(size_t count)
|
|
||||||
{
|
|
||||||
Threading::MutexLocker lock(m_sample_mutex);
|
|
||||||
m_samples_to_discard += count;
|
|
||||||
m_enqueued_samples = m_enqueued_samples.slice(count);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t UserSampleQueue::size()
|
|
||||||
{
|
|
||||||
Threading::MutexLocker lock(m_sample_mutex);
|
|
||||||
return m_enqueued_samples.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t UserSampleQueue::remaining_samples()
|
|
||||||
{
|
|
||||||
Threading::MutexLocker lock(m_sample_mutex);
|
|
||||||
VERIFY(m_backing_samples.size() >= m_samples_to_discard);
|
|
||||||
return m_backing_samples.size() - m_samples_to_discard;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool UserSampleQueue::is_empty()
|
|
||||||
{
|
|
||||||
Threading::MutexLocker lock(m_sample_mutex);
|
|
||||||
return m_enqueued_samples.is_empty();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2022, kleines Filmröllchen <filmroellchen@serenityos.org>
|
|
||||||
*
|
|
||||||
* SPDX-License-Identifier: BSD-2-Clause
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "Sample.h"
|
|
||||||
#include <AK/DisjointChunks.h>
|
|
||||||
#include <AK/FixedArray.h>
|
|
||||||
#include <AK/Noncopyable.h>
|
|
||||||
#include <AK/Vector.h>
|
|
||||||
#include <LibThreading/Mutex.h>
|
|
||||||
|
|
||||||
namespace Audio {
|
|
||||||
|
|
||||||
// A sample queue providing synchronized access to efficiently-stored segmented user-provided audio data.
|
|
||||||
class UserSampleQueue {
|
|
||||||
AK_MAKE_NONCOPYABLE(UserSampleQueue);
|
|
||||||
AK_MAKE_NONMOVABLE(UserSampleQueue);
|
|
||||||
|
|
||||||
public:
|
|
||||||
UserSampleQueue() = default;
|
|
||||||
|
|
||||||
void append(FixedArray<Sample>&& samples);
|
|
||||||
void clear();
|
|
||||||
// Slice off some amount of samples from the beginning.
|
|
||||||
void discard_samples(size_t count);
|
|
||||||
Sample operator[](size_t index);
|
|
||||||
|
|
||||||
// The number of samples in the span.
|
|
||||||
size_t size();
|
|
||||||
bool is_empty();
|
|
||||||
size_t remaining_samples();
|
|
||||||
|
|
||||||
private:
|
|
||||||
// Re-initialize the spans after a vector resize.
|
|
||||||
void fix_spans();
|
|
||||||
|
|
||||||
Threading::Mutex m_sample_mutex;
|
|
||||||
// Sample data view to keep track of what to play next.
|
|
||||||
DisjointSpans<Sample> m_enqueued_samples;
|
|
||||||
// The number of samples that were played from the backing store since last discarding its start.
|
|
||||||
size_t m_samples_to_discard { 0 };
|
|
||||||
// The backing store for the enqueued sample view.
|
|
||||||
DisjointChunks<Sample, FixedArray<Sample>> m_backing_samples {};
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -9,7 +9,6 @@ set(SOURCES
|
||||||
Audio/PlaybackStream.cpp
|
Audio/PlaybackStream.cpp
|
||||||
Audio/QOALoader.cpp
|
Audio/QOALoader.cpp
|
||||||
Audio/QOATypes.cpp
|
Audio/QOATypes.cpp
|
||||||
Audio/UserSampleQueue.cpp
|
|
||||||
Audio/VorbisComment.cpp
|
Audio/VorbisComment.cpp
|
||||||
Color/ColorConverter.cpp
|
Color/ColorConverter.cpp
|
||||||
Color/ColorPrimaries.cpp
|
Color/ColorPrimaries.cpp
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue