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 \
#include <errno.h>
-#include "DASHManager.h"
+#include "dash.hpp"
#include "xml/DOMParser.h"
#include "mpd/MPDFactory.h"
/*****************************************************************************
* 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);
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,
{
delete p_dashManager;
free( p_sys );
+ free( p_sys->psz_useragent );
return VLC_EGENERIC;
}
p_sys->p_dashManager = p_dashManager;
dash::DASHManager *p_dashManager = p_sys->p_dashManager;
delete(p_dashManager);
+ free(p_sys->psz_useragent);
free(p_sys);
}
/*****************************************************************************
--- /dev/null
+/*****************************************************************************
+ * 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;
+};
#include "IHTTPConnection.h"
#include "Chunk.h"
#include "Helper.h"
+#include "dash.hpp"
#include <vlc_network.h>
{
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";