From 27b91279b3ad40519a641ad574988f97c00f124b Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Tue, 3 Mar 2020 23:15:27 +0100 Subject: [PATCH] libarmbox/playback_libeplayer3.cpp enable use headers with ffmpeg_av_dict_set Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/c6ea08fbb0285133d9cbb2ca528bb872357587c3 Author: Jacek Jendrzej Date: 2020-03-03 (Tue, 03 Mar 2020) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libarmbox/playback_libeplayer3.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/libarmbox/playback_libeplayer3.cpp b/libarmbox/playback_libeplayer3.cpp index 2ab3d59..390ba88 100644 --- a/libarmbox/playback_libeplayer3.cpp +++ b/libarmbox/playback_libeplayer3.cpp @@ -9,11 +9,14 @@ #include #include +extern "C" { #include extern OutputHandler_t OutputHandler; extern PlaybackHandler_t PlaybackHandler; extern ContainerHandler_t ContainerHandler; extern ManagerHandler_t ManagerHandler; +extern int32_t ffmpeg_av_dict_set( const char *key, const char *value, int32_t flags); +} #include "playback_libeplayer3.h" #include "hal_debug.h" @@ -101,7 +104,7 @@ bool cPlayback::Start(std::string filename, std::string headers, std::string fil return Start((char *) filename.c_str(), 0, 0, 0, 0, 0, headers,filename2); } -bool cPlayback::Start(char *filename, int vpid, int vtype, int apid, int ac3, int, std::string headers __attribute__((unused)),std::string filename2) +bool cPlayback::Start(char *filename, int vpid, int vtype, int apid, int ac3, int, std::string headers, std::string filename2) { bool ret = false; bool isHTTP = false; @@ -137,6 +140,22 @@ bool cPlayback::Start(char *filename, int vpid, int vtype, int apid, int ac3, in else isHTTP = true; + if(isHTTP && headers.empty()) + { + size_t pos = file.find('#'); + if (pos != std::string::npos) + { + headers = file.substr(pos + 1); + pos = headers.find("User-Agent="); + if (pos != std::string::npos) + headers.replace(pos+10, 1, ": "); + } + } + if(!headers.empty()){ + const char hkey[] = "headers"; + ffmpeg_av_dict_set(hkey, headers.c_str(), 0); + } + std::string szSecondFile; char *file2 = NULL; if(!filename2.empty()){