musikr.metadata: wrap exceptions into log

Not ideal, but avoids a total catastrophic crash on failed metadata
extractions.
This commit is contained in:
Alexander Capehart 2024-12-23 16:48:32 -05:00
parent b6bc065a4a
commit c379174ffe
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47

View file

@ -18,9 +18,9 @@
#include <jni.h>
#include <string>
#include "JVMInputStream.h"
#include "JVMMetadataBuilder.h"
#include "log.h"
#include "taglib/fileref.h"
#include "taglib/flacfile.h"
@ -34,6 +34,7 @@ extern "C" JNIEXPORT jobject JNICALL
Java_org_oxycblt_musikr_metadata_TagLibJNI_openNative(JNIEnv *env,
jobject /* this */,
jobject inputStream) {
try {
JVMInputStream stream {env, inputStream};
TagLib::FileRef fileRef {&stream};
if (fileRef.isNull()) {
@ -69,6 +70,10 @@ Java_org_oxycblt_musikr_metadata_TagLibJNI_openNative(JNIEnv *env,
builder.setProperties(file->audioProperties());
builder.setCover(file->tag()->complexProperties("PICTURE"));
return builder.build();
} catch (std::runtime_error e) {
LOGE("Error opening file: %s", e.what());
return nullptr;
}
}