diff options
author | chriszero <zerov83@gmail.com> | 2015-02-13 16:14:10 +0100 |
---|---|---|
committer | chriszero <zerov83@gmail.com> | 2015-02-13 16:14:10 +0100 |
commit | 20fefdd3f341d6e7f6b15e4926bf5569aa1943d5 (patch) | |
tree | ba402770b4912be3d93f6dd8faab521f4b5e4762 /Plexservice.cpp | |
parent | b5c156939ddf2fc4ec3fa27ae1c3daae28681c12 (diff) | |
download | vdr-plugin-plex-20fefdd3f341d6e7f6b15e4926bf5569aa1943d5.tar.gz vdr-plugin-plex-20fefdd3f341d6e7f6b15e4926bf5569aa1943d5.tar.bz2 |
Removed some raw pointers to avoid a possible memoryleak
Diffstat (limited to 'Plexservice.cpp')
-rw-r--r-- | Plexservice.cpp | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/Plexservice.cpp b/Plexservice.cpp index c5e028a..776f9fc 100644 --- a/Plexservice.cpp +++ b/Plexservice.cpp @@ -146,7 +146,7 @@ MediaContainer* Plexservice::GetSection(std::string section) dsyslog("[plex] URI: %s[s%]", m_pPlexSession->getHost().c_str(), pRequest->getURI().c_str()); - MediaContainer* pAllsections = new MediaContainer(&rs, this->pServer); + MediaContainer* pAllsections = new MediaContainer(&rs, *pServer); //Poco::StreamCopier::copyStream(rs, std::cout); delete pRequest; return pAllsections; @@ -178,39 +178,35 @@ Poco::Net::HTTPRequest* Plexservice::CreateRequest(std::string path) return pRequest; } -MediaContainer* Plexservice::GetMediaContainer(std::string fullUrl) +MediaContainer Plexservice::GetMediaContainer(std::string fullUrl) { Poco::URI fileuri(fullUrl); - Poco::Net::HTTPRequest* pRequest = new Poco::Net::HTTPRequest(Poco::Net::HTTPRequest::HTTP_GET, - fileuri.getPathAndQuery(), Poco::Net::HTTPMessage::HTTP_1_1); + Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, fileuri.getPathAndQuery(), Poco::Net::HTTPMessage::HTTP_1_1); - pRequest->add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17"); + request.add("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17"); //pRequest->add("X-Plex-Client-Capabilities", "protocols=shoutcast,http-video;videoDecoders=h264{profile:high&resolution:1080&level:51};audioDecoders=mp3,aac"); - pRequest->add("X-Plex-Client-Identifier", Config::GetInstance().GetUUID()); - pRequest->add("X-Plex-Device", "PC"); - pRequest->add("X-Plex-Device-Name", Config::GetInstance().GetHostname()); - pRequest->add("X-Plex-Language", Config::GetInstance().GetLanguage()); - pRequest->add("X-Plex-Model", "Linux"); - pRequest->add("X-Plex-Platform", "VDR"); - pRequest->add("X-Plex-Product", "plex for vdr"); - pRequest->add("X-Plex-Provides", "player"); - pRequest->add("X-Plex-Version", "0.0.1a"); - - Poco::Net::HTTPClientSession* session = new Poco::Net::HTTPClientSession(fileuri.getHost(), fileuri.getPort()); - - session->sendRequest(*pRequest); + request.add("X-Plex-Client-Identifier", Config::GetInstance().GetUUID()); + request.add("X-Plex-Device", "PC"); + request.add("X-Plex-Device-Name", Config::GetInstance().GetHostname()); + request.add("X-Plex-Language", Config::GetInstance().GetLanguage()); + request.add("X-Plex-Model", "Linux"); + request.add("X-Plex-Platform", "VDR"); + request.add("X-Plex-Product", "plex for vdr"); + request.add("X-Plex-Provides", "player"); + request.add("X-Plex-Version", "0.0.1a"); + + Poco::Net::HTTPClientSession session(fileuri.getHost(), fileuri.getPort()); + + session.sendRequest(request); Poco::Net::HTTPResponse response; - std::istream &rs = session->receiveResponse(response); + std::istream &rs = session.receiveResponse(response); - MediaContainer* pAllsections = new MediaContainer(&rs, new PlexServer(fileuri.getHost(), fileuri.getPort())); - - delete pRequest; - delete session; + MediaContainer allsections(&rs, PlexServer(fileuri.getHost(), fileuri.getPort())); - return pAllsections; + return allsections; } #ifdef CRYPTOPP @@ -298,7 +294,7 @@ std::string Plexservice::encode(std::string message) std::string Plexservice::GetUniversalTranscodeUrl(Video* video, int offset, PlexServer* server) { - PlexServer* pSrv = server ? server : video->m_pServer; + PlexServer* pSrv = server ? server : &video->m_Server; std::stringstream params; params << "/video/:/transcode/universal/start.m3u8?"; params << "path=" << encode(pSrv->GetUri() + video->m_sKey); |