jint Java_org_videolan_libvlc_LibVLC_getSpuTrack(JNIEnv *env, jobject thiz) { libvlc_media_player_t *mp = getMediaPlayer(env, thiz); if (mp) return libvlc_video_get_spu(mp); return -1; }
void VlcMediaWidget::updateSubtitles() { subtitles.clear(); libvlc_track_description_t *track = libvlc_video_get_spu_description(vlcMediaPlayer); if (track != NULL) { // skip the 'deactivate' subtitle track = track->p_next; } while (track != NULL) { QString subtitle = QString::fromUtf8(track->psz_name); int cutBegin = (subtitle.indexOf(QLatin1Char('[')) + 1); if (cutBegin > 0) { int cutEnd = subtitle.lastIndexOf(QLatin1Char(']')); if (cutEnd >= 0) { // remove unnecessary text subtitle = subtitle.mid(cutBegin, cutEnd - cutBegin); } } if (subtitle.isEmpty()) { subtitle = QString::number(subtitles.size() + 1); } subtitles.append(subtitle); track = track->p_next; } // skip the 'deactivate' subtitle currentSubtitle = (libvlc_video_get_spu(vlcMediaPlayer) - 1); }
static void _send_all_track_info(struct _App *app) { int track_count, current; libvlc_track_description_t *desc; current = libvlc_audio_get_track(app->mp); track_count = libvlc_audio_get_track_count(app->mp); desc = libvlc_audio_get_track_description(app->mp); _send_track_info(app, EM_RESULT_AUDIO_TRACK_INFO, current, track_count, desc); current = libvlc_video_get_track(app->mp); track_count = libvlc_video_get_track_count(app->mp); desc = libvlc_video_get_track_description(app->mp); _send_track_info(app, EM_RESULT_VIDEO_TRACK_INFO, current, track_count, desc); current = libvlc_video_get_spu(app->mp); track_count = libvlc_video_get_spu_count(app->mp); desc = libvlc_video_get_spu_description(app->mp); _send_track_info(app, EM_RESULT_SPU_TRACK_INFO, current, track_count, desc); }
int FBVLCVideoAPI::get_subtitle() { FBVLCPtr plg = getPlugin(); vlc_player& p = plg->get_player(); return libvlc_video_get_spu(p.get_mp()); }
int VlcVideo::subtitle() const { int subtitle = -1; if (_vlcMediaPlayer && libvlc_media_player_has_vout(_vlcMediaPlayer)) { subtitle = libvlc_video_get_spu(_vlcMediaPlayer); VlcError::errmsg(); } return subtitle; }
jint Java_org_videolan_libvlc_MediaPlayer_nativeGetSpuTrack(JNIEnv *env, jobject thiz) { vlcjni_object *p_obj = VLCJniObject_getInstance(env, thiz); if (!p_obj) return -2; return libvlc_video_get_spu(p_obj->u.p_mp); }
QString VPlayer::getSubtitle() { if(mp){ if(subtitle.isEmpty()){ getSubtitles(); } return subtitle.key(libvlc_video_get_spu(mp)); } else{ return QString(); } }
STDMETHODIMP VLCVideo::get_subtitle(long* spu) { if( NULL == spu ) return E_POINTER; libvlc_media_player_t *p_md; HRESULT hr = getMD(&p_md); if( SUCCEEDED(hr) ) { *spu = libvlc_video_get_spu(p_md); } return hr; };
RuntimeNPObject::InvokeResult LibvlcSubtitleNPObject::getProperty(int index, NPVariant &result) { /* is plugin still running */ if( isPluginRunning() ) { VlcPlugin* p_plugin = getPrivate<VlcPlugin>(); libvlc_exception_t ex; libvlc_exception_init(&ex); libvlc_media_player_t *p_md = p_plugin->getMD(&ex); RETURN_ON_EXCEPTION(this,ex); switch( index ) { case ID_subtitle_track: { /* get the current subtitle ID */ int i_spu = libvlc_video_get_spu(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); /* return it */ INT32_TO_NPVARIANT(i_spu, result); return INVOKERESULT_NO_ERROR; } case ID_subtitle_count: { /* get the number of subtitles available */ int i_spu = libvlc_video_get_spu_count(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); /* return it */ INT32_TO_NPVARIANT(i_spu, result); return INVOKERESULT_NO_ERROR; } } } return INVOKERESULT_GENERIC_ERROR; }
int QmlVlcVideo::get_subtitle() { return libvlc_video_get_spu( m_player.get_mp() ); }
RuntimeNPObject::InvokeResult LibvlcVideoNPObject::getProperty(int index, NPVariant &result) { /* is plugin still running */ if( isPluginRunning() ) { VlcPlugin* p_plugin = getPrivate<VlcPlugin>(); libvlc_exception_t ex; libvlc_exception_init(&ex); libvlc_media_player_t *p_md = p_plugin->getMD(&ex); RETURN_ON_EXCEPTION(this,ex); switch( index ) { case ID_video_fullscreen: { int val = p_plugin->get_fullscreen(&ex); RETURN_ON_EXCEPTION(this,ex); BOOLEAN_TO_NPVARIANT(val, result); return INVOKERESULT_NO_ERROR; } case ID_video_height: { int val = libvlc_video_get_height(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); INT32_TO_NPVARIANT(val, result); return INVOKERESULT_NO_ERROR; } case ID_video_width: { int val = libvlc_video_get_width(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); INT32_TO_NPVARIANT(val, result); return INVOKERESULT_NO_ERROR; } case ID_video_aspectratio: { NPUTF8 *psz_aspect = libvlc_video_get_aspect_ratio(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); if( !psz_aspect ) return INVOKERESULT_GENERIC_ERROR; STRINGZ_TO_NPVARIANT(psz_aspect, result); return INVOKERESULT_NO_ERROR; } case ID_video_subtitle: { int i_spu = libvlc_video_get_spu(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); INT32_TO_NPVARIANT(i_spu, result); return INVOKERESULT_NO_ERROR; } case ID_video_crop: { NPUTF8 *psz_geometry = libvlc_video_get_crop_geometry(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); if( !psz_geometry ) return INVOKERESULT_GENERIC_ERROR; STRINGZ_TO_NPVARIANT(psz_geometry, result); return INVOKERESULT_NO_ERROR; } case ID_video_teletext: { int i_page = libvlc_video_get_teletext(p_md, &ex); RETURN_ON_EXCEPTION(this,ex); INT32_TO_NPVARIANT(i_page, result); return INVOKERESULT_NO_ERROR; } } } return INVOKERESULT_GENERIC_ERROR; }