Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c
- index e0b240a..adbb32c 100644
- --- a/modules/demux/mp4/libmp4.c
- +++ b/modules/demux/mp4/libmp4.c
- @@ -33,6 +33,7 @@
- #include "libmp4.h"
- #include "drms.h"
- +#include <math.h>
- /*****************************************************************************
- * Here are defined some macro to make life simpler but before using it
- @@ -633,16 +634,34 @@ static int MP4_ReadBox_tkhd( stream_t *p_stream, MP4_Box_t *p_box )
- for( unsigned i = 0; i < 9; i++ )
- {
- MP4_GET4BYTES( p_box->data.p_tkhd->i_matrix[i] );
- + if (i != 8)
- + p_box->data.p_tkhd->i_matrix[i] /= 65536;
- }
- MP4_GET4BYTES( p_box->data.p_tkhd->i_width );
- - MP4_GET4BYTES( p_box->data.p_tkhd->i_height );
- + MP4_GET4BYTES( p_box->data.p_tkhd->i_height );
- +
- + double rotation; //angle in degrees to be rotated clockwise
- + double scale[2]; // scale factor; sx = scale[0] , sy = scale[1]
- + double translate[2];// amount to translate; tx = translate[0] , ty = translate[1]
- +
- + int *matrix = p_box->data.p_tkhd->i_matrix;
- +
- + translate[0] = (double)matrix[6];
- + translate[1] = (double)matrix[7];
- +
- + scale[0] = sqrt(matrix[0] * matrix[0] +
- + matrix[3] * matrix[3]);
- + scale[1] = sqrt(matrix[1] * matrix[1] +
- + matrix[4] * matrix[4]);
- +
- + rotation = atan2(matrix[1] / scale[1], matrix[0] / scale[0]) * 180 / acos(-1);
- #ifdef MP4_VERBOSE
- MP4_ConvertDate2Str( s_creation_time, p_box->data.p_mvhd->i_creation_time );
- MP4_ConvertDate2Str( s_modification_time, p_box->data.p_mvhd->i_modification_time );
- MP4_ConvertDate2Str( s_duration, p_box->data.p_mvhd->i_duration );
- - msg_Dbg( p_stream, "read box: \"tkhd\" creation %s modification %s duration %s track ID %d layer %d volume %f width %f height %f. "
- + msg_Dbg( p_stream, "read box: \"tkhd\" creation %s modification %s duration %s track ID %d layer %d volume %f rotation %f scaleX %f scaleY %f width %f height %f. "
- "Matrix: %i %i %i %i %i %i %i %i %i",
- s_creation_time,
- s_modification_time,
- @@ -650,6 +669,9 @@ static int MP4_ReadBox_tkhd( stream_t *p_stream, MP4_Box_t *p_box )
- p_box->data.p_tkhd->i_track_ID,
- p_box->data.p_tkhd->i_layer,
- (float)p_box->data.p_tkhd->i_volume / 256 ,
- + rotation,
- + scale[0],
- + scale[1],
- (float)p_box->data.p_tkhd->i_width / 65536,
- (float)p_box->data.p_tkhd->i_height / 65536,
- p_box->data.p_tkhd->i_matrix[0],
Add Comment
Please, Sign In to add comment