hlsenc: Make the start_number option set the right variable

Signed-off-by: Martin Storsjö <martin@martin.st>
rtpdec_vp8: Set the timestamp when returning a deferred packet

Signed-off-by: Martin Storsjö <martin@martin.st>
rtpdec_vp8: Make sure the previous packet is returned

This is a bug from c7d4de3d73 - if the previous frame wasn't
returned yet (due to missing the final packets), but we have
enough data of it to return the first partition, we write that into
pkt and set returned_old_frame. That commit forgot returning 0 for
the case where this current packet didn't have the end_packet flag
set.

Signed-off-by: Martin Storsjö <martin@martin.st>
rtpdec_vp8: Avoid a warning about a possibly unused variable

The warning is a false positive, but I prefer actually initializing
it over masking it with av_uninit, since the code is not performance
critical.

Signed-off-by: Martin Storsjö <martin@martin.st>
rtpdec: Store the dynamic payload handler in the rtpdec context

This allows calling other dynamic payload handler functions if
needed.

Signed-off-by: Martin Storsjö <martin@martin.st>
rtpdec: Support sending RTCP feedback packets

This sends NACK for missed packets and PLI (picture loss indication)
if a depacketizer indicates that it needs a new keyframe, according
to RFC 4585.

This is only enabled if the SDP indicated that feedback is supported
(via the AVPF or SAVPF profile names).

The feedback packets are throttled to a certain maximum interval
(currently 250 ms) to make sure the feedback packets don't eat up
too much bandwidth (which might be counterproductive). The RFC
specifies a more elaborate feedback packet scheduling.

The feedback packets are currently sent independently from normal
RTCP RR packets, which is not totally spec compliant, but works
fine in the environments I've tested it in. (RFC 5506 allows this,
but requires a SDP attribute for enabling it.)

Signed-off-by: Martin Storsjö <martin@martin.st>
rtpdec_vp8: Request a keyframe if RTP packets are lost

Signed-off-by: Martin Storsjö <martin@martin.st>
doc/APIchanges: fill in missing dates and hashes.
x86: lavr: add SSE2/AVX dither_int_to_float()
x86: lavr: add SSE2 quantize() for dithering
oggenc: add a page_duration option and deprecate the pagesize option

This uses page duration instead of byte size to determine when to buffer
the page. Also, it tries to avoid continued pages by buffering the current
page if there are already packets in the page and adding the next packet
would require it to be continued on a new page. This can improve seeking
performance.

The default page duration is 1 second, which is much saner than filling
all page segments by default.
xan: Convert to bytestream2

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Merge commit '92e354b655613b88c3c202a7e19e7037daed37eb'

* commit '92e354b655613b88c3c202a7e19e7037daed37eb':
  rtpdec_vp8: Set the timestamp when returning a deferred packet
  hlsenc: Make the start_number option set the right variable

Conflicts:
	libavformat/hlsenc.c

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

* commit '9c80ed836a511293f4cc3a858060969d32f2b1ce':
  rtpdec_vp8: Avoid a warning about a possibly unused variable
  rtpdec_vp8: Make sure the previous packet is returned

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

* commit '42805eda554a7fc44341282771531e7837ac72b7':
  rtpdec: Store the dynamic payload handler in the rtpdec context

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

* commit '86d9181cf41edc3382bf2481f95a2fb321058689':
  rtpdec: Support sending RTCP feedback packets

Conflicts:
	libavformat/version.h

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

* commit '1fb8f6a44f06e48386450fe0363aefc02583d24a':
  x86: lavr: add SSE2 quantize() for dithering
  doc/APIchanges: fill in missing dates and hashes.
  rtpdec_vp8: Request a keyframe if RTP packets are lost

Conflicts:
	doc/APIchanges

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge remote-tracking branch 'qatar/master'

* qatar/master:
  xan: Convert to bytestream2
  oggenc: add a page_duration option and deprecate the pagesize option
  x86: lavr: add SSE2/AVX dither_int_to_float()

Conflicts:
	libavcodec/xan.c
	libavformat/oggenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
frmdec: tag 5 is AV_PIX_FMT_BGRA with reversed alpha (0=solid/opaque ..  255=transparent)
swr: Implement Noise shaping dither

The following variants are implemented:
lipshitz noise shaping dither
shibata noise shaping dither
low shibata noise shaping dither
high shibata noise shaping dither
f-weighted noise shaping dither
modified-e-weighted noise shaping dither
improved-e-weighted noise shaping dither

Data tables taken from SOX

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