DeckLinkOutputAdapter(unsigned int card_index = 0, unsigned int norm_ = 0, RawFrame::PixelFormat pf_ = RawFrame::CbYCrY8422, bool enable_audio = false) : deckLink(NULL), deckLinkOutput(NULL), frame_counter(0), last_frame(NULL), in_pipe(OUT_PIPE_SIZE), audio_in_pipe(NULL) { norm = norm_; assert(norm < sizeof(norms) / sizeof(struct decklink_norm)); time_base = norms[norm].time_base; frame_duration = norms[norm].frame_duration; pf = pf_; bpf = convert_pf(pf_); deckLink = find_card(card_index); configure_card( ); open_card( ); preroll_video_frames(16); if (enable_audio) { setup_audio( ); } start_video( ); thread_priority_hack( ); fprintf(stderr, "DeckLink: initialized using norm %s\n", norms[norm].name); }
int bg_ogg_encoder_start(void * data) { int i; bg_ogg_encoder_t * e = data; /* Start encoders and write identification headers */ for(i = 0; i < e->num_video_streams; i++) { if(!start_video(e, i)) return 0; } for(i = 0; i < e->num_audio_streams; i++) { if(!start_audio(e, i)) return 0; } /* Write remaining header pages */ for(i = 0; i < e->num_video_streams; i++) { bg_ogg_stream_t * s = &e->video_streams[i]; if(bg_ogg_stream_flush(s, 1) < 0) return 0; } for(i = 0; i < e->num_audio_streams; i++) { bg_ogg_stream_t * s = &e->audio_streams[i]; if(bg_ogg_stream_flush(s, 1) < 0) return 0; } return 1; }
void kernel_main(struct multiboot_info *mboot, int initial_stack) { long int mem = 0; mboot_info = mboot; start_video(); putstr("Init Descriptor Tables................."); gdt_install(); idt_install(); putstr("[OK]\n"); putstr("Init ISRs.............................."); isr_install(); putstr("[OK]\n"); putstr("Init IRQs.............................."); irq_install(); __asm__ __volatile__ ("sti"); putstr("[OK]\n"); putstr("Init PIT..............................."); timer_install(); putstr("[OK]\n"); putstr("Amount of memory......................"); mem = mboot->mem_upper / 1024; putnum(mem); putstr("MB\n"); putstr("Init Memory............................"); init_memory_manager(); putstr("\n\n"); putstr("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWelcome to Plex!"); for (;;); }
int main(int argc, char *argv[]) { vid_options_t vopt; memset(&vopt, 0, sizeof(vid_options_t)); vopt.width = 100; vopt.height = 40; vopt.disp_bandwidth = 0; return start_video(argv[1], "55556", &vopt); }
void GuiPlayer::dropEvent( QDropEvent *event ){ if( event->mimeData()->hasUrls() ){ event->setDropAction( Qt::CopyAction ); start_video( event->mimeData()->urls()[0] ); event->accept(); } }
JNIEXPORT jint JNICALL Java_cn_edu_hust_buildingtalkback_jni_NativeInterface_startVideo( JNIEnv *env, jclass clazz, jboolean capture, jboolean display) { LOG_FUNC(); int cap = (capture == JNI_TRUE); int dis = (display == JNI_TRUE); return start_video(cap, dis); }
int command_dispatcher(int command_id, char * args, char * result_str) { int result = 0; int arg_param; switch(command_id) { case TS_PREVIEW_START: result = start_preview(); break; case TS_PREVIEW_STOP: result = stop_preview(); break; case TS_VIDEO_START: result = start_video(); break; case TS_VIDEO_STOP: result = stop_video(); break; case TS_SNAPSHOT_YUV_PICTURE: result = take_picture(ACTION_TAKE_YUV_PICTURE); break; case TS_SNAPSHOT_JPEG_PICTURE: result = take_picture(ACTION_TAKE_JPEG_PICTURE); break; case TS_SNAPSHOT_RAW_PICTURE: result = take_raw_picture(); break; case TS_SNAPSHOT_STOP: result = testsuite_snapshot_stop(); break; case TS_SYSTEM_INIT: result = system_init(); break; case TS_SYSTEM_DESTROY: result = system_destroy(); break; case TS_PRINT_MAXZOOM: result = print_maxzoom(); break; case TS_PRINT_ZOOMRATIOS: result = print_zoomratios(); break; case TS_ZOOM_INCREASE: result = zoom_increase(1); break; case TS_ZOOM_DECREASE: result = zoom_decrease(1); break; case TS_ZOOM_STEP_INCREASE: result = zoom_increase(0); break; case TS_ZOOM_STEP_DECREASE: result = zoom_decrease(0); break; case TS_CONTRAST_INCREASE: result = increase_contrast(); break; case TS_CONTRAST_DECREASE: result = decrease_contrast(); break; case TS_SATURATION_INCREASE: result = increase_saturation(); break; case TS_SATURATION_DECREASE: result = decrease_saturation(); break; case TS_SPECIAL_EFFECT: result = SpecialEffect(); break; case TS_BRIGHTNESS_INCREASE: result = increase_brightness(); break; case TS_BRIGHTNESS_DECREASE: result = decrease_brightness(); break; case TS_EV_INCREASE: result = increase_EV(); break; case TS_EV_DECREASE: result = decrease_EV(); break; case TS_ANTI_BANDING: result = set_antibanding(); break; case TS_SET_WHITE_BALANCE: result = set_whitebalance(); break; case TS_AEC_MODE: result = AEC_mode_change(); break; case TS_ISO_INCREASE: result = increase_ISO(); break; case TS_ISO_DECREASE: result = decrease_ISO(); break; case TS_SHARPNESS_INCREASE: result = increase_sharpness(); break; case TS_SHARPNESS_DECREASE: result = decrease_sharpness(); break; case TS_SET_AUTO_FOCUS: result = set_auto_focus(); break; case TS_SET_HJR: result = set_hjr(); break; case TS_SET_LENS_SHADING: result = LensShading(); break; case TS_SET_LED_MODE: result = LED_mode_change(); break; case TS_GET_SHARPNESS_AF: result = set_sharpness_AF(); break; case TS_SNAPSHOT_RESOLUTION: arg_param = atoi(args); result = snapshot_resolution(arg_param); break; case TS_PREVIEW_RESOLUTION: arg_param = atoi(args); result = preview_video_resolution (arg_param); break; case TS_MOTION_ISO: result = set_MotionIso(); break; case TS_TOGGLE_HUE: result = toggle_hue(); break; case TS_CANCEL_AUTO_FOCUS: result = cancel_af(); break; case TS_GET_AF_STEP: result = get_af_step(); break; case TS_SET_AF_STEP: result = set_af_step(); break; case TS_ENABLE_AFD: result = enable_afd(); break; case TEST_VIDIOC_G_FMT: result = msm_v4l2_vidioc_g_fmt(); break; case TEST_VIDIOC_S_FMT: result = msm_v4l2_vidioc_s_fmt(); break; case TEST_VIDIOC_CROPCAP: result = msm_v4l2_vidioc_cropcap(); break; case TEST_VIDIOC_G_CROP: result = msm_v4l2_vidioc_g_crop(); break; case TEST_VIDIOC_S_CROP: result = msm_v4l2_vidioc_s_crop(); break; case TEST_VIDIOC_QUERYMENU: result = msm_v4l2_vidioc_querymenu(args); break; case TEST_VIDIOC_QUERYCTRL: result = msm_v4l2_vidioc_queryctrl(NULL); break; case TEST_VIDIOC_S_CTRL: result = msm_v4l2_vidioc_s_ctrl(args); break; case TEST_VIDIOC_G_CTRL: result = msm_v4l2_vidioc_g_ctrl(args); break; default: break; } return result; }
void process_cmd(char *readbuf, int length) { typedef enum pipe_cmd_type{ca,im,tl,px,bo,tv,an,as,at,ac,ab,sh,co,br,sa,is,vs,rl,ec,em,wb,mm,ie,ce,ro,fl,ri,ss,qu,pv,bi,ru,md,sc,rs,bu,mn,mt,mi,mb,me,mx,mf,vm,vp,wd,sy,cn,st} pipe_cmd_type; char pipe_cmds[] = "ca,im,tl,px,bo,tv,an,as,at,ac,ab,sh,co,br,sa,is,vs,rl,ec,em,wb,mm,ie,ce,ro,fl,ri,ss,qu,pv,bi,ru,md,sc,rs,bu,mn,mt,mi,mb,me,mx,mf,vm,vp,wd,sy,cn,st"; pipe_cmd_type pipe_cmd; int parcount; char pars[128][10]; long int par0; char cmd[3]; char par[MAX_COMMAND_LEN]; char *parstring=0, *temp; int key = -1; if (length < 2 || length > (MAX_COMMAND_LEN - 2)) return; //Get cmd strncpy(cmd, readbuf, 2); //find 2 letter command and translate into enum temp = strstr(pipe_cmds, cmd); if (temp == NULL) return; pipe_cmd = (pipe_cmd_type)((temp - pipe_cmds) / 3); if(length > 3) { strcpy(par, readbuf + 3); par[length-3] = 0; //extract space separated numeric parameters // and make separate string parameter (strtok changes the original) asprintf(&parstring, "%s", par); parcount = 0; temp = strtok(par, " "); while(parcount<10 && temp != NULL) { strcpy(pars[parcount], temp); parcount++; temp = strtok(NULL, " "); } par0 = strtol(pars[0], NULL, 10); } else { par0 = 0; } switch(pipe_cmd) { case ca: if(par0 == 1) { if (parcount > 1) { long vtime = strtol(pars[1], NULL, 10); video_stoptime = time(NULL) + vtime; printLog("Capturing %d seconds\n", vtime); } start_video(0); } else { stop_video(0); } break; case im: capt_img(); break; case tl: if(par0) { timelapse = 1; lapse_cnt = 1; updateStatus(); printLog("Timelapse started\n"); } else { image2_cnt++; timelapse = 0; updateStatus(); printLog("Timelapse stopped\n"); } break; case px: stop_all(); addUserValue(c_video_width, pars[0]); addUserValue(c_video_height, pars[1]); addUserValue(c_video_fps, pars[2]); addUserValue(c_MP4Box_fps, pars[3]); addUserValue(c_image_width, pars[4]); addUserValue(c_image_height, pars[5]); start_all(0); break; case bo: addUserValue(c_MP4Box, pars[0]); break; case tv: addUserValue(c_tl_interval, pars[0]); break; case an: addUserValue(c_annotation, parstring); break; case as: addUserValue(c_anno_text_size, pars[0]); break; case at: addUserValue(c_anno3_custom_text_colour, pars[0]); addUserValue(c_anno3_custom_text_Y, pars[1]); addUserValue(c_anno3_custom_text_U, pars[2]); addUserValue(c_anno3_custom_text_V, pars[3]); break; case ac: addUserValue(c_anno3_custom_background_colour, pars[0]); addUserValue(c_anno3_custom_background_Y, pars[1]); addUserValue(c_anno3_custom_background_U, pars[2]); addUserValue(c_anno3_custom_background_V, pars[3]); break; case ab: addUserValue(c_anno_background, pars[0]); break; case sh: key = c_sharpness; break; case co: key = c_contrast; break; case br: key = c_brightness; break; case sa: key = c_saturation; break; case is: key = c_iso; break; case vs: key = c_video_stabilisation; break; case rl: key = c_raw_layer; break; case ec: key = 1000 + c_exposure_compensation; break; case em: key = 1000 + c_exposure_mode; break; case wb: key = 1000 + c_white_balance; break; case mm: key = 1000 + c_metering_mode; break; case ie: key = 1000 + c_image_effect; break; case ce: addUserValue(c_colour_effect_u, pars[1]); addUserValue(c_colour_effect_v, pars[2]); key = c_colour_effect_en; break; case ro: key = c_rotation; break; case fl: if(par0 & 1) addUserValue(c_hflip, "1"); else addUserValue(c_hflip, "0"); if((par0 >> 1) & 1) addUserValue(c_vflip, "1"); else addUserValue(c_vflip, "0"); cam_set(c_hflip); break; case ri: addUserValue(c_sensor_region_y, pars[1]); addUserValue(c_sensor_region_w, pars[2]); addUserValue(c_sensor_region_h, pars[3]); key = c_sensor_region_x; break; case ss: addUserValue(c_shutter_speed, pars[0]); key = c_shutter_speed; break; case qu: key = c_image_quality; break; case pv: stop_all(); addUserValue(c_quality, pars[0]); addUserValue(c_width, pars[1]); addUserValue(c_divider, pars[2]); start_all(0); break; case bi: stop_all(); addUserValue(c_video_bitrate, pars[0]); start_all(0); break; case st: stop_all(); addUserValue(c_stat_pass, pars[0]); start_all(0); break; case wd: addUserValue(c_watchdog_interval, pars[0]); addUserValue(c_watchdog_errors, pars[1]); break; case ru: if (par0 == 0) { stop_all(); idle = 1; printLog("Stream halted\n"); } else { start_all(1); idle = 0; printLog("Stream continued\n"); } updateStatus(); break; case mx: key = c_motion_external; //If switching to internal with motion detection on then try to kill external motion if (cfg_val[c_motion_detection] != 0 && !par0) { if(system("killall motion") == -1) error("Could not stop external motion", 1); printLog("External motion detection stopped\n"); } break; case md: exec_macro(cfg_stru[c_do_cmd], readbuf); stop_all(); if (cfg_val[c_motion_external]) { if(par0 == 0) { if(system("killall motion") == -1) error("Could not stop external motion", 1); printLog("External motion detection stopped\n"); } else { if (cfg_val[c_motion_detection] == 0) { if(system("motion") == -1) error("Could not start external motion", 1); printLog("External motion detection started\n"); } else { printLog("Motion already running. md 1 ignored\n"); } } } else { if(par0 == 0) { printLog("Internal motion detection stopped\n"); } else { printLog("Internal motion detection started\n"); } } cfg_val[c_motion_detection] = par0?1:0; start_all(0); updateStatus(); break; case sc: set_counts(); printLog("Scan for highest count\n"); break; case rs: printLog("Reset settings to defaults\n"); stop_all(); read_config("/etc/raspimjpeg", 1); saveUserConfig(cfg_stru[c_user_config]); start_all(0); break; case bu: key = c_video_buffer; break; case vp: stop_all(); addUserValue(c_vector_preview, pars[0]); start_all(0); break; case mn: key = c_motion_noise; break; case mt: key = c_motion_threshold; break; case mi: key = c_motion_image + 1000; break; case mb: key = c_motion_startframes; break; case me: key = c_motion_stopframes; break; case mf: key = c_motion_file; break; case vm: key = c_vector_mode; break; case sy: exec_macro(parstring, NULL); break; case cn: stop_all(); addUserValue(c_camera_num, pars[0]); start_all(0); break; default: printLog("Unrecognised pipe command\n"); break; }