diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2014-05-15 22:06:49 -0400 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2014-05-19 13:13:10 +0200 |
commit | bddd8cbf68551f6405b2bf77cc3e212af9fbe834 (patch) | |
tree | e4055879d665ee6dfd982d6ca2a3b203d92a5c9c /libavcodec/utils.c | |
parent | 9929b3564c0dca42ed7baa6798ef15b6f0013c83 (diff) | |
download | ffmpeg-bddd8cbf68551f6405b2bf77cc3e212af9fbe834.tar.gz |
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>
Diffstat (limited to 'libavcodec/utils.c')
-rw-r--r-- | libavcodec/utils.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 71cbc57b44..cb456d5ae0 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -598,6 +598,15 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame) memcpy(frame_sd->data, packet_sd, size); } + /* copy the displaymatrix to the output frame */ + packet_sd = av_packet_get_side_data(pkt, AV_PKT_DATA_DISPLAYMATRIX, &size); + if (packet_sd) { + frame_sd = av_frame_new_side_data(frame, AV_FRAME_DATA_DISPLAYMATRIX, size); + if (!frame_sd) + return AVERROR(ENOMEM); + + memcpy(frame_sd->data, packet_sd, size); + } return 0; } |