ffmpeg: Use av_gettime_relative()

Whenever av_gettime() is used to measure relative period of time,
av_gettime_relative() is prefered as it guarantee monotonic time
on supported platforms.

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/diracdec: move mc buffer allocation to per frame

Fixes out of array accesses for non default buffers with large strides

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

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc: templatize intra_pred
hevc/intra_pred: optimize EXTEND_()*

Process 4 pixels at once.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc/intra_pred: drop unnecessary conditions in loops

Signed-off-by: Anton Khirnov <anton@khirnov.net>
hevc/intra_pred: simplify neighboring sample derivation
avconv: do not use poorly defined and undocumented AVStream.pts

Use OutputStream.last_mux_dts as an approximation of 'current' output
time instead.
mux: drop one of the hacks comprising compute_pkt_fields2()

All encoders should output proper timestamps now.
lavf: deprecate now unused AVStream.pts
avpacket: fix copying side data in av_packet_copy_props()

Side data count is incremented by by calling av_packet_new_side_data()
in the following loop, setting it explicitly results in the resulting
value being twice what it should be.

CC: libav-stable@libav.org
pthread_frame: simplify the code by using new AVPacket API

This also handles side data properly.
Add transformation matrix API.

Add AV_PKT_DATA_DISPLAYMATRIX and AV_FRAME_DATA_DISPLAYMATRIX as stream and
frame side data (respectively) to describe a display transformation matrix
for linear transformation operations on the decoded video.

Add functions to easily extract a rotation angle from a matrix and
conversely to setup a matrix for a given rotation angle.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
mov: store display matrix in a stream side data

Signed-off-by: Anton Khirnov <anton@khirnov.net>
Merge commit '04db5794cd97e4b33ec2f963ef7f967722a456eb'

* commit '04db5794cd97e4b33ec2f963ef7f967722a456eb':
  hevc: templatize pred_planar

Conflicts:
	libavcodec/hevcpred_template.c

See: 053fdacde76a38186dc9db658572e38686efe0c4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'a1c2b48018b09d2613f075ec0748c95bd520ac00'

* commit 'a1c2b48018b09d2613f075ec0748c95bd520ac00':
  hevc: templatize intra_pred

Conflicts:
	libavcodec/hevc.h

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

* commit '4c390b1ba98e6aec787aa0e7ea57ed7cb38283b7':
  hevc/intra_pred: optimize EXTEND_()*

Conflicts:
	libavcodec/hevcpred_template.c

See: 053fdacde76a38186dc9db658572e38686efe0c4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '25bb7eaf9eb14e6e00264bf584aa4d380d3bc29f'

* commit '25bb7eaf9eb14e6e00264bf584aa4d380d3bc29f':
  hevc/intra_pred: drop unnecessary conditions in loops

Conflicts:
	libavcodec/hevcpred_template.c

See: 053fdacde76a38186dc9db658572e38686efe0c4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'c9f8809ee4c576d5833865039bc1c85754448f67'

* commit 'c9f8809ee4c576d5833865039bc1c85754448f67':
  hevc/intra_pred: simplify neighboring sample derivation

Conflicts:
	libavcodec/hevcpred_template.c

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

* commit 'dc40d88625d7e402d58ac3f3df69fbf27aa31ea0':
  avconv: do not use poorly defined and undocumented AVStream.pts

Conflicts:
	ffmpeg.c

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