media query_pt4::parse(const std::string& url, const options& opts) const { _configure(opts); quvi_media_t qm; QUVIcode qc = quvi_parse(_quvi, const_cast<char*>(url.c_str()), &qm); if (qc != QUVI_OK) throw error(_quvi, qc); media r(_quvi, qm); quvi_parse_close(&qm); return r; }
QuviMediaInfo::QuviParse::QuviParse(Quvi& q, const std::wstring& url) { std::string murl(MultibyteFromWide(url.c_str())); QUVIcode qc = quvi_parse(q, murl.empty() ? "" : &murl[0], &qm); if (qc != QUVI_OK) throw qc; }
IdolPlParserResult idol_pl_parser_add_videosite (IdolPlParser *parser, GFile *file, GFile *base_file, IdolPlParseData *parse_data, gpointer data) { #ifdef HAVE_QUVI QUVIcode rc; quvi_t handle; quvi_video_t v; char *uri; /* properties */ const char *video_uri; double length; char *length_str; const char *title; const char *id; const char *page_uri; const char *starttime; const char *content_type; if (quvi_init (&handle) != QUVI_OK) return IDOL_PL_PARSER_RESULT_ERROR; uri = g_file_get_uri (file); rc = quvi_parse(handle, uri, &v); if (rc != QUVI_OK) { if (idol_pl_parser_is_debugging_enabled (parser)) { g_print ("quvi_parse for '%s' returned %d", uri, rc); } g_free (uri); quvi_close (&handle); return IDOL_PL_PARSER_RESULT_ERROR; } getprop (QUVIPROP_VIDEOURL, video_uri); if (quvi_getprop (v, QUVIPROP_VIDEOFILELENGTH, &length) == QUVI_OK) length_str = g_strdup_printf ("%f", length); else length_str = NULL; getprop (QUVIPROP_PAGETITLE, title); getprop (QUVIPROP_VIDEOID, id); getprop (QUVIPROP_PAGEURL, page_uri); getprop (QUVIPROP_STARTTIME, starttime); getprop (QUVIPROP_VIDEOFILECONTENTTYPE, content_type); length_str = g_strdup_printf ("%d", (int) length); if (video_uri != NULL) idol_pl_parser_add_uri (parser, IDOL_PL_PARSER_FIELD_TITLE, title, IDOL_PL_PARSER_FIELD_ID, id, IDOL_PL_PARSER_FIELD_MOREINFO, page_uri, IDOL_PL_PARSER_FIELD_URI, video_uri, IDOL_PL_PARSER_FIELD_FILESIZE, length_str, IDOL_PL_PARSER_FIELD_STARTTIME, starttime, IDOL_PL_PARSER_FIELD_CONTENT_TYPE, content_type, NULL); g_free (uri); g_free (length_str); quvi_parse_close (&v); quvi_close (&handle); return IDOL_PL_PARSER_RESULT_SUCCESS; #else return IDOL_PL_PARSER_RESULT_UNHANDLED; #endif /* !HAVE_QUVI */ }