mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2025-07-01 15:25:35 +00:00
Allow specifying which codec to use
This commit is contained in:
parent
9cd90276cb
commit
e9811d8505
@ -99,11 +99,15 @@ Change the network packetsize to I<PACKETSIZE>.
|
||||
The packetsize should the smaller than the MTU of the network.
|
||||
By default a safe value of 1024 is used.
|
||||
|
||||
=item B<-forcehevc>
|
||||
=item B<-hevc>
|
||||
|
||||
Request a h265/HEVC from the server.
|
||||
Will still use h264 if server doesn't support HEVC.
|
||||
|
||||
=item B<-h264>
|
||||
|
||||
Request a h264 from the server even if server and video decoder supports HEVC.
|
||||
|
||||
=item B<-remote>
|
||||
|
||||
Enable the optimizations for remote connections in GFE.
|
||||
|
@ -64,7 +64,8 @@ static struct option long_options[] = {
|
||||
{"surround", no_argument, NULL, 'u'},
|
||||
{"fps", required_argument, NULL, 'v'},
|
||||
{"forcehw", no_argument, NULL, 'w'},
|
||||
{"forcehevc", no_argument, NULL, 'x'},
|
||||
{"hevc", no_argument, NULL, 'x'},
|
||||
{"h264", no_argument, NULL, 'z'},
|
||||
{"unsupported", no_argument, NULL, 'y'},
|
||||
{0, 0, 0, 0},
|
||||
};
|
||||
@ -204,7 +205,10 @@ static void parse_argument(int c, char* value, PCONFIGURATION config) {
|
||||
config->forcehw = true;
|
||||
break;
|
||||
case 'x':
|
||||
config->stream.supportsHevc = true;
|
||||
config->codec = CODEC_HEVC;
|
||||
break;
|
||||
case 'z':
|
||||
config->codec = CODEC_H264;
|
||||
break;
|
||||
case 'y':
|
||||
config->unsupported_version = true;
|
||||
@ -302,6 +306,7 @@ void config_parse(int argc, char* argv[], PCONFIGURATION config) {
|
||||
config->fullscreen = true;
|
||||
config->unsupported_version = false;
|
||||
config->forcehw = false;
|
||||
config->codec = CODEC_UNSPECIFIED;
|
||||
|
||||
config->inputsCount = 0;
|
||||
config->mapping = get_path("mappings/default.conf", getenv("XDG_DATA_DIRS"));
|
||||
|
@ -23,6 +23,8 @@
|
||||
|
||||
#define MAX_INPUTS 6
|
||||
|
||||
enum codecs { CODEC_UNSPECIFIED, CODEC_H264, CODEC_HEVC };
|
||||
|
||||
struct input_config {
|
||||
char* path;
|
||||
char* mapping;
|
||||
@ -44,6 +46,7 @@ typedef struct _CONFIGURATION {
|
||||
bool unsupported_version;
|
||||
struct input_config inputs[MAX_INPUTS];
|
||||
int inputsCount;
|
||||
enum codecs codec;
|
||||
} CONFIGURATION, *PCONFIGURATION;
|
||||
|
||||
bool inputAdded;
|
||||
|
@ -138,7 +138,8 @@ static void help() {
|
||||
printf("\t-60fps\t\t\tUse 60fps [default]\n");
|
||||
printf("\t-bitrate <bitrate>\tSpecify the bitrate in Kbps\n");
|
||||
printf("\t-packetsize <size>\tSpecify the maximum packetsize in bytes\n");
|
||||
printf("\t-forcehevc\t\tUse high efficiency video decoding (HEVC)\n");
|
||||
printf("\t-hevc\t\t\tUse the high efficiency video coding (HEVC)\n");
|
||||
printf("\t-h264\t\t\tUse the advanced video coding (H264)\n");
|
||||
printf("\t-remote\t\t\tEnable remote optimizations\n");
|
||||
printf("\t-app <app>\t\tName of app to stream\n");
|
||||
printf("\t-nosops\t\t\tDon't allow GFE to modify game settings\n");
|
||||
@ -181,7 +182,7 @@ int main(int argc, char* argv[]) {
|
||||
fprintf(stderr, "Platform '%s' not found\n", config.platform);
|
||||
exit(-1);
|
||||
}
|
||||
config.stream.supportsHevc = config.stream.supportsHevc || platform_supports_hevc(system);
|
||||
config.stream.supportsHevc = config.codec != CODEC_H264 && (config.codec == CODEC_HEVC || platform_supports_hevc(system));
|
||||
|
||||
if (strcmp("map", config.action) == 0) {
|
||||
if (config.address == NULL) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user