mac-videotoolbox: Rename functions to remove "h264"

This commit is contained in:
gxalpha 2022-05-24 16:54:05 +02:00 committed by Sebastian Beckmann
parent a129c953e8
commit 182906d412

View file

@ -19,14 +19,14 @@
#define VT_BLOG(level, format, ...) \
VT_LOG_ENCODER(enc->encoder, level, format, ##__VA_ARGS__)
static DARRAY(struct vt_encoder {
static DARRAY(struct vt_encoder_list_item {
const char *name;
const char *disp_name;
const char *id;
const char *codec_name;
}) vt_encoders;
}) vt_encoder_list;
struct vt_h264_encoder {
struct vt_encoder {
obs_encoder_t *encoder;
const char *vt_encoder_id;
@ -54,7 +54,7 @@ struct vt_h264_encoder {
DARRAY(uint8_t) extra_data;
};
static void log_osstatus(int log_level, struct vt_h264_encoder *enc,
static void log_osstatus(int log_level, struct vt_encoder *enc,
const char *context, OSStatus code)
{
char *c_str = NULL;
@ -250,8 +250,7 @@ create_encoder_spec(const char *vt_encoder_id)
#undef REQUIRE_HW_ACCEL
#undef ENABLE_HW_ACCEL
static inline CFMutableDictionaryRef
create_pixbuf_spec(struct vt_h264_encoder *enc)
static inline CFMutableDictionaryRef create_pixbuf_spec(struct vt_encoder *enc)
{
CFMutableDictionaryRef pixbuf_spec = CFDictionaryCreateMutable(
kCFAllocatorDefault, 3, &kCFTypeDictionaryKeyCallBacks,
@ -273,7 +272,7 @@ create_pixbuf_spec(struct vt_h264_encoder *enc)
return pixbuf_spec;
}
static bool create_encoder(struct vt_h264_encoder *enc)
static bool create_encoder(struct vt_encoder *enc)
{
OSStatus code;
@ -351,9 +350,9 @@ fail:
return false;
}
static void vt_h264_destroy(void *data)
static void vt_destroy(void *data)
{
struct vt_h264_encoder *enc = data;
struct vt_encoder *enc = data;
if (enc) {
if (enc->session != NULL) {
@ -366,7 +365,7 @@ static void vt_h264_destroy(void *data)
}
}
static void dump_encoder_info(struct vt_h264_encoder *enc)
static void dump_encoder_info(struct vt_encoder *enc)
{
VT_BLOG(LOG_INFO,
"settings:\n"
@ -390,9 +389,9 @@ static void dump_encoder_info(struct vt_h264_encoder *enc)
: "default");
}
static void vt_h264_video_info(void *data, struct video_scale_info *info)
static void vt_video_info(void *data, struct video_scale_info *info)
{
struct vt_h264_encoder *enc = data;
struct vt_encoder *enc = data;
if (info->format == VIDEO_FORMAT_I420) {
enc->obs_pix_fmt = info->format;
@ -416,7 +415,7 @@ static void vt_h264_video_info(void *data, struct video_scale_info *info)
info->format = enc->obs_pix_fmt;
}
static void update_params(struct vt_h264_encoder *enc, obs_data_t *settings)
static void update_params(struct vt_encoder *enc, obs_data_t *settings)
{
video_t *video = obs_encoder_video(enc->encoder);
const struct video_output_info *voi = video_output_get_info(video);
@ -426,7 +425,7 @@ static void update_params(struct vt_h264_encoder *enc, obs_data_t *settings)
enc->fullrange = voi->range == VIDEO_RANGE_FULL;
// also sets the enc->vt_pix_fmt
vt_h264_video_info(enc, &info);
vt_video_info(enc, &info);
enc->colorspace = voi->colorspace;
@ -444,9 +443,9 @@ static void update_params(struct vt_h264_encoder *enc, obs_data_t *settings)
enc->bframes = obs_data_get_bool(settings, "bframes");
}
static bool vt_h264_update(void *data, obs_data_t *settings)
static bool vt_update(void *data, obs_data_t *settings)
{
struct vt_h264_encoder *enc = data;
struct vt_encoder *enc = data;
uint32_t old_bitrate = enc->bitrate;
bool old_limit_bitrate = enc->limit_bitrate;
@ -484,9 +483,9 @@ static bool vt_h264_update(void *data, obs_data_t *settings)
return true;
}
static void *vt_h264_create(obs_data_t *settings, obs_encoder_t *encoder)
static void *vt_create(obs_data_t *settings, obs_encoder_t *encoder)
{
struct vt_h264_encoder *enc = bzalloc(sizeof(struct vt_h264_encoder));
struct vt_encoder *enc = bzalloc(sizeof(struct vt_encoder));
OSStatus code;
@ -505,7 +504,7 @@ static void *vt_h264_create(obs_data_t *settings, obs_encoder_t *encoder)
return enc;
fail:
vt_h264_destroy(enc);
vt_destroy(enc);
return NULL;
}
@ -523,7 +522,7 @@ static void packet_put_startcode(struct darray *packet, int size)
packet_put(packet, &annexb_startcode[4 - size], size);
}
static void convert_block_nals_to_annexb(struct vt_h264_encoder *enc,
static void convert_block_nals_to_annexb(struct vt_encoder *enc,
struct darray *packet,
CMBlockBufferRef block,
int nal_length_bytes)
@ -565,7 +564,7 @@ static void convert_block_nals_to_annexb(struct vt_h264_encoder *enc,
}
}
static bool handle_keyframe(struct vt_h264_encoder *enc,
static bool handle_keyframe(struct vt_encoder *enc,
CMFormatDescriptionRef format_desc,
size_t param_count, struct darray *packet,
struct darray *extra_data)
@ -597,7 +596,7 @@ static bool handle_keyframe(struct vt_h264_encoder *enc,
return true;
}
static bool convert_sample_to_annexb(struct vt_h264_encoder *enc,
static bool convert_sample_to_annexb(struct vt_encoder *enc,
struct darray *packet,
struct darray *extra_data,
CMSampleBufferRef buffer, bool keyframe)
@ -652,7 +651,7 @@ static bool is_sample_keyframe(CMSampleBufferRef buffer)
return false;
}
static bool parse_sample(struct vt_h264_encoder *enc, CMSampleBufferRef buffer,
static bool parse_sample(struct vt_encoder *enc, CMSampleBufferRef buffer,
struct encoder_packet *packet, CMTime off)
{
int type;
@ -728,7 +727,7 @@ fail:
return false;
}
bool get_cached_pixel_buffer(struct vt_h264_encoder *enc, CVPixelBufferRef *buf)
bool get_cached_pixel_buffer(struct vt_encoder *enc, CVPixelBufferRef *buf)
{
OSStatus code;
CVPixelBufferPoolRef pool =
@ -761,10 +760,10 @@ fail:
return false;
}
static bool vt_h264_encode(void *data, struct encoder_frame *frame,
struct encoder_packet *packet, bool *received_packet)
static bool vt_encode(void *data, struct encoder_frame *frame,
struct encoder_packet *packet, bool *received_packet)
{
struct vt_h264_encoder *enc = data;
struct vt_encoder *enc = data;
OSStatus code;
@ -820,18 +819,19 @@ fail:
#undef STATUS_CHECK
#undef CFNUM_INT
static bool vt_h264_extra_data(void *data, uint8_t **extra_data, size_t *size)
static bool vt_extra_data(void *data, uint8_t **extra_data, size_t *size)
{
struct vt_h264_encoder *enc = (struct vt_h264_encoder *)data;
struct vt_encoder *enc = (struct vt_encoder *)data;
*extra_data = enc->extra_data.array;
*size = enc->extra_data.num;
return true;
}
static const char *vt_h264_getname(void *data)
static const char *vt_getname(void *data)
{
uintptr_t encoder_id = (uintptr_t)data;
const char *disp_name = vt_encoders.array[(int)encoder_id].disp_name;
const char *disp_name =
vt_encoder_list.array[(int)encoder_id].disp_name;
if (strcmp("Apple H.264 (HW)", disp_name) == 0) {
return obs_module_text("VTH264EncHW");
@ -863,7 +863,7 @@ static bool limit_bitrate_modified(obs_properties_t *ppts, obs_property_t *p,
return true;
}
static obs_properties_t *vt_h264_properties(void *unused)
static obs_properties_t *vt_properties(void *unused)
{
UNUSED_PARAMETER(unused);
@ -900,7 +900,7 @@ static obs_properties_t *vt_h264_properties(void *unused)
return props;
}
static void vt_h264_defaults(obs_data_t *settings)
static void vt_defaults(obs_data_t *settings)
{
obs_data_set_default_int(settings, "bitrate", 2500);
obs_data_set_default_bool(settings, "limit_bitrate", false);
@ -912,7 +912,7 @@ static void vt_h264_defaults(obs_data_t *settings)
}
OBS_DECLARE_MODULE()
OBS_MODULE_USE_DEFAULT_LOCALE("mac-h264", "en-US")
OBS_MODULE_USE_DEFAULT_LOCALE("mac-videotoolbox", "en-US")
void encoder_list_create()
{
@ -938,13 +938,13 @@ void encoder_list_create()
VT_DICTSTR(kVTVideoEncoderList_EncoderName, name);
VT_DICTSTR(kVTVideoEncoderList_EncoderID, id);
VT_DICTSTR(kVTVideoEncoderList_DisplayName, disp_name);
struct vt_encoder enc = {
struct vt_encoder_list_item enc = {
.name = name,
.id = id,
.disp_name = disp_name,
.codec_name = codec_name,
};
da_push_back(vt_encoders, &enc);
da_push_back(vt_encoder_list, &enc);
#undef VT_DICTSTR
}
@ -953,13 +953,13 @@ void encoder_list_create()
void encoder_list_destroy()
{
for (size_t i = 0; i < vt_encoders.num; i++) {
bfree((char *)vt_encoders.array[i].name);
bfree((char *)vt_encoders.array[i].id);
bfree((char *)vt_encoders.array[i].codec_name);
bfree((char *)vt_encoders.array[i].disp_name);
for (size_t i = 0; i < vt_encoder_list.num; i++) {
bfree((char *)vt_encoder_list.array[i].name);
bfree((char *)vt_encoder_list.array[i].id);
bfree((char *)vt_encoder_list.array[i].codec_name);
bfree((char *)vt_encoder_list.array[i].disp_name);
}
da_free(vt_encoders);
da_free(vt_encoder_list);
}
void register_encoders()
@ -967,21 +967,21 @@ void register_encoders()
struct obs_encoder_info info = {
.type = OBS_ENCODER_VIDEO,
.codec = "h264",
.destroy = vt_h264_destroy,
.encode = vt_h264_encode,
.update = vt_h264_update,
.get_properties = vt_h264_properties,
.get_defaults = vt_h264_defaults,
.get_video_info = vt_h264_video_info,
.get_extra_data = vt_h264_extra_data,
.get_name = vt_getname,
.create = vt_create,
.destroy = vt_destroy,
.encode = vt_encode,
.update = vt_update,
.get_properties = vt_properties,
.get_defaults = vt_defaults,
.get_video_info = vt_video_info,
.get_extra_data = vt_extra_data,
.caps = OBS_ENCODER_CAP_DYN_BITRATE,
};
for (size_t i = 0; i < vt_encoders.num; i++) {
info.id = vt_encoders.array[i].id;
for (size_t i = 0; i < vt_encoder_list.num; i++) {
info.id = vt_encoder_list.array[i].id;
info.type_data = (void *)i;
info.get_name = vt_h264_getname;
info.create = vt_h264_create;
obs_register_encoder(&info);
}
}
@ -991,7 +991,7 @@ bool obs_module_load(void)
encoder_list_create();
register_encoders();
VT_LOG(LOG_INFO, "Adding VideoToolbox H264 encoders");
VT_LOG(LOG_INFO, "Adding VideoToolbox encoders");
return true;
}