Commit 27915e89 authored by Francois Cartegnie's avatar Francois Cartegnie

stream_filter: dash: add User-Agent

parent 7b7f4b58
...@@ -89,6 +89,7 @@ libdash_plugin_la_SOURCES = \ ...@@ -89,6 +89,7 @@ libdash_plugin_la_SOURCES = \
stream_filter/dash/xml/Node.cpp \ stream_filter/dash/xml/Node.cpp \
stream_filter/dash/xml/Node.h \ stream_filter/dash/xml/Node.h \
stream_filter/dash/dash.cpp \ stream_filter/dash/dash.cpp \
stream_filter/dash/dash.hpp \
stream_filter/dash/DASHDownloader.cpp \ stream_filter/dash/DASHDownloader.cpp \
stream_filter/dash/DASHDownloader.h \ stream_filter/dash/DASHDownloader.h \
stream_filter/dash/DASHManager.cpp \ stream_filter/dash/DASHManager.cpp \
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
#include <errno.h> #include <errno.h>
#include "DASHManager.h" #include "dash.hpp"
#include "xml/DOMParser.h" #include "xml/DOMParser.h"
#include "mpd/MPDFactory.h" #include "mpd/MPDFactory.h"
...@@ -74,12 +74,6 @@ vlc_module_end () ...@@ -74,12 +74,6 @@ vlc_module_end ()
/***************************************************************************** /*****************************************************************************
* Local prototypes * 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 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); 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) ...@@ -113,6 +107,8 @@ static int Open(vlc_object_t *p_obj)
if (unlikely(p_sys == NULL)) if (unlikely(p_sys == NULL))
return VLC_ENOMEM; return VLC_ENOMEM;
p_sys->psz_useragent = var_InheritString(p_stream, "http-user-agent");
p_sys->p_mpd = mpd; p_sys->p_mpd = mpd;
dash::DASHManager*p_dashManager = new dash::DASHManager(p_sys->p_mpd, dash::DASHManager*p_dashManager = new dash::DASHManager(p_sys->p_mpd,
dash::logic::IAdaptationLogic::RateBased, dash::logic::IAdaptationLogic::RateBased,
...@@ -122,6 +118,7 @@ static int Open(vlc_object_t *p_obj) ...@@ -122,6 +118,7 @@ static int Open(vlc_object_t *p_obj)
{ {
delete p_dashManager; delete p_dashManager;
free( p_sys ); free( p_sys );
free( p_sys->psz_useragent );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
p_sys->p_dashManager = p_dashManager; p_sys->p_dashManager = p_dashManager;
...@@ -145,6 +142,7 @@ static void Close(vlc_object_t *p_obj) ...@@ -145,6 +142,7 @@ static void Close(vlc_object_t *p_obj)
dash::DASHManager *p_dashManager = p_sys->p_dashManager; dash::DASHManager *p_dashManager = p_sys->p_dashManager;
delete(p_dashManager); delete(p_dashManager);
free(p_sys->psz_useragent);
free(p_sys); free(p_sys);
} }
/***************************************************************************** /*****************************************************************************
......
/*****************************************************************************
* 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;
};
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "IHTTPConnection.h" #include "IHTTPConnection.h"
#include "Chunk.h" #include "Chunk.h"
#include "Helper.h" #include "Helper.h"
#include "dash.hpp"
#include <vlc_network.h> #include <vlc_network.h>
...@@ -63,7 +64,8 @@ std::string IHTTPConnection::getRequestHeader(const Chunk *chunk) const ...@@ -63,7 +64,8 @@ std::string IHTTPConnection::getRequestHeader(const Chunk *chunk) const
{ {
std::stringstream req; std::stringstream req;
req << "GET " << chunk->getPath() << " HTTP/1.1\r\n" << 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()) if(chunk->usesByteRange())
req << "Range: bytes=" << chunk->getStartByte() << "-" << chunk->getEndByte() << "\r\n"; req << "Range: bytes=" << chunk->getStartByte() << "-" << chunk->getEndByte() << "\r\n";
......
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