$stream->duration = $duration;
$mvTitle = new MV_Title('Stream:' . $stream_name);
if (!$mvTitle->doesStreamExist()) {
    print $stream_name . " does not exist ... creating\n";
    // print 'do stream desc'."\n";
    if (!isset($MVStreams)) {
        $MVStreams = array();
    }
    // init the stream (legacy from old stream insert system)
    $MVStreams[$stream->name] = new MV_Stream($stream);
    do_add_stream($mvTitle, $stream);
}
$stream_id = $mvTitle->getStreamId();
print 'got stream id: ' . $stream_id . "\n";
//check for & update stream files:
do_stream_file_check($stream);
$filedir = '/video/metavid/mvprime_stream_images/' . MV_StreamImage::getRelativeImagePath($stream_id);
if (!is_dir($filedir)) {
    shell_exec("mkdir {$filedir}");
    shell_exec("chmod -R 777 {$filedir}");
}
echo "working on: {$filename} \n";
$ocroutput = "";
//@@TODO we should do sequential output and parse the OCR file if it already exists.
//make sure we can write to the ocr file:
$ocrfileloc = "{$workingdir}/{$stream_name}.ocr";
$fh = @fopen($ocrfileloc, 'a') or die("\nError: can't write to ocr file\n");
fclose($fh);
//gets duration from ffmpeg
$dbw = $dbr = wfGetDB(DB_MASTER);
for ($i = 0; $i < $duration; $i += $interval) {
     do_stream_insert('all_sync_past_date');
     break;
 case 'people':
     $force = isset($options['force']) ? true : false;
     $person_name = isset($args[1]) ? $args[1] : '';
     do_people_insert('', $person_name, $force);
     break;
 case 'bill':
     $bill_key = isset($args[1]) ? $args[1] : '';
     do_bill_insert($bill_key);
     break;
 case 'interest':
     do_people_insert($lookUpInterest = true);
     break;
 case 'file_check':
     do_stream_file_check();
     break;
 case 'do_stream_date_check':
     do_stream_date_check();
     break;
 case 'do_remove_orphaned_streams':
     do_remove_orphaned_streams();
     break;
 case 'update_templates':
     $force = isset($options['force']) ? true : false;
     include_once 'metavid_gov_templates.php';
     upTemplates($force);
     break;
     // by default treat the argument as a stream name:
 // by default treat the argument as a stream name:
 case 'mvd_consistancy_check':
function do_stream_insert($mode, $stream_name = '')
{
    global $mvgIP, $MVStreams, $options, $args, $wgDBname;
    $dbr = wfGetDB(DB_SLAVE);
    if ($mode == 'all') {
        $sql = "SELECT * FROM `metavid`.`streams` WHERE `sync_status`='in_sync'";
    } elseif ($mode == 'files') {
        $sql = "SELECT * FROM `metavid`.`streams` WHERE `trascoded` != 'none'";
    } elseif ($mode == 'all_in_wiki') {
        $sql = "SELECT `metavid`.`streams`.* FROM `{$wgDBname}`.`mv_streams` LEFT JOIN `metavid`.`streams` ON (`{$wgDBname}`.`mv_streams`.`name` = `metavid`.`streams`.`name`) ";
    } elseif ($mode == 'all_sync_past_date') {
        print "doing all after: " . $args[$options['date']] . "\n";
        list($month, $day, $year) = explode('/', $args[$options['date']]);
        $date_time = mktime(0, 0, 0, $month, $day, $year);
        $sql = "SELECT * FROM `metavid`.`streams` WHERE `sync_status`= 'in_sync' AND `adj_start_time` > {$date_time}";
    } else {
        $sql = "SELECT * FROM `metavid`.`streams` WHERE `name` LIKE '{$stream_name}'";
    }
    $res = $dbr->query($sql);
    if ($dbr->numRows($res) == 0) {
        die('could not find stream: ' . $stream_name . "\n");
    }
    // load all stream names:
    while ($row = $dbr->fetchObject($res)) {
        $streams[] = $row;
    }
    print "working on " . count($streams) . ' streams' . "\n";
    foreach ($streams as $stream) {
        print "on stream {$stream->name} \n";
        $force = isset($options['force']) ? true : false;
        // init the stream
        $MVStreams[$stream->name] = new MV_Stream($stream);
        // check if the stream has already been added to the wiki (if not add it)
        $mvTitle = new MV_Title('Stream:' . $stream->name);
        if (!$mvTitle->doesStreamExist()) {
            // print 'do stream desc'."\n";
            do_add_stream($mvTitle, $stream);
            echo "stream " . $mvTitle->getStreamName() . " added \n";
        } else {
            do_update_wiki_page($stream->name, mv_semantic_stream_desc($mvTitle, $stream), MV_NS_STREAM, $force);
            // $updated = ' updated' echo "stream " . $mvTitle->getStreamName() . " already present $updated\n";
        }
        if ($mode != 'all_in_wiki') {
            // add duration and start_time attr
            do_stream_attr_check($stream);
        }
        // do insert/copy all media images
        if (!isset($options['skipimage'])) {
            do_process_images($stream, $force);
            print "done with images\n";
        }
        if (!isset($options['skipfiles'])) {
            // check for files (make sure they match with metavid db values
            do_stream_file_check($stream);
        }
        if (!isset($options['skiptext'])) {
            // process all stream text:
            do_process_text($stream, $force);
        }
        if (!isset($options['skipSpeechMeta'])) {
            // do annoative track for continus speches
            do_annotate_speeches($stream, $force);
        }
    }
}