diff --git a/plugins/mac-vth264/encoder.c b/plugins/mac-vth264/encoder.c index 71e5e897e..2d4d63d4a 100644 --- a/plugins/mac-vth264/encoder.c +++ b/plugins/mac-vth264/encoder.c @@ -6,6 +6,8 @@ #include #include +#include + #include #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, const char *context, OSStatus code) { + char *c_str = NULL; CFErrorRef err = CFErrorCreate(kCFAllocatorDefault, kCFErrorDomainOSStatus, code, NULL); CFStringRef str = CFErrorCopyDescription(err); - CFIndex length = CFStringGetLength(str); - CFIndex max_size = CFStringGetMaximumSizeForEncoding(length, - kCFStringEncodingUTF8); - - char *c_str = malloc(max_size); - if (CFStringGetCString(str, c_str, max_size, kCFStringEncodingUTF8)) { + c_str = cfstr_copy_cstr(str, kCFStringEncodingUTF8); + if (c_str) { if (enc) VT_BLOG(log_level, "Error in %s: %s", context, c_str); else VT_LOG(log_level, "Error in %s: %s", context, c_str); } - free(c_str); + bfree(c_str); CFRelease(str); CFRelease(err); }