Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[XAP / BETA] WP7 Screen recorder (Based on "The DllImport Project")

OP fiinix

22nd June 2011, 01:41 AM   |  #1  
fiinix's Avatar
OP Retired Recognized Developer
Flag Stockholm
Thanks Meter: 226
 
569 posts
Join Date:Joined: Oct 2010
Donate to Me
More
WP7 Screen recorder program


>Zomg, the Chinese could not program good fps...
>So i super optimized the **** code of theirs.

Application features

* Full-screen mode "F11"
* Presentation-mode background color chooser. (Useful in F11 mode)
* Great features on UI (The cn version suck'ed with UI)
* Chose what IP port WP7<>Server talk over
* See frames count' received
* Start/Stop server at any time to continue later -button
* More than 2.3 (old) 4 fps (stable fps)! Yay.


BETA Preview (Watch via Youtube for 720p; damn 4:3 ratio):


Cable free demo (works kind of well) (depends on wifi latency for FPS)


Randoms:
>My rage post about how they cant code: http://forum.xda-developers.com/show...6&postcount=75
>This is the result, many extra fps (more to come), yay.


- Server is always backwards compatibility -

Fixed-list

- (v0.2) WP-Client: More frames, less lagg.
- (v0.3) WP-Client: -^- and now a idle fps @ 5.1~ YEAH (my phone, inside app)
> Added more cross-device compatibility for dehydration hack (forgot native dll's, remembered today, so i fixed them too)
> CSharp___DllImport.Dehydrator.AllowMultitasking = true; (threw exception's, gone now ^)
Last edited by fiinix; 11th July 2011 at 11:51 PM.
The Following 15 Users Say Thank You to fiinix For This Useful Post: [ View ]
22nd June 2011, 04:19 AM   |  #2  
Dwight2001's Avatar
Senior Member
Flag Richmond, VA
Thanks Meter: 1
 
150 posts
Join Date:Joined: Aug 2007
More
This is huge can't wait!!
22nd June 2011, 09:14 AM   |  #3  
ninjy's Avatar
Senior Member
Flag Paris
Thanks Meter: 24
 
102 posts
Join Date:Joined: Jan 2011
More
This will work with games ?
22nd June 2011, 12:08 PM   |  #4  
fiinix's Avatar
OP Retired Recognized Developer
Flag Stockholm
Thanks Meter: 226
 
569 posts
Join Date:Joined: Oct 2010
Donate to Me
More
Quote:
Originally Posted by ninjy

This will work with games ?

It captures frames globally on the phone, wherever you are; games, yes, but the wifi limitations etc holds the fps down. Later i will take milliseconds benchmark to see where all the functions are un-optimized.
The Following User Says Thank You to fiinix For This Useful Post: [ View ]
22nd June 2011, 12:47 PM   |  #5  
the0ne's Avatar
Senior Member
Flag Melbourne
Thanks Meter: 52
 
843 posts
Join Date:Joined: Jan 2007
More
nice work mate
22nd June 2011, 01:31 PM   |  #6  
ninjy's Avatar
Senior Member
Flag Paris
Thanks Meter: 24
 
102 posts
Join Date:Joined: Jan 2011
More
I ask this because the Screen capture program based on "The DllImport Project" too can't capture games, probably due to DirectX.
22nd June 2011, 01:39 PM   |  #7  
Junior Member
Thanks Meter: 5
 
4 posts
Join Date:Joined: Mar 2009
Nice work...
22nd June 2011, 02:58 PM   |  #8  
fiinix's Avatar
OP Retired Recognized Developer
Flag Stockholm
Thanks Meter: 226
 
569 posts
Join Date:Joined: Oct 2010
Donate to Me
More
Duration taken for 1 thread render: 21.295 sec
Duration taken for 2 thread render: 20.232 sec

Saves 1 sec total per 100 frames (according to yesterdays benchmark compared with today's new code)
>Going for the better =D

1 frame = 0,2023 sec (200 ms) (fully rendered)

>Stack where the most time is wasted
>Sending it back to server, need multi-thread there toooo

Eh, not the server transmit
>4.586 sec for 100 frames (static frame) (way to fast)
>0,04586 sec for 1 frame (45,86 milliseconds)


105,4 ms goes to "Phone.Screen.GetCaptureBytes(out buffer);"

+ So thats:
* 202 ms (get & render pixels)
* 45 ms (send pixels)
- Total of: 246 ms
> Average of 4,065 fps

Code:
var t = new Phone.Timers.HiPerfTimer();
t.Start();
for (int i = 0; i < 100; i++)
{
    first = CaptureData();
}
t.Stop();
More soon; and a release very soon.
Last edited by fiinix; 22nd June 2011 at 04:35 PM.
22nd June 2011, 03:29 PM   |  #9  
Ddriver's Avatar
Senior Member
Thanks Meter: 23
 
382 posts
Join Date:Joined: Mar 2005
More
Cool, waiting for it.

Sent from my WP7 HTC Mozart using XDA Windows Phone 7 App
22nd June 2011, 04:21 PM   |  #10  
Junior Member
Thanks Meter: 3
 
29 posts
Join Date:Joined: Mar 2011
Quote:
Originally Posted by fiinix

Duration taken for 1 thread render: 21.295 sec
Duration taken for 2 thread render: 20.232 sec

What exactly are you rendering? cant you send the data as defalte stream to the server and render there?

Also why 2 threads for this slow operation any way?

Quote:
Originally Posted by fiinix

105,4 ms goes to "Phone.Screen.GetCaptureBytes(out buffer);"

+ So thats:
* 202 ms (get & render pixels)
* 45 ms (send pixels)
- Total of: 246 ms
> Average of 4,065 ms

Your goal should be 105,4 ms since thats the upper bound.

Call Phone.Screen.GetCaptureBytes(out buffer); in 1 thread and fill a ring buffer with the info 3 to X elements.

Use antother thread to get them from this buffer, and send them. should be 120 ms then.

If i get something really wrong, please let me know, if you need help with multi threading stuff let me know.

regards.

Post Reply Subscribe to Thread

Tags
wp7 screen recorder recx
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes