diff --git a/sunshine/cbs.cpp b/sunshine/cbs.cpp index 6b3b9f04..ad8cc29c 100644 --- a/sunshine/cbs.cpp +++ b/sunshine/cbs.cpp @@ -189,6 +189,17 @@ util::buffer_t read_sps(const AVPacket *packet, int codec_id) { return write(*p, (AVCodecID)codec_id); } +util::buffer_t make_sps(const AVCodecContext *ctx, int format) { + switch(format) { + case 0: + return make_sps_h264(ctx); + } + + BOOST_LOG(warning) << "make_sps: video format ["sv << format << "] not supported"sv; + + return {}; +} + bool validate_sps(const AVPacket *packet, int codec_id) { cbs::ctx_t ctx; if(ff_cbs_init(&ctx, (AVCodecID)codec_id, nullptr)) { diff --git a/sunshine/cbs.h b/sunshine/cbs.h index 8d2554dd..721b24e0 100644 --- a/sunshine/cbs.h +++ b/sunshine/cbs.h @@ -8,8 +8,7 @@ struct AVCodecContext; namespace cbs { util::buffer_t read_sps(const AVPacket *packet, int codec_id); -util::buffer_t make_sps_h264(const AVCodecContext *ctx); -util::buffer_t make_sps_hevc(const AVCodecContext *ctx); +util::buffer_t make_sps(const AVCodecContext *ctx, int video_format); /** * Check if SPS->VUI is present diff --git a/sunshine/video.cpp b/sunshine/video.cpp index 20eadde5..1e4f495a 100644 --- a/sunshine/video.cpp +++ b/sunshine/video.cpp @@ -937,7 +937,7 @@ std::optional make_session(const encoder_t &encoder, const config_t & return std::make_optional( std::move(ctx), std::move(device), - cbs::make_sps_h264(ctx.get())); + cbs::make_sps(ctx.get(), config.videoFormat)); } void encode_run(