vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Thu Nov 20 18:13:23 2014 +0100| [27915e893b34095ddfdb1572bf907c3e4c40b3c4] | committer: Francois Cartegnie
stream_filter: dash: add User-Agent > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=27915e893b34095ddfdb1572bf907c3e4c40b3c4 --- modules/stream_filter/Makefile.am | 1 + modules/stream_filter/dash/dash.cpp | 12 ++++----- modules/stream_filter/dash/dash.hpp | 28 ++++++++++++++++++++ .../stream_filter/dash/http/IHTTPConnection.cpp | 4 ++- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/modules/stream_filter/Makefile.am b/modules/stream_filter/Makefile.am index b0a8aaa..3c002d1 100644 --- a/modules/stream_filter/Makefile.am +++ b/modules/stream_filter/Makefile.am @@ -89,6 +89,7 @@ libdash_plugin_la_SOURCES = \ stream_filter/dash/xml/Node.cpp \ stream_filter/dash/xml/Node.h \ stream_filter/dash/dash.cpp \ + stream_filter/dash/dash.hpp \ stream_filter/dash/DASHDownloader.cpp \ stream_filter/dash/DASHDownloader.h \ stream_filter/dash/DASHManager.cpp \ diff --git a/modules/stream_filter/dash/dash.cpp b/modules/stream_filter/dash/dash.cpp index 697da2d..2c54a00 100644 --- a/modules/stream_filter/dash/dash.cpp +++ b/modules/stream_filter/dash/dash.cpp @@ -38,7 +38,7 @@ #include <errno.h> -#include "DASHManager.h" +#include "dash.hpp" #include "xml/DOMParser.h" #include "mpd/MPDFactory.h" @@ -74,12 +74,6 @@ vlc_module_end () /***************************************************************************** * Local prototypes *****************************************************************************/ -struct stream_sys_t -{ - dash::DASHManager *p_dashManager; - dash::mpd::MPD *p_mpd; - uint64_t position; -}; static int Read (stream_t *p_stream, void *p_ptr, unsigned int i_len); static int Peek (stream_t *p_stream, const uint8_t **pp_peek, unsigned int i_peek); @@ -113,6 +107,8 @@ static int Open(vlc_object_t *p_obj) if (unlikely(p_sys == NULL)) return VLC_ENOMEM; + p_sys->psz_useragent = var_InheritString(p_stream, "http-user-agent"); + p_sys->p_mpd = mpd; dash::DASHManager*p_dashManager = new dash::DASHManager(p_sys->p_mpd, dash::logic::IAdaptationLogic::RateBased, @@ -122,6 +118,7 @@ static int Open(vlc_object_t *p_obj) { delete p_dashManager; free( p_sys ); + free( p_sys->psz_useragent ); return VLC_EGENERIC; } p_sys->p_dashManager = p_dashManager; @@ -145,6 +142,7 @@ static void Close(vlc_object_t *p_obj) dash::DASHManager *p_dashManager = p_sys->p_dashManager; delete(p_dashManager); + free(p_sys->psz_useragent); free(p_sys); } /***************************************************************************** diff --git a/modules/stream_filter/dash/dash.hpp b/modules/stream_filter/dash/dash.hpp new file mode 100644 index 0000000..2c1140f --- /dev/null +++ b/modules/stream_filter/dash/dash.hpp @@ -0,0 +1,28 @@ +/***************************************************************************** + * dash.hpp: DASH module + ***************************************************************************** + * Copyright © 2014 - VideoLAN Authors + * + * 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 Lesser 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. + *****************************************************************************/ +#include "DASHManager.h" + +struct stream_sys_t +{ + dash::DASHManager *p_dashManager; + dash::mpd::MPD *p_mpd; + uint64_t position; + char *psz_useragent; +}; diff --git a/modules/stream_filter/dash/http/IHTTPConnection.cpp b/modules/stream_filter/dash/http/IHTTPConnection.cpp index 15623e7..83847ac 100644 --- a/modules/stream_filter/dash/http/IHTTPConnection.cpp +++ b/modules/stream_filter/dash/http/IHTTPConnection.cpp @@ -21,6 +21,7 @@ #include "IHTTPConnection.h" #include "Chunk.h" #include "Helper.h" +#include "dash.hpp" #include <vlc_network.h> @@ -63,7 +64,8 @@ std::string IHTTPConnection::getRequestHeader(const Chunk *chunk) const { std::stringstream req; req << "GET " << chunk->getPath() << " HTTP/1.1\r\n" << - "Host: " << chunk->getHostname() << "\r\n"; + "Host: " << chunk->getHostname() << "\r\n" << + "User-Agent: " << std::string(stream->p_sys->psz_useragent) << "\r\n"; if(chunk->usesByteRange()) req << "Range: bytes=" << chunk->getStartByte() << "-" << chunk->getEndByte() << "\r\n"; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits