/* * Save Wifi Settings to EEPROM */ cmd_status wifi_save_settings(cli_ctx *ctx, const char *args) { encoder_settings_t encoder; set_network_settings(ctx->common->network); encoder.ra_cps = ctx->common->ra_cps; encoder.dec_cps = ctx->common->dec_cps; set_encoder_settings(&encoder); ctx->serial->printf("OK\n"); return E_CMD_OK; }
static GstElement * create_encoder (GstRTSPCamMediaFactory *factory, gchar *codec_name) { CodecDescriptor *codec; GstElement *encoder; codec = find_codec (codec_name); if (codec == NULL) { GST_ERROR_OBJECT (factory, "invalid codec %s", codec_name); return NULL; } encoder = gst_element_factory_make(codec->encoder, NULL); if (codec->encoder_settings) set_encoder_settings(encoder, codec->encoder_settings); return encoder; }
/* * Allows the user to set the Encoder resolution */ cmd_status dsc_set_resolution(cli_ctx *ctx, const char *args) { int match = 0; long ra, dec; encoder_settings_t encoder_settings; match = sscanf(args, "%ld %ld", &ra, &dec); if (match != 2) { return E_CMD_TOO_SHORT; } ctx->common->ra_cps = ra; ctx->common->dec_cps = dec; /* write the values to EEPROM for later */ encoder_settings.ra_cps = ctx->common->ra_cps; encoder_settings.dec_cps = ctx->common->dec_cps; set_encoder_settings(&encoder_settings); return E_CMD_OK; }
/* * BBox set encoder resolution */ cmd_status bbx_set_resolution(cli_ctx *ctx, const char *args) { int match = 0; long ra, dec; encoder_settings_t encoder_settings; /* there may be a \r\n here to parse as well??? */ match = sscanf(args, "%ld %ld", &ra, &dec); if (match != 2) { return E_CMD_TOO_SHORT; } ctx->common->ra_cps = ra; ctx->common->dec_cps = dec; /* write the values to EEPROM for later */ encoder_settings.ra_cps = ctx->common->ra_cps; encoder_settings.dec_cps = ctx->common->dec_cps; set_encoder_settings(&encoder_settings); ctx->serial->printf("*"); return E_CMD_OK; }
static int pvr_stream_open (stream_t *stream, int mode, void *opts, int *file_format) { struct v4l2_capability vcap; struct v4l2_ext_controls ctrls; struct pvr_t *pvr = NULL; if (mode != STREAM_READ) return STREAM_UNSUPPORTED; pvr = pvr_init (); /** * if the url, i.e. 'pvr://8', contains the channel, use it, * else use the tv parameter. */ if (stream->url && strlen (stream->url) > 6 && stream->url[6] != '\0') pvr->param_channel = strdup (stream->url + 6); else if (stream_tv_defaults.channel && strlen (stream_tv_defaults.channel)) pvr->param_channel = strdup (stream_tv_defaults.channel); parse_v4l2_tv_options (pvr); parse_encoder_options (pvr); /* open device */ pvr->dev_fd = open (pvr->video_dev, O_RDWR); mp_msg (MSGT_OPEN, MSGL_INFO, "%s Using device %s\n", LOG_LEVEL_PVR, pvr->video_dev); if (pvr->dev_fd == -1) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s error opening device %s\n", LOG_LEVEL_PVR, pvr->video_dev); pvr_uninit (pvr); return STREAM_ERROR; } /* query capabilities (i.e test V4L2 support) */ if (ioctl (pvr->dev_fd, VIDIOC_QUERYCAP, &vcap) < 0) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s device is not V4L2 compliant (%s).\n", LOG_LEVEL_PVR, strerror (errno)); pvr_uninit (pvr); return STREAM_ERROR; } else mp_msg (MSGT_OPEN, MSGL_INFO, "%s Detected %s\n", LOG_LEVEL_PVR, vcap.card); /* check for a valid V4L2 capture device */ if (!(vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s device is not a valid V4L2 capture device.\n", LOG_LEVEL_PVR); pvr_uninit (pvr); return STREAM_ERROR; } /* check for device hardware MPEG encoding capability */ ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ctrls.count = 0; ctrls.controls = NULL; if (ioctl (pvr->dev_fd, VIDIOC_G_EXT_CTRLS, &ctrls) < 0) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s device do not support MPEG input.\n", LOG_LEVEL_ENCODER); return STREAM_ERROR; } /* list V4L2 capabilities */ if (v4l2_list_capabilities (pvr) == -1) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s can't get v4l2 capabilities\n", LOG_LEVEL_PVR); pvr_uninit (pvr); return STREAM_ERROR; } /* apply V4L2 settings */ if (set_v4l2_settings (pvr) == -1) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s can't set v4l2 settings\n", LOG_LEVEL_PVR); pvr_uninit (pvr); return STREAM_ERROR; } /* apply encoder settings */ if (set_encoder_settings (pvr) == -1) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s can't set encoder settings\n", LOG_LEVEL_PVR); pvr_uninit (pvr); return STREAM_ERROR; } /* display current V4L2 settings */ if (v4l2_display_settings (pvr) == -1) { mp_msg (MSGT_OPEN, MSGL_ERR, "%s can't get v4l2 settings\n", LOG_LEVEL_PVR); pvr_uninit (pvr); return STREAM_ERROR; } stream->priv = pvr; stream->type = STREAMTYPE_PVR; stream->fill_buffer = pvr_stream_read; stream->close = pvr_stream_close; return STREAM_OK; }