pthread: Fix deadlock during thread initialization

Sometimes, if pthread_create() failed, then pthread_cond_wait() could
accidentally be called in the worker threads after the uninit function
had already called pthread_cond_broadcast(), leading to a deadlock.

Don't call pthread_cond_wait() if c->done is set.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
http: Add an option for forcing basic authentication

The default is to autodetect the auth method. This does require one
extra request (and also closing and reopening the http connection).
For some cases such as HTTP POST, the autodetection is not handled
properly (yet).

No option is added for digest, since this method requires getting
nonce parameters from the server first and can't be used straight
away like Basic.

Signed-off-by: Martin Storsjö <martin@martin.st>
http: Support auth method detection for POST

Inspired by a patch by Jakob van Bethlehem. But instead of doing
an empty POST first to trigger the WWW-Authenticate header (which
would succeed if no auth actually was required), add an Expect:
100-continue header, which is meant to be used exactly for
cases like this.

The header is added if doing a post, and the user has specified
authentication but we don't know the auth method yet.

Not all common HTTP servers support the Expect: 100-continue header,
though, so we only try to use it when it really is needed. The user
can request it to be added for other POST requests as well via
an option - which would allow the caller to know immediately that
the POST has failed (e.g. if no auth was provided but the server
required it, or if the target URL simply doesn't exist).

This is only done for write mode posts (e.g. posts without pre-set
post_data) - for posts with pre-set data, we can just redo the post
if it failed due to 401.

Signed-off-by: Martin Storsjö <martin@martin.st>
ffplay: factor out putting null packet into the queue

Signed-off-by: Marton Balint <cus@passwd.hu>
ffplay: add null packet after attached pics packet

Fixes ticket #2904.

Signed-off-by: Marton Balint <cus@passwd.hu>
ffplay: cycle through the streams of the current program, and not every stream

When changing the audio, video or subtitle stream, from now on, ffplay will
cycle through the streams of the current program.

Signed-off-by: Marton Balint <cus@passwd.hu>
ffplay: add support for changing the channel by the C key

Signed-off-by: Marton Balint <cus@passwd.hu>
cavs: K&R formatting cosmetics
cavs: Return meaningful error values
cavs: Check for negative cbp

Sample-Id: 00000647-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
avformat/oggparseopus: fix nb_headers

Line comes from ecab1c77410f023b437c6ed3a3281be8f039e574
and was not merged previously

Thanks-to: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/jpeg2000dec: check transform equality in MCT

Fixes null pointer dereference
Fixes Ticket2843

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Merge remote-tracking branch 'cus/stable'

* cus/stable:
  ffplay: add support for changing the channel by the C key
  ffplay: cycle through the streams of the current program, and not every stream
  ffplay: add null packet after attached pics packet
  ffplay: factor out putting null packet into the queue

Merged-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/jpeg2000: zero i/f_data

Fixes uninitialized use of variables

Fixes part of Ticket2921

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/jpeg2000dec: prevent out of array accesses in pixel addressing

Fixes Ticket2921

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
avformat: add ff_alloc_extradata() helper

Signed-off-by: Paul B Mahol <onemda@gmail.com>
avformat: use ff_alloc_extradata()

Signed-off-by: Paul B Mahol <onemda@gmail.com>
avformat/westwood_vqa: s/unsigned char/uint8_t & s/unsigned int/uint32_t

Signed-off-by: Paul B Mahol <onemda@gmail.com>
Merge commit 'eb90a2091ffb94d8c29aaa5ff50f4192520254fc'

* commit 'eb90a2091ffb94d8c29aaa5ff50f4192520254fc':
  pthread: Fix deadlock during thread initialization

Conflicts:
	libavcodec/pthread.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'eb8b05a3824a9fa85e20d603595ac8a3b83505d4'

* commit 'eb8b05a3824a9fa85e20d603595ac8a3b83505d4':
  http: Add an option for forcing basic authentication

Conflicts:
	libavformat/http.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>