From 413b622176de12aa6d6bd9c8ae32409f1fe28a50 Mon Sep 17 00:00:00 2001 From: Dario Casalinuovo Date: Thu, 17 Nov 2016 17:46:02 +0100 Subject: [PATCH] rtsp_streamer: Update to last api version --- .../plugins/rtsp_streamer/RTSPMediaIO.cpp | 59 +++++++++---------- .../media/plugins/rtsp_streamer/RTSPMediaIO.h | 6 +- .../rtsp_streamer/RTSPStreamerPlugin.cpp | 11 ++-- 3 files changed, 36 insertions(+), 40 deletions(-) diff --git a/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.cpp b/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.cpp index a1edd998a2..8c7742b884 100644 --- a/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.cpp +++ b/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.cpp @@ -19,26 +19,10 @@ RTSPMediaIO::RTSPMediaIO(BUrl ourUrl) fClient(NULL), fScheduler(NULL), fLoopWatchVariable(0), - fLoopThread(-1), - fInitErr(B_ERROR) + fLoopThread(-1) { fScheduler = BasicTaskScheduler::createNew(); fEnv = BasicUsageEnvironment::createNew(*fScheduler); - - fClient = new HaikuRTSPClient(*fEnv, fUrl.UrlString(), - 0, this); - if (fClient == NULL) - return; - - fClient->sendDescribeCommand(continueAfterDESCRIBE); - - fLoopThread = spawn_thread(_LoopThread, "two minutes hate thread", - B_NORMAL_PRIORITY, this); - - if (fLoopThread <= 0 || resume_thread(fLoopThread) != B_OK) - return; - - fInitErr = fClient->WaitForInit(5000000); } @@ -54,20 +38,6 @@ RTSPMediaIO::~RTSPMediaIO() } -status_t -RTSPMediaIO::InitCheck() const -{ - return fInitErr; -} - - -void -RTSPMediaIO::ShutdownLoop() -{ - fLoopWatchVariable = 1; -} - - ssize_t RTSPMediaIO::WriteAt(off_t position, const void* buffer, size_t size) { @@ -82,6 +52,26 @@ RTSPMediaIO::SetSize(off_t size) } +status_t +RTSPMediaIO::Open() +{ + fClient = new HaikuRTSPClient(*fEnv, fUrl.UrlString(), + 0, this); + if (fClient == NULL) + return B_ERROR; + + fClient->sendDescribeCommand(continueAfterDESCRIBE); + + fLoopThread = spawn_thread(_LoopThread, "two minutes hate thread", + B_NORMAL_PRIORITY, this); + + if (fLoopThread <= 0 || resume_thread(fLoopThread) != B_OK) + return B_ERROR; + + return fClient->WaitForInit(5000000); +} + + int32 RTSPMediaIO::_LoopThread(void* data) { @@ -98,6 +88,13 @@ RTSPMediaIO::LoopThread() } +void +RTSPMediaIO::ShutdownLoop() +{ + fLoopWatchVariable = 1; +} + + HaikuRTSPClient::HaikuRTSPClient(UsageEnvironment& env, char const* rtspURL, portNumBits tunnelOverHTTPPortNum, RTSPMediaIO* interface) : diff --git a/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.h b/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.h index 8e234ccbd9..ee79dbddac 100644 --- a/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.h +++ b/src/add-ons/media/plugins/rtsp_streamer/RTSPMediaIO.h @@ -21,14 +21,14 @@ public: RTSPMediaIO(BUrl ourUrl); virtual ~RTSPMediaIO(); - status_t InitCheck() const; - virtual ssize_t WriteAt(off_t position, const void* buffer, size_t size); virtual status_t SetSize(off_t size); + virtual status_t Open(); + void LoopThread(); void ShutdownLoop(); private: @@ -42,8 +42,6 @@ private: char fLoopWatchVariable; thread_id fLoopThread; - - status_t fInitErr; }; diff --git a/src/add-ons/media/plugins/rtsp_streamer/RTSPStreamerPlugin.cpp b/src/add-ons/media/plugins/rtsp_streamer/RTSPStreamerPlugin.cpp index 752426b85d..41545abbde 100644 --- a/src/add-ons/media/plugins/rtsp_streamer/RTSPStreamerPlugin.cpp +++ b/src/add-ons/media/plugins/rtsp_streamer/RTSPStreamerPlugin.cpp @@ -17,13 +17,14 @@ RTSPStreamer::~RTSPStreamer() status_t RTSPStreamer::Sniff(const BUrl& url, BDataIO** source) { - RTSPMediaIO* ret = new RTSPMediaIO(url); - if (ret->InitCheck() == B_OK) { - *source = ret; + RTSPMediaIO* outSource = new RTSPMediaIO(url); + status_t ret = outSource->Open(); + if (ret == B_OK) { + *source = outSource; return B_OK; } - delete ret; - return B_ERROR; + delete outSource; + return ret; }