[vlc-devel] [RFC PATCH] chromecast: Display a warning dialog on Android and iOS
Rémi Denis-Courmont
remi at remlab.net
Thu Dec 21 15:22:12 CET 2017
Le 21 décembre 2017 14:27:57 GMT+02:00, "Hugo Beauzée-Luyssen" <hugo at beauzee.fr> a écrit :
>refs #19306
>---
> modules/stream_out/chromecast/cast.cpp | 24 ++++++++++++++++++++----
> 1 file changed, 20 insertions(+), 4 deletions(-)
>
>diff --git a/modules/stream_out/chromecast/cast.cpp
>b/modules/stream_out/chromecast/cast.cpp
>index aef9b380e9..fe23140a73 100644
>--- a/modules/stream_out/chromecast/cast.cpp
>+++ b/modules/stream_out/chromecast/cast.cpp
>@@ -30,7 +30,12 @@
> # include "config.h"
> #endif
>
>+#ifdef __APPLE__
>+#include "TargetConditionals.h"
>+#endif
>+
> #include "chromecast.h"
>+#include <vlc_dialog.h>
>
> #include <vlc_sout.h>
> #include <vlc_block.h>
>@@ -77,7 +82,7 @@ struct sout_stream_sys_t
> std::vector<sout_stream_id_sys_t*> streams;
>
> private:
>- void UpdateOutput( sout_stream_t * );
>+ bool UpdateOutput( sout_stream_t * );
> };
>
> #define SOUT_CFG_PREFIX "sout-chromecast-"
>@@ -253,12 +258,12 @@ bool sout_stream_sys_t::startSoutChain(
>sout_stream_t *p_stream )
> return streams.empty() == false;
> }
>
>-void sout_stream_sys_t::UpdateOutput( sout_stream_t *p_stream )
>+bool sout_stream_sys_t::UpdateOutput( sout_stream_t *p_stream )
> {
> assert( p_stream->p_sys == this );
>
> if ( !es_changed )
>- return;
>+ return true;
>
> es_changed = false;
>
>@@ -293,6 +298,15 @@ void sout_stream_sys_t::UpdateOutput(
>sout_stream_t *p_stream )
> std::stringstream ssout;
> if ( !canRemux )
> {
>+#if __ANDROID__ || TARGET_OS_IPHONE
>+ if ( vlc_dialog_wait_question(p_stream,
>VLC_DIALOG_QUESTION_WARNING,
>+ _("Cancel"), _("OK"), NULL,
>+ _("Performance warning"),
>+ _("Casting this video requires it to be
>converted. "
>+ "Your device might not be powerfull enough,
>or this "
>+ "could heavily drain your battery" ) ) != 1
>)
>+ return false;
>+#endif
> /* TODO: provide audio samplerate and channels */
> ssout << "transcode{";
> char s_fourcc[5];
>@@ -346,6 +360,7 @@ void sout_stream_sys_t::UpdateOutput( sout_stream_t
>*p_stream )
> p_out = NULL;
> sout = "";
> }
>+ return true;
> }
>
>sout_stream_id_sys_t *sout_stream_sys_t::GetSubId( sout_stream_t
>*p_stream,
>@@ -355,7 +370,8 @@ sout_stream_id_sys_t *sout_stream_sys_t::GetSubId(
>sout_stream_t *p_stream,
>
> assert( p_stream->p_sys == this );
>
>- UpdateOutput( p_stream );
>+ if ( UpdateOutput( p_stream ) == false )
>+ return NULL;
>
> for (i = 0; i < streams.size(); ++i)
> {
>--
>2.11.0
>
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel
Doing this on Android and iOS seems dubiously arbitrary. This should be done on any device w/o hardware-accelerated encoding - which is all of them at the moment.
--
Remi Denis-Courmont
More information about the vlc-devel
mailing list