Send feature flags in RTSP DESCRIBE response

This commit is contained in:
Cameron Gutman 2023-06-25 17:40:25 -05:00
parent d3578e9711
commit 1ef8cb1111
5 changed files with 46 additions and 0 deletions

View File

@ -160,6 +160,14 @@ namespace platf {
int width, height; int width, height;
}; };
// These values must match Limelight-internal.h's SS_FF_* constants!
namespace platform_caps {
typedef uint32_t caps_t;
constexpr caps_t pen_touch = 0x01; // Pen and touch events
constexpr caps_t controller_touch = 0x02; // Controller touch events
}; // namespace platform_caps
struct gamepad_state_t { struct gamepad_state_t {
std::uint32_t buttonFlags; std::uint32_t buttonFlags;
std::uint8_t lt; std::uint8_t lt;
@ -475,6 +483,13 @@ namespace platf {
void void
free_gamepad(input_t &input, int nr); free_gamepad(input_t &input, int nr);
/**
* @brief Returns the supported platform capabilities to advertise to the client.
* @return Capability flags.
*/
platform_caps::caps_t
get_capabilities();
#define SERVICE_NAME "Sunshine" #define SERVICE_NAME "Sunshine"
#define SERVICE_TYPE "_nvstream._tcp" #define SERVICE_TYPE "_nvstream._tcp"

View File

@ -1833,4 +1833,13 @@ namespace platf {
return gamepads; return gamepads;
} }
/**
* @brief Returns the supported platform capabilities to advertise to the client.
* @return Capability flags.
*/
platform_caps::caps_t
get_capabilities() {
return 0;
}
} // namespace platf } // namespace platf

View File

@ -500,4 +500,13 @@ const KeyCodeMap kKeyCodesMap[] = {
return gamepads; return gamepads;
} }
/**
* @brief Returns the supported platform capabilities to advertise to the client.
* @return Capability flags.
*/
platform_caps::caps_t
get_capabilities() {
return 0;
}
} // namespace platf } // namespace platf

View File

@ -825,4 +825,13 @@ namespace platf {
return gps; return gps;
} }
/**
* @brief Returns the supported platform capabilities to advertise to the client.
* @return Capability flags.
*/
platform_caps::caps_t
get_capabilities() {
return 0;
}
} // namespace platf } // namespace platf

View File

@ -492,6 +492,10 @@ namespace rtsp_stream {
option.content = const_cast<char *>(seqn_str.c_str()); option.content = const_cast<char *>(seqn_str.c_str());
std::stringstream ss; std::stringstream ss;
// Tell the client about our supported features
ss << "a=x-ss-general.featureFlags: " << (uint32_t) platf::get_capabilities();
if (video::active_hevc_mode != 1) { if (video::active_hevc_mode != 1) {
ss << "sprop-parameter-sets=AAAAAU"sv << std::endl; ss << "sprop-parameter-sets=AAAAAU"sv << std::endl;
} }