mac-vth264: Use libobs CFString utils

master
Marvin Scholz 2018-09-16 17:53:42 +02:00
parent 31f143e449
commit b2ece640e5
1 changed files with 6 additions and 7 deletions

View File

@ -6,6 +6,8 @@
#include <VideoToolbox/VTVideoEncoderList.h> #include <VideoToolbox/VTVideoEncoderList.h>
#include <CoreMedia/CoreMedia.h> #include <CoreMedia/CoreMedia.h>
#include <util/apple/cfstring-utils.h>
#include <assert.h> #include <assert.h>
#define VT_LOG(level, format, ...) \ #define VT_LOG(level, format, ...) \
@ -74,23 +76,20 @@ struct vt_h264_encoder
static void log_osstatus(int log_level, struct vt_h264_encoder *enc, static void log_osstatus(int log_level, struct vt_h264_encoder *enc,
const char *context, OSStatus code) const char *context, OSStatus code)
{ {
char *c_str = NULL;
CFErrorRef err = CFErrorCreate(kCFAllocatorDefault, CFErrorRef err = CFErrorCreate(kCFAllocatorDefault,
kCFErrorDomainOSStatus, code, NULL); kCFErrorDomainOSStatus, code, NULL);
CFStringRef str = CFErrorCopyDescription(err); CFStringRef str = CFErrorCopyDescription(err);
CFIndex length = CFStringGetLength(str); c_str = cfstr_copy_cstr(str, kCFStringEncodingUTF8);
CFIndex max_size = CFStringGetMaximumSizeForEncoding(length, if (c_str) {
kCFStringEncodingUTF8);
char *c_str = malloc(max_size);
if (CFStringGetCString(str, c_str, max_size, kCFStringEncodingUTF8)) {
if (enc) if (enc)
VT_BLOG(log_level, "Error in %s: %s", context, c_str); VT_BLOG(log_level, "Error in %s: %s", context, c_str);
else else
VT_LOG(log_level, "Error in %s: %s", context, c_str); VT_LOG(log_level, "Error in %s: %s", context, c_str);
} }
free(c_str); bfree(c_str);
CFRelease(str); CFRelease(str);
CFRelease(err); CFRelease(err);
} }