mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-04 16:32:39 +00:00
more stuff
This commit is contained in:
parent
80617cdb2a
commit
0dc4d535c3
@ -288,20 +288,24 @@ int PS4_SYSV_ABI sceAjmBatchStartBuffer(u32 context, const u8* batch, u32 batch_
|
|||||||
const auto at9_instance =
|
const auto at9_instance =
|
||||||
dynamic_cast<AjmAt9Decoder*>(dev->instances[instance].get());
|
dynamic_cast<AjmAt9Decoder*>(dev->instances[instance].get());
|
||||||
const auto in_buffer = reinterpret_cast<const AjmJobBuffer*>(job_ptr);
|
const auto in_buffer = reinterpret_cast<const AjmJobBuffer*>(job_ptr);
|
||||||
std::memcpy(
|
const auto params = reinterpret_cast<const SceAjmDecAt9InitializeParameters*>(
|
||||||
at9_instance->config_data,
|
in_buffer->buffer);
|
||||||
reinterpret_cast<const SceAjmDecAt9InitializeParameters*>(in_buffer->buffer)
|
std::memcpy(at9_instance->config_data, params->config_data,
|
||||||
->config_data,
|
SCE_AT9_CONFIG_DATA_SIZE);
|
||||||
SCE_AT9_CONFIG_DATA_SIZE);
|
}
|
||||||
LOG_INFO(
|
break;
|
||||||
Lib_Ajm, "Initialize params: {}, config_data: {}, reserved: {}",
|
case AjmJobControlFlags::Initialize | AjmJobControlFlags::Reset:
|
||||||
fmt::ptr(reinterpret_cast<const SceAjmDecAt9InitializeParameters*>(
|
LOG_INFO(Lib_Ajm, "Resetting instance {}", instance);
|
||||||
in_buffer->buffer)),
|
dev->instances[instance]->Reset();
|
||||||
fmt::ptr(reinterpret_cast<const SceAjmDecAt9InitializeParameters*>(
|
LOG_INFO(Lib_Ajm, "Initializing instance {}", instance);
|
||||||
in_buffer->buffer)
|
if (dev->instances[instance]->codec_type == AjmCodecType::At9Dec) {
|
||||||
->config_data),
|
const auto at9_instance =
|
||||||
reinterpret_cast<const SceAjmDecAt9InitializeParameters*>(in_buffer->buffer)
|
dynamic_cast<AjmAt9Decoder*>(dev->instances[instance].get());
|
||||||
->reserved);
|
const auto in_buffer = reinterpret_cast<const AjmJobBuffer*>(job_ptr);
|
||||||
|
const auto params = reinterpret_cast<const SceAjmDecAt9InitializeParameters*>(
|
||||||
|
in_buffer->buffer);
|
||||||
|
std::memcpy(at9_instance->config_data, params->config_data,
|
||||||
|
SCE_AT9_CONFIG_DATA_SIZE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case AjmJobControlFlags::Resample:
|
case AjmJobControlFlags::Resample:
|
||||||
@ -393,11 +397,7 @@ int PS4_SYSV_ABI sceAjmBatchWait(const u32 context, const u32 batch_id, const u3
|
|||||||
LOG_INFO(Lib_Ajm, "called context = {}, batch_id = {}, timeout = {}", context, batch_id,
|
LOG_INFO(Lib_Ajm, "called context = {}, batch_id = {}, timeout = {}", context, batch_id,
|
||||||
timeout);
|
timeout);
|
||||||
|
|
||||||
if (batch_id > 0xFF) {
|
if (batch_id > 0xFF || batch_id >= dev->batches.size()) {
|
||||||
return ORBIS_AJM_ERROR_INVALID_BATCH;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (batch_id >= dev->batches.size()) {
|
|
||||||
return ORBIS_AJM_ERROR_INVALID_BATCH;
|
return ORBIS_AJM_ERROR_INVALID_BATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,6 +486,7 @@ int PS4_SYSV_ABI sceAjmInstanceCreate(u32 context, AjmCodecType codec_type, AjmI
|
|||||||
if (dev->curr_cursor == dev->release_cursor) {
|
if (dev->curr_cursor == dev->release_cursor) {
|
||||||
return ORBIS_AJM_ERROR_OUT_OF_RESOURCES;
|
return ORBIS_AJM_ERROR_OUT_OF_RESOURCES;
|
||||||
}
|
}
|
||||||
|
ASSERT_MSG(flags.format == 0, "Only signed 16-bit PCM output is supported currently!");
|
||||||
const u32 index = dev->free_instances[dev->curr_cursor++];
|
const u32 index = dev->free_instances[dev->curr_cursor++];
|
||||||
dev->curr_cursor %= MaxInstances;
|
dev->curr_cursor %= MaxInstances;
|
||||||
std::unique_ptr<AjmInstance> instance;
|
std::unique_ptr<AjmInstance> instance;
|
||||||
|
@ -61,6 +61,7 @@ std::tuple<u32, u32, u32> AjmAt9Decoder::Decode(const u8* in_buf, u32 in_size, u
|
|||||||
in_size -= bytes_used;
|
in_size -= bytes_used;
|
||||||
std::memcpy(out_buf, pcm_buffer, size);
|
std::memcpy(out_buf, pcm_buffer, size);
|
||||||
file.write(reinterpret_cast<const char*>(pcm_buffer), size);
|
file.write(reinterpret_cast<const char*>(pcm_buffer), size);
|
||||||
|
file.flush(); // for easier debugging
|
||||||
out_buf += size;
|
out_buf += size;
|
||||||
out_size -= size;
|
out_size -= size;
|
||||||
decoded_samples += decoder_handle->Config.FrameSamples;
|
decoded_samples += decoder_handle->Config.FrameSamples;
|
||||||
|
Loading…
Reference in New Issue
Block a user