[FFmpeg-devel] [PATCHv3] mov: Evaluate the movie display matrix
Benoit Fouet
benoit.fouet at free.fr
Tue Oct 18 13:59:44 EEST 2016
Hi,
On 14/10/2016 00:50, Vittorio Giovara wrote:
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index a15c8d1..e8da77f 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
[...]
> @@ -3798,16 +3804,33 @@ static int mov_read_meta(MOVContext *c, AVIOContext *pb, MOVAtom atom)
> return 0;
> }
>
> +// return 0 when matrix is identity, 1 otherwise
> +#define IS_MATRIX_FULL(matrix) \
> + (matrix[0][0] != (1 << 16) || \
> + matrix[1][1] != (1 << 16) || \
> + matrix[2][2] != (1 << 30) || \
> + matrix[0][1] || matrix[0][2] || \
> + matrix[1][0] || matrix[1][2] || \
> + matrix[2][0] || matrix[2][1])
> +
should be "(matrix)" everywhere
Also, reversing the logic would allow preventing the evaluation of all
conditions when the matrix is not identity (i.e. making it
IS_MATRIX_IDENTITY)
> +// fixed point to double
> +#define CONV_FP(x, sh) ((double) (x)) / (1 << (sh))
> +
((double) (x) / (1 << (sh)))
> +// double to fixed point
> +#define CONV_DB(x, sh) ((int32_t) ((x) * (1 << (sh))))
> +
Cheers,
--
Ben
More information about the ffmpeg-devel
mailing list