[Android] [PATCH 0/5] Minimal Chromecast support
Adrien Maglo
magsoft at gmail.com
Tue Jul 8 16:33:44 CEST 2014
Hi all,
Here is a series of patches that integrate a minimal support of Chromecast in VLC Android. Basically, it adds a small HTTP server to serve the file to cast and a tiny control interface that supports the device selection and order it to pause/resume.
Normmally, it should be possible to display progress and send seeking commands but the status API seems broken...
I did not use the HTTP stream output of VLC because of the Chromecast significant caching. I am not sure if it is a good solution or not.
The supported video codecs are h264 and VP8 and the supported containers are fragmented MP4 and WebM. Therefore, only very few media types can be played without conversion.
I think that this support is far from being what the average user expects. However, it will be complex to improve.
Is it realistic to support transcoding (software or with MediaCodec) on an embedded device? Should it be performed live or offline? I am waiting for your opinion.
Best regards,
--
MagSoft
Adrien Maglo (5):
java-libs: add the android-support-v7-mediarouter library to prepare
the Chromecast support
Remote playback: add a HTTP server to serve local media file
Remote playback: add the RemotePlaybackActivity to control remote
playback devices such as a Chromecast
Remote playback: access to the RemotePlaybackActivity through a long
lick on a media in the video grid
Styles: set the default text color of fullscreen activities to white
java-libs/mediarouter/AndroidManifest.xml | 20 ++
java-libs/mediarouter/README.txt | 10 +
java-libs/mediarouter/build.xml | 92 ++++++++
.../libs/android-support-v7-mediarouter.jar | Bin 0 -> 170516 bytes
java-libs/mediarouter/proguard-project.txt | 20 ++
java-libs/mediarouter/project.properties | 16 ++
.../res/drawable-hdpi/mr_ic_audio_vol.png | Bin 0 -> 1515 bytes
.../mr_ic_media_route_disabled_holo_dark.png | Bin 0 -> 543 bytes
.../mr_ic_media_route_disabled_holo_light.png | Bin 0 -> 561 bytes
.../mr_ic_media_route_off_holo_dark.png | Bin 0 -> 497 bytes
.../mr_ic_media_route_off_holo_light.png | Bin 0 -> 637 bytes
.../mr_ic_media_route_on_0_holo_dark.png | Bin 0 -> 543 bytes
.../mr_ic_media_route_on_0_holo_light.png | Bin 0 -> 581 bytes
.../mr_ic_media_route_on_1_holo_dark.png | Bin 0 -> 565 bytes
.../mr_ic_media_route_on_1_holo_light.png | Bin 0 -> 599 bytes
.../mr_ic_media_route_on_2_holo_dark.png | Bin 0 -> 568 bytes
.../mr_ic_media_route_on_2_holo_light.png | Bin 0 -> 622 bytes
.../mr_ic_media_route_on_holo_dark.png | Bin 0 -> 551 bytes
.../mr_ic_media_route_on_holo_light.png | Bin 0 -> 699 bytes
.../res/drawable-mdpi/mr_ic_audio_vol.png | Bin 0 -> 1058 bytes
.../mr_ic_media_route_disabled_holo_dark.png | Bin 0 -> 353 bytes
.../mr_ic_media_route_disabled_holo_light.png | Bin 0 -> 380 bytes
.../mr_ic_media_route_off_holo_dark.png | Bin 0 -> 379 bytes
.../mr_ic_media_route_off_holo_light.png | Bin 0 -> 401 bytes
.../mr_ic_media_route_on_0_holo_dark.png | Bin 0 -> 373 bytes
.../mr_ic_media_route_on_0_holo_light.png | Bin 0 -> 398 bytes
.../mr_ic_media_route_on_1_holo_dark.png | Bin 0 -> 388 bytes
.../mr_ic_media_route_on_1_holo_light.png | Bin 0 -> 401 bytes
.../mr_ic_media_route_on_2_holo_dark.png | Bin 0 -> 383 bytes
.../mr_ic_media_route_on_2_holo_light.png | Bin 0 -> 399 bytes
.../mr_ic_media_route_on_holo_dark.png | Bin 0 -> 402 bytes
.../mr_ic_media_route_on_holo_light.png | Bin 0 -> 438 bytes
.../res/drawable-xhdpi/mr_ic_audio_vol.png | Bin 0 -> 2082 bytes
.../mr_ic_media_route_disabled_holo_dark.png | Bin 0 -> 677 bytes
.../mr_ic_media_route_disabled_holo_light.png | Bin 0 -> 689 bytes
.../mr_ic_media_route_off_holo_dark.png | Bin 0 -> 684 bytes
.../mr_ic_media_route_off_holo_light.png | Bin 0 -> 787 bytes
.../mr_ic_media_route_on_0_holo_dark.png | Bin 0 -> 675 bytes
.../mr_ic_media_route_on_0_holo_light.png | Bin 0 -> 721 bytes
.../mr_ic_media_route_on_1_holo_dark.png | Bin 0 -> 698 bytes
.../mr_ic_media_route_on_1_holo_light.png | Bin 0 -> 719 bytes
.../mr_ic_media_route_on_2_holo_dark.png | Bin 0 -> 712 bytes
.../mr_ic_media_route_on_2_holo_light.png | Bin 0 -> 790 bytes
.../mr_ic_media_route_on_holo_dark.png | Bin 0 -> 686 bytes
.../mr_ic_media_route_on_holo_light.png | Bin 0 -> 857 bytes
.../res/drawable-xxhdpi/mr_ic_audio_vol.png | Bin 0 -> 1690 bytes
.../mr_ic_media_route_disabled_holo_dark.png | Bin 0 -> 1000 bytes
.../mr_ic_media_route_disabled_holo_light.png | Bin 0 -> 1033 bytes
.../mr_ic_media_route_off_holo_dark.png | Bin 0 -> 1067 bytes
.../mr_ic_media_route_off_holo_light.png | Bin 0 -> 1130 bytes
.../mr_ic_media_route_on_0_holo_dark.png | Bin 0 -> 1014 bytes
.../mr_ic_media_route_on_0_holo_light.png | Bin 0 -> 1062 bytes
.../mr_ic_media_route_on_1_holo_dark.png | Bin 0 -> 1043 bytes
.../mr_ic_media_route_on_1_holo_light.png | Bin 0 -> 1093 bytes
.../mr_ic_media_route_on_2_holo_dark.png | Bin 0 -> 1026 bytes
.../mr_ic_media_route_on_2_holo_light.png | Bin 0 -> 1110 bytes
.../mr_ic_media_route_on_holo_dark.png | Bin 0 -> 1148 bytes
.../mr_ic_media_route_on_holo_light.png | Bin 0 -> 1271 bytes
.../mr_ic_media_route_connecting_holo_dark.xml | 24 ++
.../mr_ic_media_route_connecting_holo_light.xml | 24 ++
.../res/drawable/mr_ic_media_route_holo_dark.xml | 25 +++
.../res/drawable/mr_ic_media_route_holo_light.xml | 25 +++
.../mr_media_route_controller_dialog.xml | 60 +++++
.../res/layout-v17/mr_media_route_list_item.xml | 48 ++++
.../res/layout/mr_media_route_chooser_dialog.xml | 41 ++++
.../layout/mr_media_route_controller_dialog.xml | 67 ++++++
.../res/layout/mr_media_route_list_item.xml | 48 ++++
java-libs/mediarouter/res/values-af/strings.xml | 25 +++
java-libs/mediarouter/res/values-am/strings.xml | 25 +++
java-libs/mediarouter/res/values-ar/strings.xml | 25 +++
java-libs/mediarouter/res/values-bg/strings.xml | 25 +++
java-libs/mediarouter/res/values-ca/strings.xml | 25 +++
java-libs/mediarouter/res/values-cs/strings.xml | 25 +++
java-libs/mediarouter/res/values-da/strings.xml | 25 +++
java-libs/mediarouter/res/values-de/strings.xml | 25 +++
java-libs/mediarouter/res/values-el/strings.xml | 25 +++
.../mediarouter/res/values-en-rGB/strings.xml | 25 +++
.../mediarouter/res/values-en-rIN/strings.xml | 25 +++
.../mediarouter/res/values-es-rUS/strings.xml | 25 +++
java-libs/mediarouter/res/values-es/strings.xml | 25 +++
.../mediarouter/res/values-et-rEE/strings.xml | 25 +++
java-libs/mediarouter/res/values-fa/strings.xml | 25 +++
java-libs/mediarouter/res/values-fi/strings.xml | 25 +++
.../mediarouter/res/values-fr-rCA/strings.xml | 25 +++
java-libs/mediarouter/res/values-fr/strings.xml | 25 +++
java-libs/mediarouter/res/values-hi/strings.xml | 25 +++
java-libs/mediarouter/res/values-hr/strings.xml | 25 +++
java-libs/mediarouter/res/values-hu/strings.xml | 25 +++
.../mediarouter/res/values-hy-rAM/strings.xml | 25 +++
java-libs/mediarouter/res/values-in/strings.xml | 25 +++
java-libs/mediarouter/res/values-it/strings.xml | 25 +++
java-libs/mediarouter/res/values-iw/strings.xml | 25 +++
java-libs/mediarouter/res/values-ja/strings.xml | 25 +++
.../mediarouter/res/values-ka-rGE/strings.xml | 25 +++
.../mediarouter/res/values-km-rKH/strings.xml | 25 +++
java-libs/mediarouter/res/values-ko/strings.xml | 25 +++
.../mediarouter/res/values-lo-rLA/strings.xml | 25 +++
java-libs/mediarouter/res/values-lt/strings.xml | 25 +++
java-libs/mediarouter/res/values-lv/strings.xml | 25 +++
.../mediarouter/res/values-mn-rMN/strings.xml | 25 +++
.../mediarouter/res/values-ms-rMY/strings.xml | 25 +++
java-libs/mediarouter/res/values-nb/strings.xml | 25 +++
java-libs/mediarouter/res/values-nl/strings.xml | 25 +++
java-libs/mediarouter/res/values-pl/strings.xml | 25 +++
.../mediarouter/res/values-pt-rPT/strings.xml | 25 +++
java-libs/mediarouter/res/values-pt/strings.xml | 25 +++
java-libs/mediarouter/res/values-ro/strings.xml | 25 +++
java-libs/mediarouter/res/values-ru/strings.xml | 25 +++
java-libs/mediarouter/res/values-sk/strings.xml | 25 +++
java-libs/mediarouter/res/values-sl/strings.xml | 25 +++
java-libs/mediarouter/res/values-sr/strings.xml | 25 +++
java-libs/mediarouter/res/values-sv/strings.xml | 25 +++
java-libs/mediarouter/res/values-sw/strings.xml | 25 +++
java-libs/mediarouter/res/values-th/strings.xml | 25 +++
java-libs/mediarouter/res/values-tl/strings.xml | 25 +++
java-libs/mediarouter/res/values-tr/strings.xml | 25 +++
java-libs/mediarouter/res/values-uk/strings.xml | 25 +++
java-libs/mediarouter/res/values-vi/strings.xml | 25 +++
.../mediarouter/res/values-zh-rCN/strings.xml | 25 +++
.../mediarouter/res/values-zh-rHK/strings.xml | 25 +++
.../mediarouter/res/values-zh-rTW/strings.xml | 25 +++
java-libs/mediarouter/res/values-zu/strings.xml | 25 +++
java-libs/mediarouter/res/values/attrs.xml | 33 +++
java-libs/mediarouter/res/values/strings.xml | 36 +++
java-libs/mediarouter/res/values/styles.xml | 37 ++++
java-libs/mediarouter/res/values/themes.xml | 35 +++
java-libs/mediarouter/src/.readme | 2 +
vlc-android/AndroidManifest.xml | 4 +
vlc-android/project.properties | 1 +
vlc-android/res/menu/video_list.xml | 3 +
vlc-android/res/values/strings.xml | 5 +
vlc-android/res/values/styles.xml | 1 +
.../org/videolan/vlc/RemotePlaybackHTTPServer.java | 181 ++++++++++++++++
.../vlc/gui/video/RemotePlaybackActivity.java | 241 +++++++++++++++++++++
.../videolan/vlc/gui/video/VideoGridFragment.java | 5 +
135 files changed, 2479 insertions(+)
create mode 100644 java-libs/mediarouter/AndroidManifest.xml
create mode 100644 java-libs/mediarouter/README.txt
create mode 100644 java-libs/mediarouter/build.xml
create mode 100644 java-libs/mediarouter/libs/android-support-v7-mediarouter.jar
create mode 100644 java-libs/mediarouter/proguard-project.txt
create mode 100644 java-libs/mediarouter/project.properties
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_audio_vol.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_disabled_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_disabled_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_off_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_off_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_0_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_0_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_1_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_1_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_2_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_2_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-hdpi/mr_ic_media_route_on_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_audio_vol.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_disabled_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_disabled_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_off_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_off_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_0_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_0_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_1_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_1_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_2_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_2_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-mdpi/mr_ic_media_route_on_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_audio_vol.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_disabled_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_disabled_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_off_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_off_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_0_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_0_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_1_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_1_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_2_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_2_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xhdpi/mr_ic_media_route_on_holo_light.png
create mode 100755 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_audio_vol.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_disabled_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_disabled_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_off_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_off_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_0_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_0_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_1_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_1_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_2_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_2_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_holo_dark.png
create mode 100644 java-libs/mediarouter/res/drawable-xxhdpi/mr_ic_media_route_on_holo_light.png
create mode 100644 java-libs/mediarouter/res/drawable/mr_ic_media_route_connecting_holo_dark.xml
create mode 100644 java-libs/mediarouter/res/drawable/mr_ic_media_route_connecting_holo_light.xml
create mode 100644 java-libs/mediarouter/res/drawable/mr_ic_media_route_holo_dark.xml
create mode 100644 java-libs/mediarouter/res/drawable/mr_ic_media_route_holo_light.xml
create mode 100644 java-libs/mediarouter/res/layout-v11/mr_media_route_controller_dialog.xml
create mode 100644 java-libs/mediarouter/res/layout-v17/mr_media_route_list_item.xml
create mode 100644 java-libs/mediarouter/res/layout/mr_media_route_chooser_dialog.xml
create mode 100644 java-libs/mediarouter/res/layout/mr_media_route_controller_dialog.xml
create mode 100644 java-libs/mediarouter/res/layout/mr_media_route_list_item.xml
create mode 100644 java-libs/mediarouter/res/values-af/strings.xml
create mode 100644 java-libs/mediarouter/res/values-am/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ar/strings.xml
create mode 100644 java-libs/mediarouter/res/values-bg/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ca/strings.xml
create mode 100644 java-libs/mediarouter/res/values-cs/strings.xml
create mode 100644 java-libs/mediarouter/res/values-da/strings.xml
create mode 100644 java-libs/mediarouter/res/values-de/strings.xml
create mode 100644 java-libs/mediarouter/res/values-el/strings.xml
create mode 100644 java-libs/mediarouter/res/values-en-rGB/strings.xml
create mode 100644 java-libs/mediarouter/res/values-en-rIN/strings.xml
create mode 100644 java-libs/mediarouter/res/values-es-rUS/strings.xml
create mode 100644 java-libs/mediarouter/res/values-es/strings.xml
create mode 100644 java-libs/mediarouter/res/values-et-rEE/strings.xml
create mode 100644 java-libs/mediarouter/res/values-fa/strings.xml
create mode 100644 java-libs/mediarouter/res/values-fi/strings.xml
create mode 100644 java-libs/mediarouter/res/values-fr-rCA/strings.xml
create mode 100644 java-libs/mediarouter/res/values-fr/strings.xml
create mode 100644 java-libs/mediarouter/res/values-hi/strings.xml
create mode 100644 java-libs/mediarouter/res/values-hr/strings.xml
create mode 100644 java-libs/mediarouter/res/values-hu/strings.xml
create mode 100644 java-libs/mediarouter/res/values-hy-rAM/strings.xml
create mode 100644 java-libs/mediarouter/res/values-in/strings.xml
create mode 100644 java-libs/mediarouter/res/values-it/strings.xml
create mode 100644 java-libs/mediarouter/res/values-iw/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ja/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ka-rGE/strings.xml
create mode 100644 java-libs/mediarouter/res/values-km-rKH/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ko/strings.xml
create mode 100644 java-libs/mediarouter/res/values-lo-rLA/strings.xml
create mode 100644 java-libs/mediarouter/res/values-lt/strings.xml
create mode 100644 java-libs/mediarouter/res/values-lv/strings.xml
create mode 100644 java-libs/mediarouter/res/values-mn-rMN/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ms-rMY/strings.xml
create mode 100644 java-libs/mediarouter/res/values-nb/strings.xml
create mode 100644 java-libs/mediarouter/res/values-nl/strings.xml
create mode 100644 java-libs/mediarouter/res/values-pl/strings.xml
create mode 100644 java-libs/mediarouter/res/values-pt-rPT/strings.xml
create mode 100644 java-libs/mediarouter/res/values-pt/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ro/strings.xml
create mode 100644 java-libs/mediarouter/res/values-ru/strings.xml
create mode 100644 java-libs/mediarouter/res/values-sk/strings.xml
create mode 100644 java-libs/mediarouter/res/values-sl/strings.xml
create mode 100644 java-libs/mediarouter/res/values-sr/strings.xml
create mode 100644 java-libs/mediarouter/res/values-sv/strings.xml
create mode 100644 java-libs/mediarouter/res/values-sw/strings.xml
create mode 100644 java-libs/mediarouter/res/values-th/strings.xml
create mode 100644 java-libs/mediarouter/res/values-tl/strings.xml
create mode 100644 java-libs/mediarouter/res/values-tr/strings.xml
create mode 100644 java-libs/mediarouter/res/values-uk/strings.xml
create mode 100644 java-libs/mediarouter/res/values-vi/strings.xml
create mode 100644 java-libs/mediarouter/res/values-zh-rCN/strings.xml
create mode 100644 java-libs/mediarouter/res/values-zh-rHK/strings.xml
create mode 100644 java-libs/mediarouter/res/values-zh-rTW/strings.xml
create mode 100644 java-libs/mediarouter/res/values-zu/strings.xml
create mode 100644 java-libs/mediarouter/res/values/attrs.xml
create mode 100644 java-libs/mediarouter/res/values/strings.xml
create mode 100644 java-libs/mediarouter/res/values/styles.xml
create mode 100644 java-libs/mediarouter/res/values/themes.xml
create mode 100644 java-libs/mediarouter/src/.readme
create mode 100644 vlc-android/src/org/videolan/vlc/RemotePlaybackHTTPServer.java
create mode 100644 vlc-android/src/org/videolan/vlc/gui/video/RemotePlaybackActivity.java
--
1.9.1
More information about the Android
mailing list