[vlc-commits] dash: Removing empty IAdaptionLogic implementation.
Hugo Beauzée-Luyssen
git at videolan.org
Fri Jan 6 12:40:41 CET 2012
vlc | branch: master | Hugo Beauzée-Luyssen <beauze.h at gmail.com> | Fri Jan 6 11:25:47 2012 +0100| [f2eccf2960d08612083dbfa22ceefe8004141cf6] | committer: Jean-Baptiste Kempf
dash: Removing empty IAdaptionLogic implementation.
This is crash prone, and makes us maintain another implementation if we
ever edit the interface.
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f2eccf2960d08612083dbfa22ceefe8004141cf6
---
modules/stream_filter/dash/DASHManager.cpp | 9 +++-
modules/stream_filter/dash/DASHManager.h | 3 +-
modules/stream_filter/dash/Modules.am | 1 -
.../adaptationlogic/AdaptationLogicFactory.cpp | 8 ++--
.../dash/adaptationlogic/AdaptationLogicFactory.h | 1 -
.../dash/adaptationlogic/NullAdaptationLogic.h | 49 --------------------
modules/stream_filter/dash/dash.cpp | 3 +-
7 files changed, 16 insertions(+), 58 deletions(-)
diff --git a/modules/stream_filter/dash/DASHManager.cpp b/modules/stream_filter/dash/DASHManager.cpp
index 849aec4..f14e1f7 100644
--- a/modules/stream_filter/dash/DASHManager.cpp
+++ b/modules/stream_filter/dash/DASHManager.cpp
@@ -47,6 +47,8 @@ DASHManager::DASHManager ( HTTPConnectionManager *conManager, MPD *mpd,
if ( this->mpdManager == NULL )
return ;
this->adaptationLogic = AdaptationLogicFactory::create( this->logicType, this->mpdManager );
+ if ( this->adaptationLogic == NULL )
+ return ;
this->conManager->attach(this->adaptationLogic);
}
DASHManager::~DASHManager ()
@@ -98,7 +100,12 @@ int DASHManager::peek( const uint8_t **pp_peek, size_t i_peek )
return ret;
}
-const mpd::IMPDManager* DASHManager::getMpdManager() const
+const mpd::IMPDManager* DASHManager::getMpdManager() const
{
return this->mpdManager;
}
+
+const logic::IAdaptationLogic* DASHManager::getAdaptionLogic() const
+{
+ return this->adaptationLogic;
+}
diff --git a/modules/stream_filter/dash/DASHManager.h b/modules/stream_filter/dash/DASHManager.h
index d824808..860eee2 100644
--- a/modules/stream_filter/dash/DASHManager.h
+++ b/modules/stream_filter/dash/DASHManager.h
@@ -45,7 +45,8 @@ namespace dash
int read( void *p_buffer, size_t len );
int peek( const uint8_t **pp_peek, size_t i_peek );
- const mpd::IMPDManager* getMpdManager() const;
+ const mpd::IMPDManager* getMpdManager() const;
+ const logic::IAdaptationLogic* getAdaptionLogic() const;
private:
http::HTTPConnectionManager *conManager;
diff --git a/modules/stream_filter/dash/Modules.am b/modules/stream_filter/dash/Modules.am
index b38bb18..f6c11f2 100644
--- a/modules/stream_filter/dash/Modules.am
+++ b/modules/stream_filter/dash/Modules.am
@@ -7,7 +7,6 @@ SOURCES_stream_filter_dash = \
adaptationlogic/AlwaysBestAdaptationLogic.h \
adaptationlogic/IAdaptationLogic.h \
adaptationlogic/IDownloadRateObserver.h \
- adaptationlogic/NullAdaptationLogic.h \
adaptationlogic/RateBasedAdaptationLogic.h \
adaptationlogic/RateBasedAdaptationLogic.cpp \
exceptions/EOFException.h \
diff --git a/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.cpp b/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.cpp
index 80469c0..341c739 100644
--- a/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.cpp
+++ b/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.cpp
@@ -36,11 +36,11 @@ IAdaptationLogic* AdaptationLogicFactory::create ( IAdaptationLogic::LogicType l
{
switch(logic)
{
- case IAdaptationLogic::Default: return new NullAdaptationLogic (mpdManager);
case IAdaptationLogic::AlwaysBest: return new AlwaysBestAdaptationLogic (mpdManager);
- case IAdaptationLogic::AlwaysLowest: return new NullAdaptationLogic (mpdManager);
case IAdaptationLogic::RateBased: return new RateBasedAdaptationLogic (mpdManager);
-
- default: return new NullAdaptationLogic (mpdManager);
+ case IAdaptationLogic::Default:
+ case IAdaptationLogic::AlwaysLowest:
+ default:
+ return NULL;
}
}
diff --git a/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.h b/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.h
index 79ff47b..f27cf25 100644
--- a/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.h
+++ b/modules/stream_filter/dash/adaptationlogic/AdaptationLogicFactory.h
@@ -29,7 +29,6 @@
#include "xml/Node.h"
#include "mpd/IMPDManager.h"
#include "adaptationlogic/AlwaysBestAdaptationLogic.h"
-#include "adaptationlogic/NullAdaptationLogic.h"
#include "adaptationlogic/RateBasedAdaptationLogic.h"
namespace dash
diff --git a/modules/stream_filter/dash/adaptationlogic/NullAdaptationLogic.h b/modules/stream_filter/dash/adaptationlogic/NullAdaptationLogic.h
deleted file mode 100644
index e88c07a..0000000
--- a/modules/stream_filter/dash/adaptationlogic/NullAdaptationLogic.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * NullAdaptationLogic.h
- *****************************************************************************
- * Copyright (C) 2010 - 2011 Klagenfurt University
- *
- * Created on: Aug 10, 2010
- * Authors: Christopher Mueller <christopher.mueller at itec.uni-klu.ac.at>
- * Christian Timmerer <christian.timmerer at itec.uni-klu.ac.at>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef NULLADAPTATIONLOGIC_H_
-#define NULLADAPTATIONLOGIC_H_
-
-#include "adaptationlogic/AbstractAdaptationLogic.h"
-#include "http/Chunk.h"
-#include "xml/Node.h"
-#include "mpd/IMPDManager.h"
-#include "exceptions/EOFException.h"
-
-namespace dash
-{
- namespace logic
- {
- class NullAdaptationLogic : public AbstractAdaptationLogic
- {
- public:
- NullAdaptationLogic (dash::mpd::IMPDManager *mpdManager) : AbstractAdaptationLogic(mpdManager) {}
- virtual ~NullAdaptationLogic() {}
-
- dash::http::Chunk* getNextChunk() throw(dash::exception::EOFException) { throw dash::exception::EOFException(); }
- };
- }
-}
-
-#endif /* NULLADAPTATIONLOGIC_H_ */
diff --git a/modules/stream_filter/dash/dash.cpp b/modules/stream_filter/dash/dash.cpp
index 18541fa..5633316 100644
--- a/modules/stream_filter/dash/dash.cpp
+++ b/modules/stream_filter/dash/dash.cpp
@@ -110,7 +110,8 @@ static int Open(vlc_object_t *p_obj)
dash::logic::IAdaptationLogic::RateBased );
if ( p_dashManager->getMpdManager() == NULL ||
- p_dashManager->getMpdManager()->getMPD() == NULL )
+ p_dashManager->getMpdManager()->getMPD() == NULL ||
+ p_dashManager->getAdaptionLogic() == NULL )
{
delete p_conManager;
delete p_dashManager;
More information about the vlc-commits
mailing list