mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-04 10:33:30 +00:00
libobs: Add API to specify codec support on encoded outputs
(This commit also modifies obs-outputs)
This commit is contained in:
parent
aa78b1bbee
commit
d839c77824
|
@ -2162,3 +2162,15 @@ bool obs_output_reconnecting(const obs_output_t *output)
|
|||
|
||||
return reconnecting(output);
|
||||
}
|
||||
|
||||
const char *obs_output_get_supported_video_codecs(const obs_output_t *output)
|
||||
{
|
||||
return obs_output_valid(output, __FUNCTION__) ?
|
||||
output->info.encoded_video_codecs : NULL;
|
||||
}
|
||||
|
||||
const char *obs_output_get_supported_audio_codecs(const obs_output_t *output)
|
||||
{
|
||||
return obs_output_valid(output, __FUNCTION__) ?
|
||||
output->info.encoded_audio_codecs : NULL;
|
||||
}
|
||||
|
|
|
@ -67,6 +67,10 @@ struct obs_output_info {
|
|||
|
||||
float (*get_congestion)(void *data);
|
||||
int (*get_connect_time_ms)(void *data);
|
||||
|
||||
/* only used with encoded outputs, separated with semicolon */
|
||||
const char *encoded_video_codecs;
|
||||
const char *encoded_audio_codecs;
|
||||
};
|
||||
|
||||
EXPORT void obs_register_output_s(const struct obs_output_info *info,
|
||||
|
|
|
@ -1524,6 +1524,11 @@ EXPORT bool obs_output_reconnecting(const obs_output_t *output);
|
|||
EXPORT void obs_output_set_last_error(obs_output_t *output,
|
||||
const char *message);
|
||||
|
||||
EXPORT const char *obs_output_get_supported_video_codecs(
|
||||
const obs_output_t *output);
|
||||
EXPORT const char *obs_output_get_supported_audio_codecs(
|
||||
const obs_output_t *output);
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Functions used by outputs */
|
||||
|
||||
|
|
|
@ -220,13 +220,15 @@ static obs_properties_t *flv_output_properties(void *unused)
|
|||
}
|
||||
|
||||
struct obs_output_info flv_output_info = {
|
||||
.id = "flv_output",
|
||||
.flags = OBS_OUTPUT_AV | OBS_OUTPUT_ENCODED,
|
||||
.get_name = flv_output_getname,
|
||||
.create = flv_output_create,
|
||||
.destroy = flv_output_destroy,
|
||||
.start = flv_output_start,
|
||||
.stop = flv_output_stop,
|
||||
.encoded_packet = flv_output_data,
|
||||
.get_properties = flv_output_properties
|
||||
.id = "flv_output",
|
||||
.flags = OBS_OUTPUT_AV | OBS_OUTPUT_ENCODED,
|
||||
.encoded_video_codecs = "h264",
|
||||
.encoded_audio_codecs = "aac",
|
||||
.get_name = flv_output_getname,
|
||||
.create = flv_output_create,
|
||||
.destroy = flv_output_destroy,
|
||||
.start = flv_output_start,
|
||||
.stop = flv_output_stop,
|
||||
.encoded_packet = flv_output_data,
|
||||
.get_properties = flv_output_properties
|
||||
};
|
||||
|
|
|
@ -1173,21 +1173,23 @@ static int rtmp_stream_connect_time(void *data)
|
|||
}
|
||||
|
||||
struct obs_output_info rtmp_output_info = {
|
||||
.id = "rtmp_output",
|
||||
.flags = OBS_OUTPUT_AV |
|
||||
OBS_OUTPUT_ENCODED |
|
||||
OBS_OUTPUT_SERVICE |
|
||||
OBS_OUTPUT_MULTI_TRACK,
|
||||
.get_name = rtmp_stream_getname,
|
||||
.create = rtmp_stream_create,
|
||||
.destroy = rtmp_stream_destroy,
|
||||
.start = rtmp_stream_start,
|
||||
.stop = rtmp_stream_stop,
|
||||
.encoded_packet = rtmp_stream_data,
|
||||
.get_defaults = rtmp_stream_defaults,
|
||||
.get_properties = rtmp_stream_properties,
|
||||
.get_total_bytes = rtmp_stream_total_bytes_sent,
|
||||
.get_congestion = rtmp_stream_congestion,
|
||||
.get_connect_time_ms= rtmp_stream_connect_time,
|
||||
.get_dropped_frames = rtmp_stream_dropped_frames
|
||||
.id = "rtmp_output",
|
||||
.flags = OBS_OUTPUT_AV |
|
||||
OBS_OUTPUT_ENCODED |
|
||||
OBS_OUTPUT_SERVICE |
|
||||
OBS_OUTPUT_MULTI_TRACK,
|
||||
.encoded_video_codecs = "h264",
|
||||
.encoded_audio_codecs = "aac",
|
||||
.get_name = rtmp_stream_getname,
|
||||
.create = rtmp_stream_create,
|
||||
.destroy = rtmp_stream_destroy,
|
||||
.start = rtmp_stream_start,
|
||||
.stop = rtmp_stream_stop,
|
||||
.encoded_packet = rtmp_stream_data,
|
||||
.get_defaults = rtmp_stream_defaults,
|
||||
.get_properties = rtmp_stream_properties,
|
||||
.get_total_bytes = rtmp_stream_total_bytes_sent,
|
||||
.get_congestion = rtmp_stream_congestion,
|
||||
.get_connect_time_ms = rtmp_stream_connect_time,
|
||||
.get_dropped_frames = rtmp_stream_dropped_frames
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue