aboutsummaryrefslogtreecommitdiffstats
path: root/UI/DASHPlayerNoGUI.h
diff options
context:
space:
mode:
Diffstat (limited to 'UI/DASHPlayerNoGUI.h')
-rw-r--r--UI/DASHPlayerNoGUI.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/UI/DASHPlayerNoGUI.h b/UI/DASHPlayerNoGUI.h
new file mode 100644
index 00000000..58ba52c4
--- /dev/null
+++ b/UI/DASHPlayerNoGUI.h
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2017 Cisco and/or its affiliates.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DASHPLAYERNOGUI_H_
+#define DASHPLAYERNOGUI_H_
+
+#include <iostream>
+#include <sstream>
+#include "libdash.h"
+#include "DASHPlayer.h"
+#include "IDASHPlayerNoGuiObserver.h"
+#include "../Managers/IMultimediaManagerObserver.h"
+#include "../Managers/MultimediaManager.h"
+#include "../Adaptation/IAdaptationLogic.h"
+#include "../Buffer/IBufferObserver.h"
+#include "../MPD/AdaptationSetHelper.h"
+#include "UI/GraphDataSource.h"
+#include "Websocket/WebSocketService.h"
+
+namespace viper
+{
+class DASHPlayerNoGUI : public IDASHPlayerNoGuiObserver, public managers::IMultimediaManagerObserver
+{
+public:
+ DASHPlayerNoGUI (int argc, char** argv, pthread_cond_t *mainCond, bool nodecoding);
+ virtual ~DASHPlayerNoGUI ();
+ void parseArgs(int argc, char ** argv);
+ void helpMessage(char *name);
+ virtual void onStartButtonPressed(int period, int videoAdaptationSet, int videoRepresentation, int audioAdaptationSet, int audioRepresentation);
+ virtual void onStopButtonPressed();
+ virtual void onSettingsChanged(int period, int videoAdaptationSet, int videoRepresentation, int audioAdaptationSet, int audioRepresentation);
+ /* IMultimediaManagerObserver */
+ virtual void onVideoBufferStateChanged(uint32_t fillstateInPercent);
+ virtual void onVideoSegmentBufferStateChanged(uint32_t fillstateInPercent);
+ virtual void onAudioBufferStateChanged(uint32_t fillstateInPercent);
+ virtual void onAudioSegmentBufferStateChanged(uint32_t fillstateInPercent);
+ virtual void onEOS();
+ virtual void notifyStatistics(int, uint32_t, int, uint32_t);
+ virtual void notifyQualityDownloading(uint32_t);
+ virtual bool onDownloadMPDPressed(const std::string &url);
+ bool isRunning();
+
+private:
+ dash::mpd::IMPD *mpd;
+ viper::managers::MultimediaManager *multimediaManager;
+ CRITICAL_SECTION monitorMutex;
+ char *url;
+ bool isICN;
+ libdash::framework::adaptation::LogicType adaptLogic;
+ pthread_cond_t *mainCond;
+ bool running;
+ struct libdash::framework::adaptation::AdaptationParameters *parameterAdaptation;
+ float segmentDuration;
+ int segmentBufferSize;
+ double alpha;
+ double rateAlpha;
+ double bolaAlpha;
+ double bolaBufferTargetSeconds;
+ int bufferBasedReservoirThreshold;
+ int bufferBasedMaxThreshold;
+ double adaptechAlpha;
+ int adaptechFirstThreshold;
+ int adaptechSecondThreshold;
+ int adaptechSwitchUpThreshold;
+ int bufferThreeThreshold_FirstThreshold;
+ int bufferThreeThreshold_SecondThreshold;
+ int bufferThreeThreshold_ThirdThreshold;
+ double pandaAlpha;
+ double pandaParam_Beta;
+ double pandaParam_Bmin;
+ double pandaParam_K;
+ double pandaParam_W;
+ double pandaParamEpsilon;
+ bool repeat;
+ GraphDataSource *graphData;
+ bool noDecoding;
+ bool settingsChanged(int period, int videoAdaptationSet, int videoRepresentation, int audioAdaptationSet, int audioRepresentation);
+
+};
+}
+#endif /* DASHPLAYER_H_ */