forked from enlightenment/efl
emotion/libvlc: fix video/audio/spu mute
This commit is contained in:
parent
f04903119c
commit
941ccc4324
|
@ -69,6 +69,7 @@ struct _Emotion_LibVLC
|
||||||
/* options */
|
/* options */
|
||||||
int video_mute;
|
int video_mute;
|
||||||
int audio_mute;
|
int audio_mute;
|
||||||
|
int spu_mute;
|
||||||
int audio_vol;
|
int audio_vol;
|
||||||
Emotion_Vis vis;
|
Emotion_Vis vis;
|
||||||
|
|
||||||
|
@ -701,7 +702,6 @@ em_add(const Emotion_Engine *api EINA_UNUSED,
|
||||||
eina_lock_new(&ev->lock);
|
eina_lock_new(&ev->lock);
|
||||||
eina_condition_new(&ev->wait, &ev->lock);
|
eina_condition_new(&ev->wait, &ev->lock);
|
||||||
ev->ref_count = 1;
|
ev->ref_count = 1;
|
||||||
ev->audio_mute = -1;
|
|
||||||
ev->audio_vol = -1;
|
ev->audio_vol = -1;
|
||||||
|
|
||||||
return ev;
|
return ev;
|
||||||
|
@ -752,12 +752,15 @@ em_file_open(void *video,
|
||||||
ev->m = libvlc_media_new_path(libvlc, file);
|
ev->m = libvlc_media_new_path(libvlc, file);
|
||||||
EINA_SAFETY_ON_NULL_GOTO(ev->m, error);
|
EINA_SAFETY_ON_NULL_GOTO(ev->m, error);
|
||||||
|
|
||||||
if (ev->opt.no_audio)
|
if (ev->opt.no_audio || ev->audio_mute)
|
||||||
libvlc_media_add_option(ev->m, ":no-audio");
|
libvlc_media_add_option(ev->m, ":no-audio");
|
||||||
|
|
||||||
if (ev->opt.no_video)
|
if (ev->opt.no_video || ev->video_mute)
|
||||||
libvlc_media_add_option(ev->m, ":no-video");
|
libvlc_media_add_option(ev->m, ":no-video");
|
||||||
|
|
||||||
|
if (ev->spu_mute)
|
||||||
|
libvlc_media_add_option(ev->m, ":no-spu");
|
||||||
|
|
||||||
/* Create libvlc_media_player */
|
/* Create libvlc_media_player */
|
||||||
ev->mp = libvlc_media_player_new_from_media(ev->m);
|
ev->mp = libvlc_media_player_new_from_media(ev->m);
|
||||||
EINA_SAFETY_ON_NULL_GOTO(ev->mp, error);
|
EINA_SAFETY_ON_NULL_GOTO(ev->mp, error);
|
||||||
|
@ -770,16 +773,11 @@ em_file_open(void *video,
|
||||||
libvlc_position_disable, 0);
|
libvlc_position_disable, 0);
|
||||||
|
|
||||||
/* Set sink callbacks */
|
/* Set sink callbacks */
|
||||||
if (!ev->opt.no_video)
|
libvlc_video_set_format_callbacks(ev->mp, libvlc_video_on_format, NULL);
|
||||||
{
|
libvlc_video_set_callbacks(ev->mp, libvlc_video_on_lock,
|
||||||
libvlc_video_set_format_callbacks(ev->mp, libvlc_video_on_format, NULL);
|
libvlc_video_on_unlock,
|
||||||
libvlc_video_set_callbacks(ev->mp, libvlc_video_on_lock,
|
libvlc_video_on_display, ev);
|
||||||
libvlc_video_on_unlock,
|
|
||||||
libvlc_video_on_display, ev);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ev->audio_mute != -1)
|
|
||||||
libvlc_audio_set_mute(ev->mp, 1);
|
|
||||||
if (ev->audio_vol != -1)
|
if (ev->audio_vol != -1)
|
||||||
libvlc_audio_set_volume(ev->mp, ev->audio_vol);
|
libvlc_audio_set_volume(ev->mp, ev->audio_vol);
|
||||||
|
|
||||||
|
@ -1268,6 +1266,9 @@ em_video_channel_mute_set(void *video,
|
||||||
Emotion_LibVLC *ev = video;
|
Emotion_LibVLC *ev = video;
|
||||||
|
|
||||||
ev->video_mute = mute;
|
ev->video_mute = mute;
|
||||||
|
|
||||||
|
if (libvlc_mp_is_ready(ev))
|
||||||
|
em_video_channel_set(video, mute ? -1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -1351,9 +1352,8 @@ em_audio_channel_mute_set(void *video,
|
||||||
|
|
||||||
ev->audio_mute = mute;
|
ev->audio_mute = mute;
|
||||||
|
|
||||||
if (!libvlc_mp_is_ready(ev)) return;
|
if (libvlc_mp_is_ready(ev))
|
||||||
|
em_audio_channel_set(video, mute ? -1 : 0);
|
||||||
libvlc_audio_set_mute(ev->mp, mute);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -1361,10 +1361,7 @@ em_audio_channel_mute_get(void *video)
|
||||||
{
|
{
|
||||||
Emotion_LibVLC *ev = video;
|
Emotion_LibVLC *ev = video;
|
||||||
|
|
||||||
if (!libvlc_mp_is_ready(ev))
|
return ev->audio_mute;
|
||||||
return ev->audio_mute;
|
|
||||||
|
|
||||||
return libvlc_audio_get_mute(ev->mp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1454,14 +1451,22 @@ em_spu_channel_name_get(void *video,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
em_spu_channel_mute_set(void *video EINA_UNUSED, int mute EINA_UNUSED)
|
em_spu_channel_mute_set(void *video, int mute)
|
||||||
{
|
{
|
||||||
|
Emotion_LibVLC *ev = video;
|
||||||
|
|
||||||
|
ev->spu_mute = mute;
|
||||||
|
|
||||||
|
if (libvlc_mp_is_ready(ev))
|
||||||
|
em_spu_channel_set(video, mute ? -1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
em_spu_channel_mute_get(void *video EINA_UNUSED)
|
em_spu_channel_mute_get(void *video)
|
||||||
{
|
{
|
||||||
return 0;
|
Emotion_LibVLC *ev = video;
|
||||||
|
|
||||||
|
return ev->spu_mute;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
Loading…
Reference in New Issue