Rockbox Development > Starting Development and Compiling
huge mpegplayer speedup
gnif:
I have been playing around with the mpegplayer code, and as a test, I commented out the vo_draw_frame call in the video thread in the hopes of seeing how big a bottleneck it is... i then compiled it and copied it to my G5 iPod Video... expecting to have no video output, but still see framerate... etc.
This is where it gets weird... there is still video out! and its FAST! I have turned off frame skipping, and frame limiting and the test video I am using is getting WAY ahead of the audio stream.
So, to double check what the hell is going on, I commented out all the code in "vo_draw_frame", and tried again... still got video output, and still fast!
I mean, What the hell?? Am I doing somthing wrong, or have I stumbled upon a useless call that isnt really doing anything other then slow it all down?
Oh, and where is the video getting outputted? is the buffer that its decoding into, actually mapped to the framebuffer?
gnif:
I must be an idiot... I have been searching through all the mplayer source... and still cant find where it is outputting the video.
linuxstb:
I can't explain what you're experiencing.
vo_draw_frame (implemented in video_out_rockbox.c) is the only function that renders the video on the LCD.
Maybe something has gone wrong with your compiling/installing? Also, check if you have the "Limit FPS" option turned on. If this is off, then (depending on the speed of your device relative to its LCD size) video may be decoded faster than realtime.
If you are 100% sure you've done what you say you've done, you could post a patch including your changes to the mpegplayer source so others can try and replicate it.
misterpink:
You're not being an idiot. I get the exact same thing. Commented out the functions definition and where it gets called and recompiled. On my gigabeat it seems to run a lot faster when you have both options switched to off, but I can't say how fast as it seems to break the fps counter- it just keeps increasing, it's currently reading over 1000 fps.
Oddly the video just keeps looping, I've been through Elephants Dream twice now in next to no time. Actually, having not watched it before properly I'm not convinced that its not just playing the first buffer-full of data over and over.
Also seems to be not entirely reproducible. Restarted my gigabeat and tried it again and it played normally. Quit, played it again, and it played really fast. Did you have headphones plugged in? That seems to make some difference for me bizarrely...
linuxstb:
Could either of you post a patch showing what you've done?
I've commented out the call in mpegplayer.c to vo_draw_frame() and as expected, I get no video displayed...
Navigation
[0] Message Index
[#] Next page
Go to full version