X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcontrol%2Fmediacontrol_util.c;h=09e5b7423f2879f861e48373aaa46b4ae10c0bd7;hb=76ca900120e98d094da957bc2eba1c96aeaec047;hp=b651bc77bd64d4a89ca097701af52acaee48b9cb;hpb=8ee62bb6296e3c1c634eddcab64a5b7391d9796e;p=vlc diff --git a/src/control/mediacontrol_util.c b/src/control/mediacontrol_util.c index b651bc77bd..09e5b7423f 100644 --- a/src/control/mediacontrol_util.c +++ b/src/control/mediacontrol_util.c @@ -25,12 +25,12 @@ # include "config.h" #endif +#include "mediacontrol_internal.h" #include -#include +#include #include #include -#include "mediacontrol_internal.h" #include /* malloc(), free() */ #include @@ -52,7 +52,7 @@ libvlc_time_t private_mediacontrol_unit_convert( libvlc_media_player_t *p_media_player, mediacontrol_PositionKey from, mediacontrol_PositionKey to, - vlc_int64_t value ) + int64_t value ) { if( to == from ) return value; @@ -100,12 +100,12 @@ libvlc_time_t private_mediacontrol_unit_convert( libvlc_media_player_t *p_media_ { /* FIXME */ /* vlc < 0.8 API */ -/* return ( vlc_int64_t )( value * 50 * p_input->stream.i_mux_rate / f_fps ); */ +/* return ( int64_t )( value * 50 * p_input->stream.i_mux_rate / f_fps ); */ return 0; } if( to == mediacontrol_MediaTime ) - return( vlc_int64_t )( value * 1000.0 / ( double )f_fps ); + return( int64_t )( value * 1000.0 / ( double )f_fps ); /* Cannot happen */ break; @@ -142,11 +142,11 @@ private_mediacontrol_position2microsecond( libvlc_media_player_t * p_media_playe l_time = libvlc_media_player_get_time( p_media_player, &ex ); /* Ignore exception, we will assume a 0 time value */ - l_pos = 1000 * private_mediacontrol_unit_convert( p_media_player, - pos->key, - mediacontrol_MediaTime, - pos->value ); - return l_time + l_pos; + l_pos = private_mediacontrol_unit_convert( p_media_player, + pos->key, + mediacontrol_MediaTime, + pos->value ); + return 1000 * ( l_time + l_pos ); break; } case mediacontrol_ModuloPosition: @@ -164,32 +164,18 @@ private_mediacontrol_position2microsecond( libvlc_media_player_t * p_media_playe l_time = libvlc_media_player_get_time( p_media_player, &ex ); /* Ignore exception, we will assume a 0 time value */ - l_pos = ( 1000 * private_mediacontrol_unit_convert( p_media_player, - pos->key, - mediacontrol_MediaTime, - pos->value ) ); + l_pos = private_mediacontrol_unit_convert( p_media_player, + pos->key, + mediacontrol_MediaTime, + pos->value ); - return ( l_time + l_pos ) % l_length; + return 1000 * ( ( l_time + l_pos ) % l_length ); break; } } return 0; } -mediacontrol_RGBPicture* -private_mediacontrol_RGBPicture__alloc( int datasize ) -{ - mediacontrol_RGBPicture* pic; - - pic = ( mediacontrol_RGBPicture * )malloc( sizeof( mediacontrol_RGBPicture ) ); - if( ! pic ) - return NULL; - - pic->size = datasize; - pic->data = ( char* )malloc( datasize * sizeof( char ) ); - return pic; -} - void mediacontrol_RGBPicture__free( mediacontrol_RGBPicture* pic ) { @@ -245,13 +231,25 @@ mediacontrol_exception_free( mediacontrol_Exception *exception ) free( exception ); } +/** + * Allocates and initializes a mediacontrol_RGBPicture object. + * + * @param i_width: picture width + * @param i_height: picture width + * @param i_chroma: picture chroma + * @param l_date: picture timestamp + * @param p_data: pointer to the data. The data will be directly used, not copied. + * @param i_datasize: data size in bytes + * + * @return the new object, or NULL on error. + */ mediacontrol_RGBPicture* -private_mediacontrol_createRGBPicture( int i_width, int i_height, long i_chroma, vlc_int64_t l_date, - char* p_data, int i_datasize ) +private_mediacontrol_createRGBPicture( int i_width, int i_height, long i_chroma, int64_t l_date, + char* p_data, int i_datasize ) { mediacontrol_RGBPicture *retval; - retval = private_mediacontrol_RGBPicture__alloc( i_datasize ); + retval = ( mediacontrol_RGBPicture * )malloc( sizeof( mediacontrol_RGBPicture ) ); if( retval ) { retval->width = i_width; @@ -259,7 +257,7 @@ private_mediacontrol_createRGBPicture( int i_width, int i_height, long i_chroma, retval->type = i_chroma; retval->date = l_date; retval->size = i_datasize; - memcpy( retval->data, p_data, i_datasize ); + retval->data = p_data; } return retval; }