コード例 #1
0
ファイル: cli_mam_insert.php プロジェクト: jingyexu/ezcast
/**
 * insert original cam or slide in repository and if user submit, checks submitted file's extension
 * @param string $camslide
 * @param assoc_array $recording_metadata
 * @param string $recording_dir
 * @return bool
 */
function originals_mam_insert_media($album_name, $asset_name, $camslide, &$recording_metadata, $recording_dir)
{
    $media_name = 'original_' . $camslide;
    //initialize media metadata and media metadata
    $media_meta['author'] = $recording_metadata['author'];
    $media_meta['title'] = $recording_metadata['title'];
    $media_meta['description'] = $recording_metadata['description'];
    $media_meta['record_date'] = $recording_metadata['record_date'];
    $media_meta['width'] = "N/A";
    $media_meta['height'] = "N/A";
    $media_meta['duration'] = "N/A";
    $media_meta['video_codec'] = "N/A";
    $media_meta['audio_codec'] = "N/A";
    $media_meta['disposition'] = 'file';
    //check the name of submited file to keep the extension (pcastaction is quite sensitive to extension type)
    if (isset($recording_metadata['submitted_' . $camslide])) {
        $res = file_get_extension($recording_metadata['submitted_' . $camslide]);
        $ext = $res['ext'];
        if ($ext == '') {
            //if there wasn't an extension, then check mimetype
            $mimetype = $recording_metadata['submitted_mimetype'];
            list($type, $subtype) = explode('/', $mimetype);
            $mimetypes2ext = array('mpeg' => 'mpg', 'quicktime' => 'mov', 'x-msvideo' => 'avi');
            if (isset($mimetypes2ext[$subtype])) {
                $ext = $mimetypes2ext[$subtype];
            } else {
                $ext = 'mov';
            }
            //default extension
        }
        if (ctype_alnum($ext)) {
            //an extension should not have bad chars
            $mov_filepath = $recording_dir . '/' . $camslide . '.mov';
            $goodext_filepath = $recording_dir . '/' . $camslide . '.' . $ext;
            //rename cam.mov into cam.mpg if submit was an .mpg file
            rename($mov_filepath, $goodext_filepath);
            $media_file_path = $goodext_filepath;
            $media_meta['filename'] = "{$camslide}.{$ext}";
        } else {
            print "submitted filename has bad extension: {$ext}";
            myerror("submitted filename has bad extension: {$ext}");
        }
    } else {
        $media_file_path = system("ls {$recording_dir}/{$camslide}.*");
        $media_meta['filename'] = basename($media_file_path);
    }
    $filesize = round(filesize($media_file_path) / 1048576);
    $media_meta['file_size'] = $filesize;
    $res1 = ezmam_media_new($album_name, $asset_name, $media_name, $media_meta, $media_file_path);
    if (!$res1) {
        myerror("error adding original_{$camslide}:" . ezmam_last_error() . "\n");
    } else {
        print "{$camslide} media inserted in repository in {$album_name} {$asset_name} {$media_name}\n";
    }
    return $res1;
}
コード例 #2
0
/**
 * insert chapter_slide directory in a media
 * @param string $album
 * @param string $asset
 * @param string $chapter_slide_dir
 */
function insert_chapterslide_media($album, $asset, $chapter_slide_dir)
{
    $media = "chapter_slide";
    $media_meta['filename'] = "chapter_slide";
    $media_meta['disposition'] = "directory";
    //not a simple file, but a directory with a chapters.xml and chapter<n>.png
    print "insert media chapter_slide media {$album} {$asset} {$media}\n";
    $res = ezmam_media_new($album, $asset, $media, $media_meta, $chapter_slide_dir, true);
    //unlink($chapter_slide_dir);
}