add cookie.patch thx DboxOldie

This commit is contained in:
max10
2016-04-03 00:06:31 +02:00
parent 747c5cb3f1
commit 182baf4e57
6 changed files with 28 additions and 11 deletions

View File

@@ -70,7 +70,7 @@ class Input
bool ReadSubtitle(const char *filename, const char *format, int pid);
bool ReadSubtitles(const char *filename);
bool Init(const char *filename);
bool Init(const char *filename, std::string headers = "");
bool UpdateTracks();
bool Play();
bool Stop();

View File

@@ -103,7 +103,7 @@ class Player {
bool FastBackward(int speed);
bool FastForward(int speed);
bool Open(const char *Url, bool noprobe = false);
bool Open(const char *Url, bool noprobe = false, std::string headers = "");
bool Close();
bool Play();
bool Pause();

View File

@@ -372,12 +372,13 @@ bool Input::ReadSubtitles(const char *filename) {
return ret;
}
bool Input::Init(const char *filename)
bool Input::Init(const char *filename, std::string headers)
{
bool find_info = true;
abortPlayback = false;
av_lockmgr_register(lock_callback);
#if ENABLE_LOGGING
av_log_set_level(AV_LOG_INFO);
av_log_set_callback(log_callback);
#endif
@@ -385,7 +386,16 @@ bool Input::Init(const char *filename)
fprintf(stderr, "filename NULL\n");
return false;
}
fprintf(stderr, "%s %s %d: %s\n", FILENAME, __func__, __LINE__, filename);
if (!headers.empty())
{
fprintf(stderr, "%s %s %d: %s\n%s\n", FILENAME, __func__, __LINE__, filename, headers.c_str());
headers += "\r\n";
}
else
{
fprintf(stderr, "%s %s %d: %s\n", FILENAME, __func__, __LINE__, filename);
}
avcodec_register_all();
av_register_all();
@@ -403,7 +413,14 @@ again:
avfc->interrupt_callback.callback = interrupt_cb;
avfc->interrupt_callback.opaque = (void *) player;
int err = avformat_open_input(&avfc, filename, NULL, 0);
AVDictionary *options = NULL;
av_dict_set(&options, "auth_type", "basic", 0);
if (!headers.empty())
{
av_dict_set(&options, "headers", headers.c_str(), 0);
}
int err = avformat_open_input(&avfc, filename, NULL, &options);
av_dict_free(&options);
if (averror(err, avformat_open_input)) {
avformat_free_context(avfc);
return false;

View File

@@ -65,7 +65,7 @@ void *Player::playthread(void *arg)
pthread_exit(NULL);
}
bool Player::Open(const char *Url, bool _noprobe)
bool Player::Open(const char *Url, bool _noprobe, std::string headers)
{
fprintf(stderr, "URL=%s\n", Url);
@@ -89,7 +89,7 @@ bool Player::Open(const char *Url, bool _noprobe)
return false;
}
return input.Init(url.c_str());
return input.Init(url.c_str(), headers);
}
bool Player::Close()