va_end(va); mp_msg(MSGT_STREAM, MSGL_ERR, buf); } static struct stream_priv_s { char* host; char* fsid; } stream_priv_dflts = { NULL, NULL }; #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) /// URL definition static m_option_t stream_opts_fields[] = { {"hostname", ST_OFF(host), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"filename", ST_OFF(fsid), CONF_TYPE_STRING, 0, 0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static struct m_struct_st stream_opts = { "vstream", sizeof(struct stream_priv_s), &stream_priv_dflts, stream_opts_fields }; static int fill_buffer(stream_t *s, char* buffer, int max_len){ struct stream_priv_s* p = (struct stream_priv_s*)s->priv; int len = vstream_load_chunk(p->fsid, buffer, max_len, s->pos); if (len <= 0) return 0;
#include "core/mp_msg.h" #include "stream.h" #include "core/m_option.h" #include "core/m_struct.h" static struct stream_priv_s { char* filename; char *filename2; } stream_priv_dflts = { NULL, NULL }; #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) /// URL definition static const m_option_t stream_opts_fields[] = { {"string", ST_OFF(filename), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"filename", ST_OFF(filename2), CONF_TYPE_STRING, 0, 0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const struct m_struct_st stream_opts = { "file", sizeof(struct stream_priv_s), &stream_priv_dflts, stream_opts_fields }; static int fill_buffer(stream_t *s, char* buffer, int max_len) { int r = read(s->fd,buffer,max_len); // We are certain this is EOF, do not retry if (max_len && r == 0) s->eof = 1; return (r <= 0) ? -1 : r;
vf->priv->yoff -= vf->priv->band; // check csp: vf->priv->outfmt=vf_match_csp(&vf->next,fmt_list,IMGFMT_YV12); if(!vf->priv->outfmt) { uninit(vf); return 0; // no csp match :( } return 1; } #define ST_OFF(f) M_ST_OFF(struct vf_priv_s,f) static m_option_t vf_opts_fields[] = { { "x", ST_OFF(xoff), CONF_TYPE_INT, 0, 0, 0, NULL }, { "y", ST_OFF(yoff), CONF_TYPE_INT, 0, 0, 0, NULL }, { "w", ST_OFF(lw), CONF_TYPE_INT, 0, 0, 0, NULL }, { "h", ST_OFF(lh), CONF_TYPE_INT, 0, 0, 0, NULL }, { "t", ST_OFF(band), CONF_TYPE_INT, 0, 0, 0, NULL }, { "band", ST_OFF(band), CONF_TYPE_INT, 0, 0, 0, NULL }, // alias { NULL, NULL, 0, 0, 0, 0, NULL } }; static m_struct_t vf_opts = { "delogo", sizeof(struct vf_priv_s), &vf_priv_dflt, vf_opts_fields };
menu_list_priv_t p; char* title; char* file; int card; int level; int auto_close; dvb_config_t *config; }; #define ST_OFF(m) M_ST_OFF(struct menu_priv_s, m) #define mpriv (menu->priv) static m_option_t cfg_fields[] = { MENU_LIST_PRIV_FIELDS, { "title", ST_OFF(title), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "auto-close", ST_OFF(auto_close), CONF_TYPE_FLAG, 0, 0, 1, NULL }, { NULL, NULL, NULL, 0,0,0,NULL }, }; static struct menu_priv_s cfg_dflt = { MENU_LIST_PRIV_DFLT, "Select a channel: ", "channels.conf", 0, 0, 1, NULL, };
#include "tcp.h" static struct stream_priv_s { char* host; int port; char* url; } stream_priv_dflts = { NULL, 10000, NULL }; #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) /// URL definition static const m_option_t stream_opts_fields[] = { {"hostname", ST_OFF(host), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"port", ST_OFF(port), CONF_TYPE_INT, M_OPT_MIN, 1 ,0, NULL}, {"filename", ST_OFF(url), CONF_TYPE_STRING, 0, 0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const struct m_struct_st stream_opts = { "netstream", sizeof(struct stream_priv_s), &stream_priv_dflts, stream_opts_fields }; //// When the cache is running we need a lock as //// fill_buffer is called from another proccess static int lock_fd(int fd) { #if !HAVE_WINSOCK2_H
"$ ", 50, // lines 33, // % 3, 3, 0x80,0x40, 500, 500, 10, 0 }; #define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) static const m_option_t cfg_fields[] = { { "prompt", ST_OFF(mp_prompt), CONF_TYPE_STRING, M_OPT_MIN, 1, 0, NULL }, { "child-prompt", ST_OFF(child_prompt), CONF_TYPE_STRING, M_OPT_MIN, 1, 0, NULL }, { "buffer-lines", ST_OFF(buf_lines), CONF_TYPE_INT, M_OPT_MIN, 5, 0, NULL }, { "height", ST_OFF(height), CONF_TYPE_INT, M_OPT_RANGE, 1, 100, NULL }, { "minbor", ST_OFF(minb), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, { "vspace", ST_OFF(vspace), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, { "bg", ST_OFF(bg), CONF_TYPE_INT, M_OPT_RANGE, -1, 255, NULL }, { "bg-alpha", ST_OFF(bg_alpha), CONF_TYPE_INT, M_OPT_RANGE, 0, 255, NULL }, { "show-time",ST_OFF(show_time), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, { "hide-time",ST_OFF(hide_time), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, { "history-size",ST_OFF(history_max), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL }, { "raw-child", ST_OFF(raw_child), CONF_TYPE_FLAG, 0, 0, 1, NULL }, { NULL, NULL, NULL, 0,0,0,NULL } }; #define mpriv (menu->priv)
int still_length; /* still frame duration */ unsigned int state; } dvdnav_priv_t; static struct stream_priv_s { int track; char* device; } stream_priv_dflts = { 0, NULL }; #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) /// URL definition static const m_option_t stream_opts_fields[] = { {"filename", ST_OFF(device), CONF_TYPE_STRING, 0, 0, 0, NULL }, {"hostname", ST_OFF(track), CONF_TYPE_INT, M_OPT_RANGE, 1, 99, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const struct m_struct_st stream_opts = { "dvd", sizeof(struct stream_priv_s), &stream_priv_dflts, stream_opts_fields }; static int seek(stream_t *s, off_t newpos); static void show_audio_subs_languages(dvdnav_t *nav); static dvdnav_priv_t * new_dvdnav_stream(char * filename) { const char * title_str;
{ char *prog; int card; int timeout; char *file; } stream_defaults = { "", 1, 30, NULL }; #define ST_OFF(f) M_ST_OFF(struct stream_priv_s, f) /// URL definition static const m_option_t stream_params[] = { {"prog", ST_OFF(prog), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"card", ST_OFF(card), CONF_TYPE_INT, M_OPT_RANGE, 1, 4, NULL}, {"timeout",ST_OFF(timeout), CONF_TYPE_INT, M_OPT_RANGE, 1, 240, NULL}, {"file", ST_OFF(file), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"hostname", ST_OFF(prog), CONF_TYPE_STRING, 0, 0, 0, NULL }, {"username", ST_OFF(card), CONF_TYPE_INT, M_OPT_RANGE, 1, 4, NULL}, {NULL, NULL, 0, 0, 0, 0, NULL} }; static const struct m_struct_st stream_opts = { "dvbin", sizeof(struct stream_priv_s), &stream_defaults, stream_params };
unsigned flags, unsigned outfmt){ return vf_next_config(vf, width, height, d_width, d_height, flags, vf->priv->outfmt); } static int vf_open(vf_instance_t *vf, char *args){ vf->query_format=query_format; vf->draw_slice=vf_next_draw_slice; vf->default_caps=0; if (vf->priv->outfmt) vf->config=config; return 1; } #define ST_OFF(f) M_ST_OFF(struct vf_priv_s,f) static const m_option_t vf_opts_fields[] = { {"fmt", ST_OFF(fmt), CONF_TYPE_IMGFMT, 0,0 ,0, NULL}, {"outfmt", ST_OFF(outfmt), CONF_TYPE_IMGFMT, 0,0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const m_struct_t vf_opts = { "format", sizeof(struct vf_priv_s), &vf_priv_dflt, vf_opts_fields }; const vf_info_t vf_info_format = { "force output format", "format", "A'rpi",
radio_param_t *radio_param; } radio_priv_t; typedef struct radio_driver_s { char* name; char* info; int (*init_frac)(radio_priv_t* priv); void (*set_volume)(radio_priv_t* priv,int volume); int (*get_volume)(radio_priv_t* priv,int* volume); int (*set_frequency)(radio_priv_t* priv,float frequency); int (*get_frequency)(radio_priv_t* priv,float* frequency); } radio_driver_t; #define ST_OFF(f) M_ST_OFF(radio_param_t,f) static const m_option_t stream_opts_fields[] = { {"hostname", ST_OFF(freq_channel), CONF_TYPE_FLOAT, 0, 0 ,0, NULL}, {"filename", ST_OFF(capture), CONF_TYPE_STRING, 0, 0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const struct m_struct_st stream_opts = { "radio", sizeof(radio_param_t), &stream_radio_defaults, stream_opts_fields }; static void close_s(struct stream *stream); #ifdef CONFIG_RADIO_CAPTURE static int clear_buffer(radio_priv_t* priv); #endif
static int vf_open(vf_instance_t *vf, char *args){ vf->config=config; vf->filter=filter; vf->query_format=query_format; mp_msg(MSGT_VFILTER, MSGL_INFO, "Crop: %d x %d, %d ; %d\n", vf->priv->crop_w, vf->priv->crop_h, vf->priv->crop_x, vf->priv->crop_y); return 1; } #define ST_OFF(f) M_ST_OFF(struct vf_priv_s,f) static const m_option_t vf_opts_fields[] = { {"w", ST_OFF(crop_w), CONF_TYPE_INT, M_OPT_MIN,0 ,0, NULL}, {"h", ST_OFF(crop_h), CONF_TYPE_INT, M_OPT_MIN,0 ,0, NULL}, {"x", ST_OFF(crop_x), CONF_TYPE_INT, M_OPT_MIN,-1 ,0, NULL}, {"y", ST_OFF(crop_y), CONF_TYPE_INT, M_OPT_MIN,-1 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const m_struct_t vf_opts = { "crop", sizeof(struct vf_priv_s), &vf_priv_dflt, vf_opts_fields }; const vf_info_t vf_info_crop = { "cropping",
extern int dvd_last_chapter; extern int dvd_angle; extern char *audio_lang, *dvdsub_lang; static struct stream_priv_s { int track; char* device; } stream_priv_dflts = { 0, NULL }; #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) /// URL definition static m_option_t stream_opts_fields[] = { {"filename", ST_OFF(device), CONF_TYPE_STRING, 0, 0, 0, NULL }, {"hostname", ST_OFF(track), CONF_TYPE_INT, 0, 0, 0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static struct m_struct_st stream_opts = { "dvd", sizeof(struct stream_priv_s), &stream_priv_dflts, stream_opts_fields }; static int seek(stream_t *s, off_t newpos); static dvdnav_priv_t * new_dvdnav_stream(char * filename) { char * title_str; dvdnav_priv_t *priv;
NULL, //tdevice 0, //tformat 100, //tpage 0, //tlang 0, //scan_autostart 50, //scan_threshold 0.5, //scan_period 0, //hidden_video_renderer; 0, //hidden_vp_renderer; 0, //system_clock; 0 //normalize_audio_chunks; }; #define ST_OFF(f) M_ST_OFF(tv_param_t,f) static const m_option_t stream_opts_fields[] = { {"hostname", ST_OFF(channel), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"filename", ST_OFF(input), CONF_TYPE_INT, 0, 0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const struct m_struct_st stream_opts = { "tv", sizeof(tv_param_t), &stream_tv_defaults, stream_opts_fields }; static void tv_stream_close (stream_t *stream) { if(stream->priv)
} cdda_dflts = { -1, 0, NULL, 0, -1, 0, 0, 0, NULL, { 0, 0 } }; #define ST_OFF(f) M_ST_OFF(struct cdda_params,f) m_option_t cdda_params_fields[] = { { "speed", ST_OFF(speed), CONF_TYPE_INT, M_OPT_RANGE,1,100, NULL }, { "paranoia", ST_OFF(paranoia_mode), CONF_TYPE_INT,M_OPT_RANGE, 0, 2, NULL }, { "generic-dev", ST_OFF(generic_dev), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "sector-size", ST_OFF(sector_size), CONF_TYPE_INT, M_OPT_RANGE,1,100, NULL }, { "overlap", ST_OFF(search_overlap), CONF_TYPE_INT, M_OPT_RANGE,0,75, NULL }, { "toc-bias", ST_OFF(toc_bias), CONF_TYPE_INT, 0, 0, 0, NULL }, { "toc-offset", ST_OFF(toc_offset), CONF_TYPE_INT, 0, 0, 0, NULL }, { "noskip", ST_OFF(no_skip), CONF_TYPE_FLAG, 0 , 0, 1, NULL }, { "skip", ST_OFF(no_skip), CONF_TYPE_FLAG, 0 , 1, 0, NULL }, { "device", ST_OFF(device), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "span", ST_OFF(span), CONF_TYPE_OBJ_PARAMS, 0, 0, 0, &m_span_params_def }, /// For url parsing { "hostname", ST_OFF(span), CONF_TYPE_OBJ_PARAMS, 0, 0, 0, &m_span_params_def }, { "port", ST_OFF(speed), CONF_TYPE_INT, M_OPT_RANGE,1,100, NULL }, { "filename", ST_OFF(device), CONF_TYPE_STRING, 0, 0, 0, NULL }, {NULL, NULL, 0, 0, 0, 0, NULL}
#endif #include "libmpdemux/demuxer.h" static struct stream_priv_s { int track; char* device; } stream_priv_dflts = { 1, NULL }; #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) /// URL definition static const m_option_t stream_opts_fields[] = { { "track", ST_OFF(track), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL }, { "device", ST_OFF(device), CONF_TYPE_STRING, 0, 0 ,0, NULL}, /// For url parsing { "hostname", ST_OFF(track), CONF_TYPE_INT, M_OPT_MIN, 1, 0, NULL }, { "filename", ST_OFF(device), CONF_TYPE_STRING, 0, 0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static const struct m_struct_st stream_opts = { "vcd", sizeof(struct stream_priv_s), &stream_priv_dflts, stream_opts_fields }; static int fill_buffer(stream_t *s, char* buffer, int max_len){ if(s->pos > s->end_pos) /// don't past end of current track
}; static struct menu_priv_s cfg_dflt = { NULL, 0, 0, 0, 0, 3, NULL }; #define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) static m_option_t cfg_fields[] = { { "minbor", ST_OFF(minb), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, { "hspace", ST_OFF(hspace), CONF_TYPE_INT, M_OPT_MIN, 0, 0, NULL }, { "file", ST_OFF(file), CONF_TYPE_STRING, 0, 0, 0, NULL }, { NULL, NULL, NULL, 0,0,0,NULL } }; #define mpriv (menu->priv) static void read_cmd(menu_t* menu,int cmd) { switch(cmd) { case MENU_CMD_UP: mpriv->cur_line -= mpriv->disp_lines / 2; if(mpriv->cur_line < 0) mpriv->cur_line = 0; break; case MENU_CMD_DOWN:
MENU_LIST_PRIV_DFLT, NULL, NULL, "Select a file: %p", "loadfile '%p'", NULL, NULL, NULL }; #define ST_OFF(m) M_ST_OFF(struct menu_priv_s,m) static const m_option_t cfg_fields[] = { MENU_LIST_PRIV_FIELDS, { "path", ST_OFF(path), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "title", ST_OFF(title), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "file-action", ST_OFF(file_action), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "dir-action", ST_OFF(dir_action), CONF_TYPE_STRING, 0, 0, 0, NULL }, { "actions", ST_OFF(actions), CONF_TYPE_STRING_LIST, 0, 0, 0, NULL}, { "filter", ST_OFF(filter), CONF_TYPE_STRING, 0, 0, 0, NULL}, { NULL, NULL, NULL, 0,0,0,NULL } }; #define mpriv (menu->priv) static void free_entry(list_entry_t* entry) { free(entry->p.txt); free(entry); }
21, NULL, NULL, NULL, 0, 0,0, NULL }; #define BUFSIZE 2048 #define ST_OFF(f) M_ST_OFF(struct stream_priv_s,f) /// URL definition static m_option_t stream_opts_fields[] = { {"username", ST_OFF(user), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"password", ST_OFF(pass), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"hostname", ST_OFF(host), CONF_TYPE_STRING, 0, 0 ,0, NULL}, {"port", ST_OFF(port), CONF_TYPE_INT, 0, 0 ,65635, NULL}, {"filename", ST_OFF(filename), CONF_TYPE_STRING, 0, 0 ,0, NULL}, { NULL, NULL, 0, 0, 0, 0, NULL } }; static struct m_struct_st stream_opts = { "ftp", sizeof(struct stream_priv_s), &stream_priv_dflts, stream_opts_fields }; #define TELNET_IAC 255 /* interpret as command: */ #define TELNET_IP 244 /* interrupt process--permanently */