[vlc-commits] demux: dash: move probing to manager
Francois Cartegnie
git at videolan.org
Fri Jul 24 15:09:28 CEST 2015
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu Jul 23 17:19:16 2015 +0200| [58a0a84700327e66ee4669109a3189f960272d0d] | committer: Francois Cartegnie
demux: dash: move probing to manager
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=58a0a84700327e66ee4669109a3189f960272d0d
---
modules/demux/dash/DASHManager.cpp | 26 ++++++++++++++++++++++++++
modules/demux/dash/DASHManager.h | 2 ++
modules/demux/dash/dash.cpp | 2 +-
modules/demux/dash/xml/DOMParser.cpp | 26 --------------------------
modules/demux/dash/xml/DOMParser.h | 2 +-
5 files changed, 30 insertions(+), 28 deletions(-)
diff --git a/modules/demux/dash/DASHManager.cpp b/modules/demux/dash/DASHManager.cpp
index 723e48c..0552879 100644
--- a/modules/demux/dash/DASHManager.cpp
+++ b/modules/demux/dash/DASHManager.cpp
@@ -34,6 +34,7 @@
#include "mpd/ProgramInformation.h"
#include "xml/DOMParser.h"
#include "../adaptative/logic/RateBasedAdaptationLogic.h"
+#include "../adaptative/tools/Helper.h"
#include <vlc_stream.h>
#include <vlc_demux.h>
#include <vlc_meta.h>
@@ -186,6 +187,31 @@ int DASHManager::doControl(int i_query, va_list args)
return PlaylistManager::doControl(i_query, args);
}
+bool DASHManager::isDASH(stream_t *stream)
+{
+ const std::string namespaces[] = {
+ "xmlns=\"urn:mpeg:mpegB:schema:DASH:MPD:DIS2011\"",
+ "xmlns=\"urn:mpeg:schema:dash:mpd:2011\"",
+ "xmlns=\"urn:mpeg:DASH:schema:MPD:2011\"",
+ "xmlns='urn:mpeg:mpegB:schema:DASH:MPD:DIS2011'",
+ "xmlns='urn:mpeg:schema:dash:mpd:2011'",
+ "xmlns='urn:mpeg:DASH:schema:MPD:2011'",
+ };
+
+ const uint8_t *peek;
+ int peek_size = stream_Peek(stream, &peek, 1024);
+ if (peek_size < (int)namespaces[0].length())
+ return false;
+
+ std::string header((const char*)peek, peek_size);
+ for( size_t i=0; i<ARRAY_SIZE(namespaces); i++ )
+ {
+ if ( adaptative::Helper::ifind(header, namespaces[i]) )
+ return true;
+ }
+ return false;
+}
+
AbstractAdaptationLogic *DASHManager::createLogic(AbstractAdaptationLogic::LogicType type)
{
switch(type)
diff --git a/modules/demux/dash/DASHManager.h b/modules/demux/dash/DASHManager.h
index b061124..f5927bb 100644
--- a/modules/demux/dash/DASHManager.h
+++ b/modules/demux/dash/DASHManager.h
@@ -50,6 +50,8 @@ namespace dash
virtual bool updatePlaylist(); //reimpl
virtual AbstractAdaptationLogic *createLogic(AbstractAdaptationLogic::LogicType); //reimpl
+ static bool isDASH(stream_t *);
+
protected:
virtual int doControl(int, va_list); /* reimpl */
};
diff --git a/modules/demux/dash/dash.cpp b/modules/demux/dash/dash.cpp
index 2daef0f..67e5f23 100644
--- a/modules/demux/dash/dash.cpp
+++ b/modules/demux/dash/dash.cpp
@@ -108,7 +108,7 @@ static int Open(vlc_object_t *p_obj)
free(psz_mime);
}
- if(!b_mimematched && !DOMParser::isDash(p_demux->s))
+ if(!b_mimematched && !DASHManager::isDASH(p_demux->s))
return VLC_EGENERIC;
//Build a XML tree
diff --git a/modules/demux/dash/xml/DOMParser.cpp b/modules/demux/dash/xml/DOMParser.cpp
index 8d8cc32..1fdf924 100644
--- a/modules/demux/dash/xml/DOMParser.cpp
+++ b/modules/demux/dash/xml/DOMParser.cpp
@@ -26,12 +26,10 @@
#endif
#include "DOMParser.h"
-#include "../adaptative/tools/Helper.h"
#include <vector>
#include <stack>
#include <vlc_xml.h>
-#include <vlc_stream.h>
using namespace dash::xml;
using namespace dash::mpd;
@@ -166,30 +164,6 @@ void DOMParser::print ()
{
this->print(this->root, 0);
}
-bool DOMParser::isDash (stream_t *stream)
-{
- const std::string namespaces[] = {
- "xmlns=\"urn:mpeg:mpegB:schema:DASH:MPD:DIS2011\"",
- "xmlns=\"urn:mpeg:schema:dash:mpd:2011\"",
- "xmlns=\"urn:mpeg:DASH:schema:MPD:2011\"",
- "xmlns='urn:mpeg:mpegB:schema:DASH:MPD:DIS2011'",
- "xmlns='urn:mpeg:schema:dash:mpd:2011'",
- "xmlns='urn:mpeg:DASH:schema:MPD:2011'",
- };
-
- const uint8_t *peek;
- int peek_size = stream_Peek(stream, &peek, 1024);
- if (peek_size < (int)namespaces[0].length())
- return false;
-
- std::string header((const char*)peek, peek_size);
- for( size_t i=0; i<ARRAY_SIZE(namespaces); i++ )
- {
- if ( adaptative::Helper::ifind(header, namespaces[i]) )
- return true;
- }
- return false;
-}
Profile DOMParser::getProfile() const
{
diff --git a/modules/demux/dash/xml/DOMParser.h b/modules/demux/dash/xml/DOMParser.h
index c50e7be..5331d43 100644
--- a/modules/demux/dash/xml/DOMParser.h
+++ b/modules/demux/dash/xml/DOMParser.h
@@ -30,6 +30,7 @@
#endif
#include <vlc_common.h>
+#include <vlc_stream.h>
#include "Node.h"
#include "../mpd/Profile.hpp"
@@ -47,7 +48,6 @@ namespace dash
bool parse ();
Node* getRootNode ();
void print ();
- static bool isDash (stream_t *stream);
mpd::Profile getProfile () const;
private:
More information about the vlc-commits
mailing list