X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fmedia%2FGIF.php;h=8ec72980369aa0729022a7ec594ea7d8e016754e;hb=58cb1f824ac75c3b58ba19d1e88c1b38f9dc1fab;hp=94aca615ae7fcce102121b4da8d254718fa97023;hpb=45dabe974013e4cfe0712abc05de38598b3a340b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/media/GIF.php b/includes/media/GIF.php index 94aca615ae..8ec7298036 100644 --- a/includes/media/GIF.php +++ b/includes/media/GIF.php @@ -65,11 +65,11 @@ class GIFHandler extends BitmapHandler { $meta = $image->getMetadata(); if ( !$meta ) { - return array(); + return []; } $meta = unserialize( $meta ); if ( !isset( $meta['metadata'] ) ) { - return array(); + return []; } unset( $meta['metadata']['_MW_GIF_VERSION'] ); @@ -170,7 +170,7 @@ class GIFHandler extends BitmapHandler { } /* Preserve original image info string, but strip the last char ')' so we can add even more */ - $info = array(); + $info = []; $info[] = $original; if ( $metadata['looped'] ) { @@ -187,4 +187,25 @@ class GIFHandler extends BitmapHandler { return $wgLang->commaList( $info ); } + + /** + * Return the duration of the GIF file. + * + * Shown in the &query=imageinfo&iiprop=size api query. + * + * @param $file File + * @return float The duration of the file. + */ + public function getLength( $file ) { + $serMeta = $file->getMetadata(); + MediaWiki\suppressWarnings(); + $metadata = unserialize( $serMeta ); + MediaWiki\restoreWarnings(); + + if ( !$metadata || !isset( $metadata['duration'] ) || !$metadata['duration'] ) { + return 0.0; + } else { + return (float)$metadata['duration']; + } + } }