From 2a1b047d33fb81affa765994fb93bdb8cd16b7e0 Mon Sep 17 00:00:00 2001 From: jpark37 Date: Sun, 31 Jul 2022 17:10:06 -0700 Subject: [PATCH] obs-ffmpeg: Implement priority for HEVC over HLS --- plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c | 21 ++++++++++++++++++--- plugins/obs-ffmpeg/obs-ffmpeg-mux.h | 1 - 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c index 4614afa27..c3dc98e50 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c @@ -1,4 +1,8 @@ #include "obs-ffmpeg-mux.h" +#include +#ifdef ENABLE_HEVC +#include +#endif #define do_log(level, format, ...) \ blog(level, "[ffmpeg hls muxer: '%s'] " format, \ @@ -292,9 +296,20 @@ void ffmpeg_hls_mux_data(void *data, struct encoder_packet *packet) } if (packet->type == OBS_ENCODER_VIDEO) { - obs_parse_avc_packet(&tmp_packet, packet); - packet->drop_priority = tmp_packet.priority; - obs_encoder_packet_release(&tmp_packet); + const char *const codec = + obs_encoder_get_codec(packet->encoder); + if (strcmp(codec, "h264") == 0) { + obs_parse_avc_packet(&tmp_packet, packet); + packet->drop_priority = tmp_packet.priority; + obs_encoder_packet_release(&tmp_packet); + } +#ifdef ENABLE_HEVC + else if (strcmp(codec, "hevc") == 0) { + obs_parse_hevc_packet(&tmp_packet, packet); + packet->drop_priority = tmp_packet.priority; + obs_encoder_packet_release(&tmp_packet); + } +#endif } obs_encoder_packet_ref(&new_packet, packet); diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.h b/plugins/obs-ffmpeg/obs-ffmpeg-mux.h index daf76b8dd..453a133ce 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.h +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mux.h @@ -1,6 +1,5 @@ #pragma once -#include #include #include #include