summaryrefslogtreecommitdiff
path: root/Plexservice.cpp
diff options
context:
space:
mode:
authorchriszero <zerov83@gmail.com>2015-02-13 16:14:10 +0100
committerchriszero <zerov83@gmail.com>2015-02-13 16:14:10 +0100
commit20fefdd3f341d6e7f6b15e4926bf5569aa1943d5 (patch)
treeba402770b4912be3d93f6dd8faab521f4b5e4762 /Plexservice.cpp
parentb5c156939ddf2fc4ec3fa27ae1c3daae28681c12 (diff)
downloadvdr-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.cpp46
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);