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>
ffmpeg: add last_mux_dts_plus_duration

Fixes 1 frame error in the duration and derived values,
introduced by not using AVStream.pts in the previous commit

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
ffmpeg: set dts for subtitles

dts is not optional, its required for muxing,
previously it was set from AVStream.pts

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