Commit f2eccf29 authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen Committed by 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: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent db1c4aa7
...@@ -47,6 +47,8 @@ DASHManager::DASHManager ( HTTPConnectionManager *conManager, MPD *mpd, ...@@ -47,6 +47,8 @@ DASHManager::DASHManager ( HTTPConnectionManager *conManager, MPD *mpd,
if ( this->mpdManager == NULL ) if ( this->mpdManager == NULL )
return ; return ;
this->adaptationLogic = AdaptationLogicFactory::create( this->logicType, this->mpdManager ); this->adaptationLogic = AdaptationLogicFactory::create( this->logicType, this->mpdManager );
if ( this->adaptationLogic == NULL )
return ;
this->conManager->attach(this->adaptationLogic); this->conManager->attach(this->adaptationLogic);
} }
DASHManager::~DASHManager () DASHManager::~DASHManager ()
...@@ -98,7 +100,12 @@ int DASHManager::peek( const uint8_t **pp_peek, size_t i_peek ) ...@@ -98,7 +100,12 @@ int DASHManager::peek( const uint8_t **pp_peek, size_t i_peek )
return ret; return ret;
} }
const mpd::IMPDManager* DASHManager::getMpdManager() const const mpd::IMPDManager* DASHManager::getMpdManager() const
{ {
return this->mpdManager; return this->mpdManager;
} }
const logic::IAdaptationLogic* DASHManager::getAdaptionLogic() const
{
return this->adaptationLogic;
}
...@@ -45,7 +45,8 @@ namespace dash ...@@ -45,7 +45,8 @@ namespace dash
int read( void *p_buffer, size_t len ); int read( void *p_buffer, size_t len );
int peek( const uint8_t **pp_peek, size_t i_peek ); 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: private:
http::HTTPConnectionManager *conManager; http::HTTPConnectionManager *conManager;
......
...@@ -7,7 +7,6 @@ SOURCES_stream_filter_dash = \ ...@@ -7,7 +7,6 @@ SOURCES_stream_filter_dash = \
adaptationlogic/AlwaysBestAdaptationLogic.h \ adaptationlogic/AlwaysBestAdaptationLogic.h \
adaptationlogic/IAdaptationLogic.h \ adaptationlogic/IAdaptationLogic.h \
adaptationlogic/IDownloadRateObserver.h \ adaptationlogic/IDownloadRateObserver.h \
adaptationlogic/NullAdaptationLogic.h \
adaptationlogic/RateBasedAdaptationLogic.h \ adaptationlogic/RateBasedAdaptationLogic.h \
adaptationlogic/RateBasedAdaptationLogic.cpp \ adaptationlogic/RateBasedAdaptationLogic.cpp \
exceptions/EOFException.h \ exceptions/EOFException.h \
......
...@@ -36,11 +36,11 @@ IAdaptationLogic* AdaptationLogicFactory::create ( IAdaptationLogic::LogicType l ...@@ -36,11 +36,11 @@ IAdaptationLogic* AdaptationLogicFactory::create ( IAdaptationLogic::LogicType l
{ {
switch(logic) switch(logic)
{ {
case IAdaptationLogic::Default: return new NullAdaptationLogic (mpdManager);
case IAdaptationLogic::AlwaysBest: return new AlwaysBestAdaptationLogic (mpdManager); case IAdaptationLogic::AlwaysBest: return new AlwaysBestAdaptationLogic (mpdManager);
case IAdaptationLogic::AlwaysLowest: return new NullAdaptationLogic (mpdManager);
case IAdaptationLogic::RateBased: return new RateBasedAdaptationLogic (mpdManager); case IAdaptationLogic::RateBased: return new RateBasedAdaptationLogic (mpdManager);
case IAdaptationLogic::Default:
default: return new NullAdaptationLogic (mpdManager); case IAdaptationLogic::AlwaysLowest:
default:
return NULL;
} }
} }
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include "xml/Node.h" #include "xml/Node.h"
#include "mpd/IMPDManager.h" #include "mpd/IMPDManager.h"
#include "adaptationlogic/AlwaysBestAdaptationLogic.h" #include "adaptationlogic/AlwaysBestAdaptationLogic.h"
#include "adaptationlogic/NullAdaptationLogic.h"
#include "adaptationlogic/RateBasedAdaptationLogic.h" #include "adaptationlogic/RateBasedAdaptationLogic.h"
namespace dash namespace dash
......
/*
* NullAdaptationLogic.h
*****************************************************************************
* Copyright (C) 2010 - 2011 Klagenfurt University
*
* Created on: Aug 10, 2010
* Authors: Christopher Mueller <christopher.mueller@itec.uni-klu.ac.at>
* Christian Timmerer <christian.timmerer@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_ */
...@@ -110,7 +110,8 @@ static int Open(vlc_object_t *p_obj) ...@@ -110,7 +110,8 @@ static int Open(vlc_object_t *p_obj)
dash::logic::IAdaptationLogic::RateBased ); dash::logic::IAdaptationLogic::RateBased );
if ( p_dashManager->getMpdManager() == NULL || if ( p_dashManager->getMpdManager() == NULL ||
p_dashManager->getMpdManager()->getMPD() == NULL ) p_dashManager->getMpdManager()->getMPD() == NULL ||
p_dashManager->getAdaptionLogic() == NULL )
{ {
delete p_conManager; delete p_conManager;
delete p_dashManager; delete p_dashManager;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment