void _print_dbl(cmdObj_t *cmd) { cmd_get(cmd); char format[CMD_FORMAT_LEN+1]; fprintf(stderr, _get_format(cmd->index, format), cmd->value); }
void _print_str(cmdObj_t *cmd) { cmd_get(cmd); char format[CMD_FORMAT_LEN+1]; fprintf(stderr, _get_format(cmd->index, format), *cmd->stringp); }
bool_t ms_media_player_open(MSMediaPlayer *obj, const char *filepath) { wave_header_t header; int fd; char *tmp; ms_message("Openning %s", filepath); if(access(filepath, F_OK) != 0) { ms_error("Cannot open %s. File does not exist", filepath); return FALSE; } if(!_get_format(filepath, &obj->format)) { ms_error("Fails to detect file format of %s", filepath); return FALSE; } switch(obj->format) { case FILE_FORMAT_WAVE: fd = open(filepath, O_RDONLY); if(fd == -1) { ms_error("Cannot open %s", filepath); return FALSE; } if(ms_read_wav_header_from_fd(&header, fd) == -1) { ms_error("Cannot open %s. Invalid WAV format", filepath); return FALSE; } close(fd); if(wave_header_get_format_type(&header) != WAVE_FORMAT_PCM) { ms_error("Cannot open %s. Codec not supported", filepath); return FALSE; } obj->player = ms_filter_new(MS_FILE_PLAYER_ID); break; case FILE_FORMAT_MATROSKA: if((obj->player = ms_filter_new(MS_MKV_PLAYER_ID)) == NULL) { ms_error("Cannot open %s. Matroska file support is disabled", filepath); return FALSE; } break; case FILE_FORMAT_UNKNOWN: ms_error("Cannot open %s. Unknown format", filepath); return FALSE; } tmp = ms_strdup(filepath); if(ms_filter_call_method(obj->player, MS_PLAYER_OPEN, tmp) == -1) { ms_error("Cannot open %s", filepath); ms_free(tmp); ms_filter_destroy(obj->player); return FALSE; } ms_free(tmp); _create_decoders(obj); _create_sinks(obj); if(!_link_all(obj)) { ms_error("Cannot open %s. Could not build playing graph", filepath); _destroy_graph(obj); return FALSE; } ms_filter_add_notify_callback(obj->player, _eof_filter_notify_cb, obj, TRUE); ms_ticker_attach(obj->ticker, obj->player); obj->is_open = TRUE; obj->filename = ms_strdup(filepath); return TRUE; }