diff options
| author | chriszero <zerov83@gmail.com> | 2015-12-23 22:08:13 +0100 |
|---|---|---|
| committer | chriszero <zerov83@gmail.com> | 2015-12-23 22:08:13 +0100 |
| commit | d8bd5068f6fc8f70767e60aead11261ce7ca9d59 (patch) | |
| tree | 686bfec73644ca9c2d64a39a84d0497dafc734f4 /Plexservice.cpp | |
| parent | c7376a0dd2468d5f1ae702b22608c9bf553288e5 (diff) | |
| download | vdr-plugin-plex-d8bd5068f6fc8f70767e60aead11261ce7ca9d59.tar.gz vdr-plugin-plex-d8bd5068f6fc8f70767e60aead11261ce7ca9d59.tar.bz2 | |
Better display without skindesigner.
Picturecache changes for remote servers.
Diffstat (limited to 'Plexservice.cpp')
| -rw-r--r-- | Plexservice.cpp | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/Plexservice.cpp b/Plexservice.cpp index caa6489..d4a0da7 100644 --- a/Plexservice.cpp +++ b/Plexservice.cpp @@ -246,7 +246,26 @@ std::string Plexservice::GetUniversalTranscodeUrl(Video* video, int offset, Plex { PlexServer* pSrv = server ? server : video->m_pServer; Poco::URI transcodeUri(pSrv->GetUri()); - transcodeUri.setPath("/video/:/transcode/universal/start.m3u8"); + if(!http) { + transcodeUri.setPath("/video/:/transcode/universal/start.m3u8"); + transcodeUri.addQueryParameter("protocol", "hls"); + transcodeUri.addQueryParameter("includeCodecs", "1"); + transcodeUri.addQueryParameter("copyts", "1"); + transcodeUri.addQueryParameter("directPlay", "0"); + transcodeUri.addQueryParameter("directStream", "1"); + transcodeUri.addQueryParameter("subtitles", "burn"); + transcodeUri.addQueryParameter("audioBoost", "100"); + } else { + transcodeUri.setScheme("http"); // mpv segfaults with https... :-( + transcodeUri.setPath("/video/:/transcode/universal/start"); + transcodeUri.addQueryParameter("protocol", "http"); + + transcodeUri.addQueryParameter("X-Plex-Client-Identifier", Config::GetInstance().GetUUID()); + transcodeUri.addQueryParameter("X-Plex-Product", "Chromecast"); + transcodeUri.addQueryParameter("X-Plex-Platform", "Chromecast"); + transcodeUri.addQueryParameter("X-Plex-Token", pSrv->GetAuthToken()); + } + // Force set localhost and http Poco::URI pathUri(pSrv->GetUri()+video->m_sKey); @@ -256,13 +275,9 @@ std::string Plexservice::GetUniversalTranscodeUrl(Video* video, int offset, Plex transcodeUri.addQueryParameter("path", pathUri.toString()); transcodeUri.addQueryParameter("mediaIndex", "0"); transcodeUri.addQueryParameter("partIndex", "0"); - transcodeUri.addQueryParameter("protocol", "hls"); transcodeUri.addQueryParameter("offset", std::to_string(offset) ); transcodeUri.addQueryParameter("fastSeek", "1"); - transcodeUri.addQueryParameter("directPlay", "0"); - transcodeUri.addQueryParameter("directStream", "1"); - transcodeUri.addQueryParameter("subtitles", "burn"); - transcodeUri.addQueryParameter("audioBoost", "100"); + if(pSrv->IsLocal()) { transcodeUri.addQueryParameter("videoResolution", "1920x1080"); @@ -274,15 +289,20 @@ std::string Plexservice::GetUniversalTranscodeUrl(Video* video, int offset, Plex transcodeUri.addQueryParameter("videoQuality", "100"); } transcodeUri.addQueryParameter("session", Config::GetInstance().GetUUID()); // TODO: generate Random SessionID - transcodeUri.addQueryParameter("includeCodecs", "1"); - transcodeUri.addQueryParameter("copyts", "1"); - if(Config::GetInstance().UseAc3) { + + if(Config::GetInstance().UseAc3 && !http) { transcodeUri.addQueryParameter("X-Plex-Client-Profile-Extra", "add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=ac3"); //params << encode("+add-limitation(scope=videoCodec&scopeName=h264&type=lowerBound&name=video.height&value=1080)"); //params << encode("+add-limitation(scope=videoCodec&scopeName=h264&type=lowerBound&name=video.frameRate&value=25)"); //params << encode("+add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.frameRate&value=25)"); } + if(http) { + + + } + std::cout << transcodeUri.toString() << std::endl; + return transcodeUri.toString(); } |
