vlc | branch: master | Hugo Beauzée-Luyssen <[email protected]> | 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 <[email protected]> > 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 <[email protected]> - * Christian Timmerer <[email protected]> - * - * 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; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
