avpacket: use AVBuffer to allow refcounting the packets.

This will allow us to avoid copying the packets in many cases.

This breaks ABI.
pthread: avoid copying input packets when possible.
lavc: move AVFrame.hwaccel_picture_private to Picture.

This field is private and should not be present in a public struct. It
is only used in DXVA with mpegvideo-based decoders currently.
Move AVFrame from lavc to lavu.

Add AVBuffer-based reference counting API to it.
AVFrame: add side data.
Merge commit '1afddbe59e96af75f1c07605afc95615569f388f'

* commit '1afddbe59e96af75f1c07605afc95615569f388f':
  avpacket: use AVBuffer to allow refcounting the packets.

Conflicts:
	libavcodec/avpacket.c
	libavcodec/utils.c
	libavdevice/v4l2.c
	libavformat/avidec.c
	libavformat/flacdec.c
	libavformat/id3v2.c
	libavformat/matroskaenc.c
	libavformat/mux.c
	libavformat/utils.c

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

* commit '1a5e9130162b8adc898e5f6aea82b6372d1e4e6c':
  pthread: avoid copying input packets when possible.

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

* commit 'ad0c9f2d5d81e22207c6ccecc426bf7306acc327':
  lavc: move AVFrame.hwaccel_picture_private to Picture.

Conflicts:
	libavcodec/avcodec.h
	libavcodec/mpegvideo.h

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

* commit '7ecc2d403ce5c7b6ea3b1f368dccefd105209c7e':
  Move AVFrame from lavc to lavu.

Conflicts:
	libavcodec/avcodec.h

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

* commit '77b2cd7b41d7ec8008b6fac753c04f77824c514c':
  AVFrame: add side data.

Conflicts:
	libavutil/frame.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
lavc/utils: make sure the iconv descriptor can be opened only once.

This prevents trying to do some subtitles conversion for each event when
the character encoding is not found. It now aborts early instead of
flooding stderr.
atomic: Add include guards to the implementation headers

This makes them pass standalone compilation tests. Previously,
they included atomic.h which included themselves again, leading to
double definitions.

Signed-off-by: Martin Storsjö <martin@martin.st>
libutvideo: Prioritize compatibility with new versions

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Add some fate dependencies to fix make fate with --disable-avdevice.
Add some fate dependencies to fix make fate with --disable-everything.
lavd/v4l2: correctly handle error conditions in mmap_read_frame()

In particular:

1) save errno before it (possibly) gets overwritten by other calls
2) do not forget to enqueue the buffer again in case of error

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lavd/v4l2: simplify code

struct buff_data contains a pointer to struct video_data, so passing the
file descriptor again is redundant.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
dsputil: make square put/avg_pixels functions local to h264qpel.

Put a copy of the 8bit functions only in dsputil, where they are used
for some other things (e.g. mpeg4qpel, mspel, cavsqpel). We could perhaps
also try to share specifically the 8bit functions from h264qpel between
it and the others, but that will be slightly more complicated. H264qpel
already had these functions, so we can simply remove the duplicates.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
x86/qpel: move fullpel and l2 functions to separate file.

This way, they can be shared between mpeg4qpel and h264qpel without
requiring either one to be compiled unconditionally.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
lavfi/showspectrum: fix outpicref initialization.

In 81f2549, output pixel format was changed from rgb24 to planar yuv,
but the initialization was left unchanged. As a result, the chroma
planes were left uninitalized. This was not noticed since the current
ff_get_video_buffer() seems to be initializing the buffer. This won't be
the case anymore after the Evil Plan.