Register    Login    Forum    Search    FAQ

Board index » General Questions




Post new topic Reply to topic  [ 11 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Android client
 Post Posted: Thu Sep 19, 2013 12:56 pm 
 

Joined: Sun Aug 04, 2013 3:34 pm
Posts: 7
Hi, what is the current state of the Android client, and where is the draft/final specification of the control channel from the Android GA client to the GA server control module? I would like to develop the Android GA client for use with a third year rendering project. Thanks, James.


Top 
 Profile  
 
 Post subject: Re: Android client
 Post Posted: Sun Sep 22, 2013 10:41 am 
 

Joined: Tue Jun 04, 2013 2:07 pm
Posts: 301
Hi,

We are actively developing an Android client and it is almost done. For your request, we will provide a spec for the current controller server implementation. If you are urgent, you can read the data structure defined 'sdlmsg' in ga/module/ctrl-sdl/ctrl-sdl.h

The controller message is basically a 16-byte big endian size plus the sdlmsg structure. However, if you are sending message in TCP, you have to send an initial handshake message, which is a one-byte length plus a fixed length null terminated version string (currently "GACtrlV01").

Best,


Top 
 Profile  
 
 Post Posted: Wed Oct 09, 2013 12:11 pm 
 

Joined: Sun Aug 04, 2013 3:34 pm
Posts: 7
How far along is your android client now? I have successfully compiled the client and server under linux, but receive a segfault on the client everytime I try and connect the client to the stream, whereas mplayer connects fine most of the time (occasionally crashing the ga-server-event-driven). I have not been able to compile the whole client for android, but instead compiled an SDLactivity and tried to connect a VideoView to the server - this fails, complaining it can't find the file although at least it registers with the server - as below. If I can get the VideoView to work then I can just send the sdlmsg separately. Any suggestions?

VideoViewDemo:
10-09 19:45:10.382: I/System.out(24192): path rtsp://192.168.1.66:8554/desktop
10-09 19:45:10.382: V/VideoViewDemo(24192): path: rtsp://192.168.1.66:8554/desktop
10-09 19:45:10.382: I/System.out(24192): else
10-09 19:45:10.422: D/libc(24192): pt_debug : pthread_create->start_routine=0x65ea8ebd, tls=0x6b38cf00, arg=0x67fe66b0
10-09 19:45:10.422: D/libc(24192): pt_debug : __thread_entry->func=0x65ea8ebd
10-09 19:45:10.422: D/libc(24192): , tls=0x6b38cf00, arg=0x67fe66b0
10-09 19:45:10.432: D/memalloc(24192): ion: Mapped buffer base:0x6c200000 size:8355840 offset:0 fd:58
10-09 19:45:10.432: D/memalloc(24192): ion: Mapped buffer base:0x61ca3000 size:4096 offset:0 fd:60
10-09 19:45:10.442: D/MediaPlayer(24192): [DLNA]AP force disable DLNA: FALSE
10-09 19:45:10.442: D/MediaPlayer(24192): [DLNA]Force disable DLNA:
10-09 19:45:10.442: W/MediaPlayer(24192): unknown network type
10-09 19:45:10.442: I/MediaPlayer(24192): skip setting hp
10-09 19:45:10.442: I/MediaPlayer(24192): skip setting rp
10-09 19:45:10.442: I/MediaPlayer(24192): add setting (minudpport,1024)
10-09 19:45:10.442: I/MediaPlayer(24192): add setting (maxudpport,65535)
10-09 19:45:10.442: I/MediaPlayer(24192): add setting (buffertime,7)
10-09 19:45:10.442: I/MediaPlayer(24192): add setting (rtsptimeout,25000)
10-09 19:45:10.442: I/MediaPlayer(24192): add setting (rtptimeout,25000)
10-09 19:45:10.452: I/MediaPlayer(24192): add setting (rtcpreportinterval,3000)
10-09 19:45:10.452: I/MediaPlayer(24192): add setting (rtspkeepaliveinterval,35000)
10-09 19:45:10.452: D/MediaPlayer(24192): Couldn't open file on client side, trying server side
10-09 19:45:10.452: D/MediaPlayer(24192): [DLNA]AP force disable DLNA: FALSE
10-09 19:45:10.452: D/MediaPlayer(24192): [DLNA]Force disable DLNA:
10-09 19:45:10.452: D/MediaPlayer(24192): [DLNA]setDisplay
10-09 19:45:10.452: I/MediaPlayer(24192): setLPAflag() in
10-09 19:45:10.452: D/MediaPlayer(24192): set AwesomePlayer LPA flag to false +
10-09 19:45:10.452: D/MediaPlayer(24192): set AwesomePlayer LPA flag to false -
10-09 19:45:10.452: I/MediaPlayer(24192): setLPAflag() out
10-09 19:45:10.482: D/memalloc(24192): ion: Mapped buffer base:0x6d4fe000 size:8355840 offset:0 fd:63
10-09 19:45:10.482: D/memalloc(24192): ion: Mapped buffer base:0x66a16000 size:4096 offset:0 fd:65
10-09 19:45:10.482: D/MediaPlayer(24192): Mediaplayer receives message, message type: 5
10-09 19:45:10.502: D/memalloc(24192): ion: Mapped buffer base:0x6e605000 size:8355840 offset:0 fd:67
10-09 19:45:10.502: D/memalloc(24192): ion: Mapped buffer base:0x66a17000 size:4096 offset:0 fd:69
10-09 19:45:29.662: D/memalloc(24192): ion: Mapped buffer base:0x6edfd000 size:8355840 offset:0 fd:71
10-09 19:45:29.662: D/memalloc(24192): ion: Mapped buffer base:0x66af0000 size:4096 offset:0 fd:73
10-09 19:46:13.749: E/MediaPlayer(24192): error (1, -2147483648)
10-09 19:46:13.749: D/MediaPlayer(24192): Mediaplayer receives message, message type: 100
10-09 19:46:13.749: E/MediaPlayer(24192): Error (1,-2147483648)
10-09 19:46:13.749: D/VideoView(24192): Error: 1,-2147483648
10-09 19:46:13.860: D/libc(24192): pt_debug : pthread_create->start_routine=0x65ea8ebd, tls=0x6b62af00, arg=0x6b28cab8
10-09 19:46:13.870: D/memalloc(24192): ion: Mapped buffer base:0x6b62b000 size:1892352 offset:0 fd:76
10-09 19:46:13.870: D/memalloc(24192): ion: Mapped buffer base:0x66e41000 size:4096 offset:0 fd:78
10-09 19:46:13.870: D/libc(24192): pt_debug : __thread_entry->func=0x65ea8ebd
10-09 19:46:13.870: D/libc(24192): , tls=0x6b62af00, arg=0x6b28cab8
10-09 19:46:13.910: D/memalloc(24192): ion: Mapped buffer base:0x6cbf8000 size:1892352 offset:0 fd:80
10-09 19:46:13.910: D/memalloc(24192): ion: Mapped buffer base:0x66f76000 size:4096 offset:0 fd:82
10-09 19:46:41.389: D/memalloc(24192): ion: Mapped buffer base:0x6dcf6000 size:1892352 offset:0 fd:84
10-09 19:46:41.389: D/memalloc(24192): ion: Mapped buffer base:0x674b8000 size:4096 offset:0 fd:86
10-09 19:46:41.469: D/memalloc(24192): ion: Mapped buffer base:0x6dec4000 size:1892352 offset:0 fd:88
10-09 19:46:41.469: D/memalloc(24192): ion: Mapped buffer base:0x67bc1000 size:4096 offset:0 fd:90

ga-server-event-driven:
30378] 1381299894.743664 SDL_Event: ActiveEvent - state:1 gain:0
# [30378] 1381299898.024819 *** set TCP sending buffer success.
# [30378] 1381299898.031983 vencoder-init: option b = 4000000
# [30378] 1381299898.032059 vencoder-init: option g = 48
# [30378] 1381299898.032082 vencoder-init: option intra-refresh = 1
# [30378] 1381299898.032108 vencoder-init: option intra_refresh = 1
# [30378] 1381299898.032128 vencoder-init: option me_method = dia
# [30378] 1381299898.032148 vencoder-init: option me_range = 16
# [30378] 1381299898.032172 vencoder-init: option preset = ultrafast
# [30378] 1381299898.032193 vencoder-init: option profile = baseline
# [30378] 1381299898.032215 vencoder-init: option refs = 1
# [30378] 1381299898.032239 vencoder-init: option slices = 4
# [30378] 1381299898.032261 vencoder-init: option threads = 4
# [30378] 1381299898.032286 vencoder-init: option tune = zerolatency
[libx264 @ 0xad803e80] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 SlowShuffle
[libx264 @ 0xad803e80] profile Constrained Baseline, level 3.1
[libx264 @ 0xad803e80] 264 - core 133 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=48 keyint_min=4 scenecut=0 intra_refresh=1 rc=abr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
# [30378] 1381299898.094109 [tid 30426] client connected from 192.168.1.1:42602
# [30378] 1381299898.095117 DESCRIBE rtsp://192.168.1.66:8554/desktop RTSP/1.0
# [30378] 1381299898.382727 encoder client unregistered: 0 clients left.
# [30378] 1381299898.382767 encoder: no more clients, quitting ...
# [30378] 1381299898.382777 encoder: all threads terminated.
[libx264 @ 0xad803e80] final ratefactor: 15.29
# [30378] 1381299898.383382 RTSP client thread terminated.
# [30378] 1381299939.946700 *** set TCP sending buffer success.
# [30378] 1381299939.949284 vencoder-init: option b = 4000000
# [30378] 1381299939.950620 vencoder-init: option g = 48
# [30378] 1381299939.950793 vencoder-init: option intra-refresh = 1
# [30378] 1381299939.950939 vencoder-init: option intra_refresh = 1
# [30378] 1381299939.951126 vencoder-init: option me_method = dia
# [30378] 1381299939.951280 vencoder-init: option me_range = 16
# [30378] 1381299939.951423 vencoder-init: option preset = ultrafast
# [30378] 1381299939.951584 vencoder-init: option profile = baseline
# [30378] 1381299939.951734 vencoder-init: option refs = 1
# [30378] 1381299939.951883 vencoder-init: option slices = 4
# [30378] 1381299939.952029 vencoder-init: option threads = 4
# [30378] 1381299939.952169 vencoder-init: option tune = zerolatency
[libx264 @ 0xad803e80] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 SlowShuffle
[libx264 @ 0xad803e80] profile Constrained Baseline, level 3.1
[libx264 @ 0xad803e80] 264 - core 133 - H.264/MPEG-4 AVC codec - Copyleft 2003-2013 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=4 lookahead_threads=4 sliced_threads=1 slices=4 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=48 keyint_min=4 scenecut=0 intra_refresh=1 rc=abr mbtree=0 bitrate=4000 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
# [30378] 1381299940.027781 [tid 30438] client connected from 192.168.1.1:42603
# [30378] 1381299940.028674 DESCRIBE rtsp://192.168.1.66:8554/desktop RTSP/1.0
# [30378] 1381299940.323708 encoder client unregistered: 0 clients left.
# [30378] 1381299940.323794 encoder: no more clients, quitting ...
# [30378] 1381299940.323804 encoder: all threads terminated.
[libx264 @ 0xad803e80] final ratefactor: 15.29
# [30378] 1381299940.327885 RTSP client thread terminated.
# [30378] 1381299946.820266 SDL_Event: ActiveEvent - state:1 gain:1


Top 
 Profile  
 
 Post subject: Re: Android client
 Post Posted: Thu Oct 10, 2013 6:06 am 
 

Joined: Sun Aug 04, 2013 3:34 pm
Posts: 7
Here is a link to supported formats for VideoView:
http://developer.android.com/guide/appe ... rmats.html
It seems that 3Mbit, 30fps is the upper limit...
Do you have a server configuration for streaming to android devices that fits the VideoView requirements I could try? I'm using an HTCone (supports api level 16).


Top 
 Profile  
 
 Post subject: Re: Android client
 Post Posted: Thu Oct 10, 2013 6:01 pm 
 

Joined: Sun Aug 04, 2013 3:34 pm
Posts: 7
I have MXplayer for android version 1.7.19 ARMv7 NEON connectioning to the GamingAnywhere server without problems, although it is buffering frames so not as responsive as the GA client would be, but using hardware decoding. VideoView is still complaining...


Top 
 Profile  
 
 Post subject: Re: Android client
 Post Posted: Thu Oct 10, 2013 10:17 pm 
 

Joined: Tue Jun 04, 2013 2:07 pm
Posts: 301
Hi,

We have a working client in alpha stage now. Basically we implement the RTSP/RTP receiver with live555 and decode the received frames by using MediaCodec, which decodes h.264 with hardware decoders if possible. If you are interested in our preliminary alpha version, you may send me an email at chuang@ntou.edu.tw. I will send you a binary copy.

Chun-Ying


Top 
 Profile  
 
 Post subject: Re: Android client
 Post Posted: Thu Jan 29, 2015 3:58 pm 
 

Joined: Thu Jan 29, 2015 3:49 pm
Posts: 1
Not sure if you are working with hook-mode audio or shared-mode access audio. The delay could happen if you are working with shared-mode access, and it should be better if you are working with hook-mode. However, hook-mode is not supported for all games.

_________________
certkiller.org Microsoft 70-480 Braindump JN0-660 Braindumps JK0-801 Dumps C2010-571 Training 500-051 Practice Test 3C00120A


Top 
 Profile  
 
Display posts from previous:  Sort by  
 
Post new topic Reply to topic  [ 11 posts ]  Go to page 1, 2  Next

Board index » General Questions


 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
cron