Reedy has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/322609

Change subject: Convert to extension registration
......................................................................

Convert to extension registration

Bug: T87981
Change-Id: If1ee867343c3c773fba5e6194a0ed3719d442dd0
---
M TimedMediaHandler.hooks.php
M TimedMediaHandler.php
A extension.json
3 files changed, 334 insertions(+), 361 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/TimedMediaHandler 
refs/changes/09/322609/1

diff --git a/TimedMediaHandler.hooks.php b/TimedMediaHandler.hooks.php
index 712ac8f..732bf39 100644
--- a/TimedMediaHandler.hooks.php
+++ b/TimedMediaHandler.hooks.php
@@ -9,6 +9,106 @@
 
 class TimedMediaHandlerHooks {
 
+       public static function onRegistration() {
+               global $wgEnabledTranscodeSet, $wgEnabledAudioTranscodeSet;
+
+               if ( !count( $wgEnabledTranscodeSet ) ) {
+                       $wgEnabledTranscodeSet = [ // WebM VP8/Vorbis
+                               // primary free/open video format
+                               // supported by Chrome/Firefox/Opera but not 
Safari/IE/Edge
+
+                               // Very low-bitrate web streamable WebM video
+                               WebVideoTranscode::ENC_WEBM_160P,
+
+                               // Low-bitrate web streamable WebM video
+                               WebVideoTranscode::ENC_WEBM_240P,
+
+                               // Medium-bitrate web streamable WebM video
+                               WebVideoTranscode::ENC_WEBM_360P,
+
+                               // Moderate-bitrate web streamable WebM video
+                               WebVideoTranscode::ENC_WEBM_480P,
+
+                               // A high quality WebM stream
+                               WebVideoTranscode::ENC_WEBM_720P,
+
+                               // A full-HD high quality WebM stream
+                               WebVideoTranscode::ENC_WEBM_1080P,
+
+                               // A 4K full high quality WebM stream
+                               // WebVideoTranscode::ENC_WEBM_2160P,
+
+                               // Ogg Theora/Vorbis
+                               // Fallback for Safari/IE/Edge with ogv.js
+
+                               // Requires twice the bitrate for same quality 
as VP8,
+                               // and JS decoder can be slow, so shift to 
smaller sizes.
+
+                               // Low-bitrate Ogg stream
+                               WebVideoTranscode::ENC_OGV_160P,
+
+                               // Medium-bitrate Ogg stream
+                               WebVideoTranscode::ENC_OGV_240P,
+
+                               // Moderate-bitrate Ogg stream
+                               WebVideoTranscode::ENC_OGV_360P,
+
+                               // High-bitrate Ogg stream
+                               WebVideoTranscode::ENC_OGV_480P,
+
+                               // Variable-bitrate HD Ogg stream
+                               // for ogv.js on reasonably speedy machines
+                               WebVideoTranscode::ENC_OGV_720P,
+
+                               // Variable-bitrate HD Ogg stream
+                               // for ogv.js on reasonably speedy machines
+                               WebVideoTranscode::ENC_OGV_1080P,
+
+                               /*
+                                       // MP4 H.264/AAC
+                                       // Primary format for the 
Apple/Microsoft world
+                                       //
+                                       // Check patent licensing issues in 
your country before use!
+                                       // Similar to WebM in quality/bitrate
+
+                                       // Very low
+                                       WebVideoTranscode::ENC_H264_160P,
+
+                                       // Low
+                                       WebVideoTranscode::ENC_H264_240P,
+
+                                       // A least common denominator h.264 
stream; first gen iPhone, iPods, early android etc.
+                                       WebVideoTranscode::ENC_H264_320P,
+
+                                       // A mid range h.264 stream; mid range 
phones and low end tables
+                                       WebVideoTranscode::ENC_H264_480P,
+
+                                       // An high quality HD stream; higher 
end phones, tablets, smart tvs
+                                       WebVideoTranscode::ENC_H264_720P,
+
+                                       // A full-HD high quality stream; 
higher end phones, tablets, smart tvs
+                                       WebVideoTranscode::ENC_H264_1080P,
+
+                                       // A 4K high quality stream; higher end 
phones, tablets, smart tvs
+                                       WebVideoTranscode::ENC_H264_2160P,
+                               */ ];
+               }
+
+               if ( !count( $wgEnabledAudioTranscodeSet ) ) {
+                       $wgEnabledAudioTranscodeSet = [ 
WebVideoTranscode::ENC_OGG_VORBIS,
+
+                               // opus support must be available in avconv
+                               // WebVideoTranscode::ENC_OGG_OPUS,
+
+                               // avconv needs libmp3lame support
+                               // WebVideoTranscode::ENC_MP3,
+
+                               // avconv needs libvo_aacenc support
+                               // WebVideoTranscode::ENC_AAC,
+                       ];
+               }
+       }
+
        /**
         * Register TimedMediaHandler namespace IDs
         * These are configurable due to Commons history: T123823
diff --git a/TimedMediaHandler.php b/TimedMediaHandler.php
index 15e348a..1d1c5e3 100644
--- a/TimedMediaHandler.php
+++ b/TimedMediaHandler.php
@@ -1,364 +1,17 @@
 <?php
+if ( function_exists( 'wfLoadExtension' ) ) {
+       wfLoadExtension( 'TimedMediaHandler' );
+       // Keep i18n globals so mergeMessageFileList.php doesn't break
+       $wgMessagesDirs['TimedMediaHandler'] = __DIR__ . '/i18n';
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       // @codingStandardsIgnoreStart
-       echo "This is the TimedMediaHandler extension. Please see the README 
file for installation instructions.\n";
-       // @codingStandardsIgnoreEnd
-       exit( 1 );
-}
-
-// Set up the timed media handler dir:
-$timedMediaDir = __DIR__;
-// Include WebVideoTranscode
-// (prior to config so that its defined transcode keys can be used in 
configuration)
-$wgAutoloadClasses['WebVideoTranscode'] = 
"$timedMediaDir/WebVideoTranscode/WebVideoTranscode.php";
-
-// Add the rest transcode right:
-$wgAvailableRights[] = 'transcode-reset';
-$wgAvailableRights[] = 'transcode-status';
-
-// Controls weather to enable videojs beta feature
-// Requires the BetaFeature extension be installed.
-$wgTmhUseBetaFeatures = false;
-
-// Configure the webplayer. Allowed values: mwembed, videojs
-$wgTmhWebPlayer = 'mwembed';
-
-/*** MwEmbed module configuration: *********************************/
-
-// Show a warning to the user if they are not using an html5 browser with high 
quality ogg support
-$wgMwEmbedModuleConfig['EmbedPlayer.DirectFileLinkWarning'] = true;
-
-// Show the options menu:
-$wgMwEmbedModuleConfig['EmbedPlayer.EnableOptionsMenu'] = true;
-
-$wgMwEmbedModuleConfig['EmbedPlayer.DisableHTML5FlashFallback' ] = true;
-
-// The text interface should always be shown
-// ( even if there are no text tracks for that asset at render time )
-$wgMwEmbedModuleConfig['TimedText.ShowInterface'] = 'always';
-
-// Show the add text link:
-$wgMwEmbedModuleConfig['TimedText.ShowAddTextLink'] = true;
-
-/*** Timed Media Handler configuration ****************************/
-
-// Which users can restart failed or expired transcode jobs:
-$wgGroupPermissions['sysop']['transcode-reset'] = true;
-$wgGroupPermissions['autoconfirmed']['transcode-reset'] = true;
-
-// Which users can see Special:TimedMediaHandler
-$wgGroupPermissions['sysop']['transcode-status'] = true;
-
-// How long you have to wait between transcode resets for non-error transcodes
-$wgWaitTimeForTranscodeReset = 3600;
-
-// The minimum size for an embed video player ( smaller than this size uses a 
pop-up player )
-$wgMinimumVideoPlayerSize = 200;
-
-// Set the supported ogg codecs:
-$wgMediaVideoTypes = [ 'Theora', 'VP8' ];
-$wgMediaAudioTypes = [ 'Vorbis', 'Speex', 'FLAC', 'Opus' ];
-
-// Default skin for mwEmbed player
-$wgVideoPlayerSkinModule = 'mw.PlayerSkinKskin';
-
-// Support iframe for remote embedding
-$wgEnableIframeEmbed = true;
-
-// If transcoding is enabled for this wiki (if disabled, no transcode jobs are 
added and no
-// transcode status is displayed). Note if remote embedding an asset we will 
still check if
-// the remote repo has transcoding enabled and associated flavors for that 
media embed.
-$wgEnableTranscode = true;
-
-// If the job runner should run transcode commands in a background thread and 
monitor the
-// transcoding progress. This enables more fine grain control of the 
transcoding process, wraps
-// encoding commands in a lower priority 'nice' call, and kills long running 
transcodes that are
-// not making any progress. If set to false, the job runner will use the more 
compatible
-// php blocking shell exec command.
-$wgEnableNiceBackgroundTranscodeJobs = false;
-
-// The priority to be used with the nice transcode commands.
-$wgTranscodeBackgroundPriority = 19;
-
-// The total amout of time a transcoding shell command can take:
-$wgTranscodeBackgroundTimeLimit = 3600 * 8;
-// Maximum amount of virtual memory available to transcoding processes in KB
-// 2GB avconv, ffmpeg2theora mmap resources so virtual memory needs to be high 
enough
-$wgTranscodeBackgroundMemoryLimit = 2 * 1024 * 1024;
-// Maximum file size transcoding processes can create, in KB
-$wgTranscodeBackgroundSizeLimit = 3 * 1024 * 1024; // 3GB
-
-// Number of threads to use in avconv for transcoding
-$wgFFmpegThreads = 1;
-
-// The location of ffmpeg2theora (transcoding)
-// Set to false to use avconv/ffmpeg to produce Ogg Theora transcodes instead;
-// beware this will disable Ogg skeleton metadata generation.
-$wgFFmpeg2theoraLocation = '/usr/bin/ffmpeg2theora';
-
-// Location of oggThumb binary ( used instead of ffmpeg )
-$wgOggThumbLocation = '/usr/bin/oggThumb';
-
-// Location of the avconv/ffmpeg binary (used to encode WebM and for 
thumbnails)
-$wgFFmpegLocation = '/usr/bin/avconv';
-
-// The NS for TimedText (registered on MediaWiki.org)
-// http://www.mediawiki.org/wiki/Extension_namespace_registration
-// Note commons pre-dates TimedMediaHandler and should set $wgTimedTextNS = 
102 in LocalSettings.php
-$wgTimedTextNS = 710;
-
-// Set TimedText namespace for ForeignDBViaLBRepo on a per wikiID basis
-// $wgTimedTextForeignNamespaces = array( 'commonswiki' => 102 );
-$wgTimedTextForeignNamespaces = [];
-
-// Set to false to disable local TimedText,
-// you still get subtitles for videos from foreign repos
-// to disable all TimedText, set
-// $wgMwEmbedModuleConfig['TimedText.ShowInterface'] = 'off';
-$wgEnableLocalTimedText = true;
-
-/**
- * Default enabled transcodes
- *
- * -If set to empty array, no derivatives will be created
- * -Derivative keys encode settings are defined in WebVideoTranscode.php
- *
- * -These transcodes are *in addition to* the source file.
- * -Only derivatives with smaller width than the source asset size will be 
created
- * -Regardless of source size at least one WebM and Ogg source
- *  will be created from the $wgEnabledTranscodeSet
- * -Derivative jobs are added to the MediaWiki JobQueue the first time the 
asset is displayed
- * -Derivative should be listed min to max
- */
-$wgEnabledTranscodeSet = [
-
-       // WebM VP8/Vorbis
-       // primary free/open video format
-       // supported by Chrome/Firefox/Opera but not Safari/IE/Edge
-
-       // Very low-bitrate web streamable WebM video
-       WebVideoTranscode::ENC_WEBM_160P,
-
-       // Low-bitrate web streamable WebM video
-       WebVideoTranscode::ENC_WEBM_240P,
-
-       // Medium-bitrate web streamable WebM video
-       WebVideoTranscode::ENC_WEBM_360P,
-
-       // Moderate-bitrate web streamable WebM video
-       WebVideoTranscode::ENC_WEBM_480P,
-
-       // A high quality WebM stream
-       WebVideoTranscode::ENC_WEBM_720P,
-
-       // A full-HD high quality WebM stream
-       WebVideoTranscode::ENC_WEBM_1080P,
-
-       // A 4K full high quality WebM stream
-       // WebVideoTranscode::ENC_WEBM_2160P,
-
-       // Ogg Theora/Vorbis
-       // Fallback for Safari/IE/Edge with ogv.js
-
-       // Requires twice the bitrate for same quality as VP8,
-       // and JS decoder can be slow, so shift to smaller sizes.
-
-       // Low-bitrate Ogg stream
-       WebVideoTranscode::ENC_OGV_160P,
-
-       // Medium-bitrate Ogg stream
-       WebVideoTranscode::ENC_OGV_240P,
-
-       // Moderate-bitrate Ogg stream
-       WebVideoTranscode::ENC_OGV_360P,
-
-       // High-bitrate Ogg stream
-       WebVideoTranscode::ENC_OGV_480P,
-
-       // Variable-bitrate HD Ogg stream
-       // for ogv.js on reasonably speedy machines
-       WebVideoTranscode::ENC_OGV_720P,
-
-       // Variable-bitrate HD Ogg stream
-       // for ogv.js on reasonably speedy machines
-       WebVideoTranscode::ENC_OGV_1080P,
-
-/*
-       // MP4 H.264/AAC
-       // Primary format for the Apple/Microsoft world
-       //
-       // Check patent licensing issues in your country before use!
-       // Similar to WebM in quality/bitrate
-
-       // Very low
-       WebVideoTranscode::ENC_H264_160P,
-
-       // Low
-       WebVideoTranscode::ENC_H264_240P,
-
-       // A least common denominator h.264 stream; first gen iPhone, iPods, 
early android etc.
-       WebVideoTranscode::ENC_H264_320P,
-
-       // A mid range h.264 stream; mid range phones and low end tables
-       WebVideoTranscode::ENC_H264_480P,
-
-       // An high quality HD stream; higher end phones, tablets, smart tvs
-       WebVideoTranscode::ENC_H264_720P,
-
-       // A full-HD high quality stream; higher end phones, tablets, smart tvs
-       WebVideoTranscode::ENC_H264_1080P,
-
-       // A 4K high quality stream; higher end phones, tablets, smart tvs
-       WebVideoTranscode::ENC_H264_2160P,
-*/
-];
-
-$wgEnabledAudioTranscodeSet = [
-       WebVideoTranscode::ENC_OGG_VORBIS,
-
-       // opus support must be available in avconv
-       // WebVideoTranscode::ENC_OGG_OPUS,
-
-       // avconv needs libmp3lame support
-       // WebVideoTranscode::ENC_MP3,
-
-       // avconv needs libvo_aacenc support
-       // WebVideoTranscode::ENC_AAC,
-];
-
-// If mp4 source assets can be ingested:
-$wgTmhEnableMp4Uploads = false;
-
-// Two-pass encoding for .ogv Theora transcodes is flaky as of October 2015.
-// Enable this only if testing with latest theora libraries!
-// See tracking bug: https://phabricator.wikimedia.org/T115883
-$wgTmhTheoraTwoPassEncoding = false;
-
-/******************* CONFIGURATION ENDS HERE **********************/
-
-// List of extensions handled by Timed Media Handler since its referenced in a 
few places.
-// you should not modify this variable
-
-$wgTmhFileExtensions = [ 'ogg', 'ogv', 'oga', 'flac', 'opus', 'wav', 'webm', 
'mp4' ];
-
-$wgFileExtensions = array_merge( $wgFileExtensions, $wgTmhFileExtensions );
-
-// Timed Media Handler AutoLoad Classes:
-$wgAutoloadClasses['TimedMediaHandler'] = 
"$timedMediaDir/TimedMediaHandler_body.php";
-$wgAutoloadClasses['TimedMediaHandlerHooks'] = 
"$timedMediaDir/TimedMediaHandler.hooks.php";
-$wgAutoloadClasses['TimedMediaTransformOutput'] = 
"$timedMediaDir/TimedMediaTransformOutput.php";
-$wgAutoloadClasses['TimedMediaIframeOutput'] = 
"$timedMediaDir/TimedMediaIframeOutput.php";
-$wgAutoloadClasses['TimedMediaThumbnail'] = 
"$timedMediaDir/TimedMediaThumbnail.php";
-// Transcode Page
-$wgAutoloadClasses['TranscodeStatusTable'] = 
"$timedMediaDir/TranscodeStatusTable.php";
-
-// Testing:
-$wgAutoloadClasses['ApiTestCaseVideoUpload'] =
-       "$timedMediaDir/tests/phpunit/ApiTestCaseVideoUpload.php";
-$wgParserTestFiles[] = "$timedMediaDir/tests/parserTests.txt";
-
-// Ogg Handler
-$wgAutoloadClasses['OggHandlerTMH'] = 
"$timedMediaDir/handlers/OggHandler/OggHandler.php";
-$wgAutoloadClasses['OggException'] = 
"$timedMediaDir/handlers/OggHandler/OggException.php";
-$wgAutoloadClasses['File_Ogg'] = 
"$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg.php";
-$wgAutoloadClasses['File_Ogg_Bitstream'] =
-       "$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg/Bitstream.php";
-$wgAutoloadClasses['File_Ogg_Flac'] =
-       "$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg/Flac.php";
-$wgAutoloadClasses['File_Ogg_Media'] =
-       "$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg/Media.php";
-$wgAutoloadClasses['File_Ogg_Opus'] =
-       "$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg/Opus.php";
-$wgAutoloadClasses['File_Ogg_Speex'] =
-       "$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg/Speex.php";
-$wgAutoloadClasses['File_Ogg_Theora'] =
-       "$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg/Theora.php";
-$wgAutoloadClasses['File_Ogg_Vorbis'] =
-       "$timedMediaDir/handlers/OggHandler/File_Ogg/File/Ogg/Vorbis.php";
-
-// ID3 Metadata Handler
-$wgAutoloadClasses['ID3Handler'] = 
"$timedMediaDir/handlers/ID3Handler/ID3Handler.php";
-// Mp4 / h264 Handler
-$wgAutoloadClasses['Mp4Handler'] = 
"$timedMediaDir/handlers/Mp4Handler/Mp4Handler.php";
-// WebM Handler
-$wgAutoloadClasses['WebMHandler'] = 
"$timedMediaDir/handlers/WebMHandler/WebMHandler.php";
-// FLAC Handler
-$wgAutoloadClasses['FLACHandler'] = 
"$timedMediaDir/handlers/FLACHandler/FLACHandler.php";
-// WAV Handler
-$wgAutoloadClasses['WAVHandler'] = 
"$timedMediaDir/handlers/WAVHandler/WAVHandler.php";
-
-// Text handler
-$wgAutoloadClasses['TextHandler'] = 
"$timedMediaDir/handlers/TextHandler/TextHandler.php";
-$wgAutoloadClasses['TimedTextPage'] = "$timedMediaDir/TimedTextPage.php";
-
-// Transcode support
-$wgAutoloadClasses['WebVideoTranscodeJob'] =
-       "$timedMediaDir/WebVideoTranscode/WebVideoTranscodeJob.php";
-
-// API modules:
-$wgAutoloadClasses['ApiQueryVideoInfo'] = 
"$timedMediaDir/ApiQueryVideoInfo.php";
-$wgAPIPropModules['videoinfo'] = 'ApiQueryVideoInfo';
-
-$wgAutoloadClasses['ApiTranscodeStatus'] = 
"$timedMediaDir/ApiTranscodeStatus.php";
-$wgAPIPropModules['transcodestatus'] = 'ApiTranscodeStatus';
-
-$wgAutoloadClasses['ApiTranscodeReset'] = 
"$timedMediaDir/ApiTranscodeReset.php";
-$wgAPIModules['transcodereset'] = 'ApiTranscodeReset';
-
-// Localization
-$wgMessagesDirs['TimedMediaHandler'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['TimedMediaHandlerMagic'] =
-       "$timedMediaDir/TimedMediaHandler.i18n.magic.php";
-$wgExtensionMessagesFiles['TimedMediaHandlerAliases'] =
-       "$timedMediaDir/TimedMediaHandler.i18n.alias.php";
-// Inlcude module locationlizations
-$wgMessagesDirs['MwEmbed.EmbedPlayer'] = __DIR__ . 
'/MwEmbedModules/EmbedPlayer/i18n';
-$wgMessagesDirs['MwEmbed.TimedText'] = __DIR__ . 
'/MwEmbedModules/TimedText/i18n';
-
-// Special Pages
-$wgAutoloadClasses['SpecialTimedMediaHandler'] = 
"$timedMediaDir/SpecialTimedMediaHandler.php";
-$wgAutoloadClasses['SpecialOrphanedTimedText'] = 
"$timedMediaDir/SpecialOrphanedTimedText.php";
-
-$wgHooks['GetBetaFeaturePreferences'][] = 
'TimedMediaHandlerHooks::onGetBetaFeaturePreferences';
-
-$wgHooks['PageRenderingHash'][] = 
'TimedMediaHandlerHooks::changePageRenderingHash';
-
-// This way if you set a variable like $wgTimedTextNS in LocalSettings.php
-// after you include TimedMediaHandler we can still read the variable values
-// See also T123695 and T123823
-$wgHooks['CanonicalNamespaces'][] = 
'TimedMediaHandlerHooks::addCanonicalNamespaces';
-
-// We register some modules dynamically, since they depend on the configuration
-$wgHooks['ResourceLoaderRegisterModules'][] =
-       'TimedMediaHandlerHooks::resourceLoaderRegisterModules';
-
-// Register remaining Timed Media Handler hooks right after initial setup
-$wgExtensionFunctions[] = 'TimedMediaHandlerHooks::register';
-
-# add Special pages
-$wgSpecialPages['OrphanedTimedText'] = 'SpecialOrphanedTimedText';
-$wgSpecialPages['TimedMediaHandler'] = 'SpecialTimedMediaHandler';
-
-// Extension Credits
-$wgExtensionCredits['media'][] = [
-       'path' => __FILE__,
-       'name' => 'TimedMediaHandler',
-       'namemsg' => 'timedmediahandler-extensionname',
-       'author' => [
-               'Michael Dale',
-               'Tim Starling',
-               'James Heinrich',
-               'Jan Gerber',
-               'Brion Vibber',
-               'Derk-Jan Hartman'
-       ],
-       'url' => 'https://www.mediawiki.org/wiki/Extension:TimedMediaHandler',
-       'descriptionmsg' => 'timedmediahandler-desc',
-       'version' => '0.5.0',
-       'license-name' => 'GPL-2.0+',
-];
-
-if ( is_readable( __DIR__ . '/vendor/autoload.php' ) ) {
-       require_once __DIR__ . '/vendor/autoload.php';
+       $wgExtensionMessagesFiles['TimedMediaHandlerMagic'] = __DIR__ . 
'/TimedMediaHandler.i18n.magic.php';
+       $wgExtensionMessagesFiles['TimedMediaHandlerAliases'] = __DIR__ . 
'/TimedMediaHandler.i18n.alias.php';
+       /*wfWarn(
+               'Deprecated PHP entry point used for TimedMediaHandler 
extension. ' .
+               'Please use wfLoadExtension instead, ' .
+               'see https://www.mediawiki.org/wiki/Extension_registration for 
more details.'
+       );*/
+       return;
+} else {
+       die( 'This version of the TimedMediaHandler extension requires 
MediaWiki 1.28+' );
 }
diff --git a/extension.json b/extension.json
new file mode 100644
index 0000000..a465ca7
--- /dev/null
+++ b/extension.json
@@ -0,0 +1,220 @@
+{
+       "name": "TimedMediaHandler",
+       "namemsg": "timedmediahandler-extensionname",
+       "version": "0.5.0",
+       "author": [
+               "Michael Dale",
+               "Tim Starling",
+               "James Heinrich",
+               "Jan Gerber",
+               "Brion Vibber",
+               "Derk-Jan Hartman"
+       ],
+       "url": "https://www.mediawiki.org/wiki/Extension:TimedMediaHandler";,
+       "descriptionmsg": "timedmediahandler-desc",
+       "license-name": "GPL-2.0+",
+       "type": "media",
+       "callback": "TimedMediaHandlerHooks::onRegistration",
+       "APIModules": {
+               "transcodereset": "ApiTranscodeReset"
+       },
+       "APIPropModules": {
+               "videoinfo": "ApiQueryVideoInfo",
+               "transcodestatus": "ApiTranscodeStatus"
+       },
+       "AvailableRights": [
+               "transcode-reset",
+               "transcode-status"
+       ],
+       "ExtensionFunctions": [
+               "TimedMediaHandlerHooks::register"
+       ],
+       "FileExtensions": [
+               "ogg",
+               "ogv",
+               "oga",
+               "flac",
+               "opus",
+               "wav",
+               "webm",
+               "mp4"
+       ],
+       "GroupPermissions": {
+               "sysop": {
+                       "transcode-reset": true,
+                       "transcode-status": true
+               },
+               "autoconfirmed": {
+                       "transcode-reset": true
+               }
+       },
+       "SpecialPages": {
+               "OrphanedTimedText": "SpecialOrphanedTimedText",
+               "TimedMediaHandler": "SpecialTimedMediaHandler"
+       },
+       "MessagesDirs": {
+               "TimedMediaHandler": [
+                       "i18n"
+               ],
+               "MwEmbed.EmbedPlayer": [
+                       "MwEmbedModules/EmbedPlayer/i18n"
+               ],
+               "MwEmbed.TimedText": [
+                       "MwEmbedModules/TimedText/i18n"
+               ]
+       },
+       "ExtensionMessagesFiles": {
+               "TimedMediaHandlerMagic": "TimedMediaHandler.i18n.magic.php",
+               "TimedMediaHandlerAliases": "TimedMediaHandler.i18n.alias.php"
+       },
+       "AutoloadClasses": {
+               "WebVideoTranscode": "WebVideoTranscode/WebVideoTranscode.php",
+               "TimedMediaHandler": "TimedMediaHandler_body.php",
+               "TimedMediaHandlerHooks": "TimedMediaHandler.hooks.php",
+               "TimedMediaTransformOutput": "TimedMediaTransformOutput.php",
+               "TimedMediaIframeOutput": "TimedMediaIframeOutput.php",
+               "TimedMediaThumbnail": "TimedMediaThumbnail.php",
+               "TranscodeStatusTable": "TranscodeStatusTable.php",
+               "ApiTestCaseVideoUpload": 
"tests/phpunit/ApiTestCaseVideoUpload.php",
+               "OggHandlerTMH": "handlers/OggHandler/OggHandler.php",
+               "OggException": "handlers/OggHandler/OggException.php",
+               "File_Ogg": "handlers/OggHandler/File_Ogg/File/Ogg.php",
+               "File_Ogg_Bitstream": 
"handlers/OggHandler/File_Ogg/File/Ogg/Bitstream.php",
+               "File_Ogg_Flac": 
"handlers/OggHandler/File_Ogg/File/Ogg/Flac.php",
+               "File_Ogg_Media": 
"handlers/OggHandler/File_Ogg/File/Ogg/Media.php",
+               "File_Ogg_Opus": 
"handlers/OggHandler/File_Ogg/File/Ogg/Opus.php",
+               "File_Ogg_Speex": 
"handlers/OggHandler/File_Ogg/File/Ogg/Speex.php",
+               "File_Ogg_Theora": 
"handlers/OggHandler/File_Ogg/File/Ogg/Theora.php",
+               "File_Ogg_Vorbis": 
"handlers/OggHandler/File_Ogg/File/Ogg/Vorbis.php",
+               "ID3Handler": "handlers/ID3Handler/ID3Handler.php",
+               "Mp4Handler": "handlers/Mp4Handler/Mp4Handler.php",
+               "WebMHandler": "handlers/WebMHandler/WebMHandler.php",
+               "FLACHandler": "handlers/FLACHandler/FLACHandler.php",
+               "WAVHandler": "handlers/WAVHandler/WAVHandler.php",
+               "TextHandler": "handlers/TextHandler/TextHandler.php",
+               "TimedTextPage": "TimedTextPage.php",
+               "WebVideoTranscodeJob": 
"WebVideoTranscode/WebVideoTranscodeJob.php",
+               "ApiQueryVideoInfo": "ApiQueryVideoInfo.php",
+               "ApiTranscodeStatus": "ApiTranscodeStatus.php",
+               "ApiTranscodeReset": "ApiTranscodeReset.php",
+               "SpecialTimedMediaHandler": "SpecialTimedMediaHandler.php",
+               "SpecialOrphanedTimedText": "SpecialOrphanedTimedText.php"
+       },
+       "Hooks": {
+               "GetBetaFeaturePreferences": 
"TimedMediaHandlerHooks::onGetBetaFeaturePreferences",
+               "PageRenderingHash": 
"TimedMediaHandlerHooks::changePageRenderingHash",
+               "CanonicalNamespaces": 
"TimedMediaHandlerHooks::addCanonicalNamespaces",
+               "ResourceLoaderRegisterModules": 
"TimedMediaHandlerHooks::resourceLoaderRegisterModules"
+       },
+       "ParserTestFiles": [
+               "tests/parserTests.txt"
+       ],
+       "config": {
+               "TmhUseBetaFeatures": {
+                       "value": false
+               },
+               "TmhWebPlayer": {
+                       "value": "mwembed"
+               },
+               "MwEmbedModuleConfig": {
+                       "value": {
+                               "EmbedPlayer.DirectFileLinkWarning": true,
+                               "EmbedPlayer.EnableOptionsMenu": true,
+                               "EmbedPlayer.DisableHTML5FlashFallback": true,
+                               "TimedText.ShowInterface": "always",
+                               "TimedText.ShowAddTextLink": true
+                       }
+               },
+               "WaitTimeForTranscodeReset": {
+                       "value": 3600
+               },
+               "MinimumVideoPlayerSize": {
+                       "value": 200
+               },
+               "MediaVideoTypes": {
+                       "value": [
+                               "Theora",
+                               "VP8"
+                       ]
+               },
+               "MediaAudioTypes": {
+                       "value": [
+                               "Vorbis",
+                               "Speex",
+                               "FLAC",
+                               "Opus"
+                       ]
+               },
+               "VideoPlayerSkinModule": {
+                       "value": "mw.PlayerSkinKskin"
+               },
+               "EnableIframeEmbed": {
+                       "value": true
+               },
+               "EnableTranscode": {
+                       "value": true
+               },
+               "EnableNiceBackgroundTranscodeJobs": {
+                       "value": false
+               },
+               "TranscodeBackgroundPriority": {
+                       "value": 19
+               },
+               "TranscodeBackgroundTimeLimit": {
+                       "value": 28800
+               },
+               "TranscodeBackgroundMemoryLimit": {
+                       "value": 2097152
+               },
+               "TranscodeBackgroundSizeLimit": {
+                       "value": 3145728
+               },
+               "FFmpegThreads": {
+                       "value": 1
+               },
+               "FFmpeg2theoraLocation": {
+                       "value": "/usr/bin/ffmpeg2theora"
+               },
+               "OggThumbLocation": {
+                       "value": "/usr/bin/oggThumb"
+               },
+               "FFmpegLocation": {
+                       "value": "/usr/bin/avconv"
+               },
+               "TimedTextNS": {
+                       "value": 710
+               },
+               "TimedTextForeignNamespaces": {
+                       "value": []
+               },
+               "EnableLocalTimedText": {
+                       "value": true
+               },
+               "EnabledTranscodeSet": {
+                       "value": []
+               },
+               "EnabledAudioTranscodeSet": {
+                       "value": []
+               },
+               "TmhEnableMp4Uploads": {
+                       "value": false
+               },
+               "TmhTheoraTwoPassEncoding": {
+                       "value": false
+               },
+               "TmhFileExtensions": {
+                       "value": [
+                               "ogg",
+                               "ogv",
+                               "oga",
+                               "flac",
+                               "opus",
+                               "wav",
+                               "webm",
+                               "mp4"
+                       ]
+               }
+       },
+       "load_composer_autoloader": true,
+       "manifest_version": 2
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/322609
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If1ee867343c3c773fba5e6194a0ed3719d442dd0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/TimedMediaHandler
Gerrit-Branch: master
Gerrit-Owner: Reedy <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to