Re: Neo1973 video (was Re: What would be a realistic but challenging level for Bryce announced trophy money for video playback on the Neo1973? Re: h.264 format is now open?)
Since you're going to have to reencode your videos for OpenMoko anyway, they could easily be prerotated in the process. That's what we were doing on the Tapwave Zodiac until the amazing people from CoreCodec worked their magic. On 2/4/07, Ian Stirling [EMAIL PROTECTED] wrote: Mikko Rauhala wrote: la, 2007-02-03 kello 14:47 +0100, Harald Welte kirjoitti: Also, the 770 has a landscape display. We have a portrait display. The S3C2410 cannot rotate the image, so you would have to rotate every frame in software, too! Modifying a player to render the image to be rotated in the first place shouldn't be hard, though perhaps any straightforward way to do that would degrade cache behaviour? (A wild guess.) Also, as re-encoding files spesifically for the Neo would be quite ok with me, rotating at that point would be quite a workable solution also. (I'll add that I don't necessarily expect the Neo1973 to play back decent video and won't blame FIC if it doesn't, but I'll sure _try_ it ;) The comparison I'm using internally - Pentium 100, just about will manage that. I do expect to need to pick codecs very carefully - there won't be much spare. Rotating internally may be the straw that breaks the camels back. OTOH - going down to 12fps isn't _that_ visible on this size of screen, and that helps a fair bit - as does reducing the sound bandwidth, or going mono. _simple_ audio codecs - such as NICAM 728 equivalent - which is 10 bit, stereo companded from 14 bits, at 32Khz - may even be appropriate in some cases - to reduce the load on the CPU, and trade off for bandwidth. ___ OpenMoko community mailing list community@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/community ___ OpenMoko community mailing list community@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/community
Re: Neo1973 video (was Re: What would be a realistic but challenging level for Bryce announced trophy money for video playback on the Neo1973? Re: h.264 format is now open?)
su, 2007-02-04 kello 18:28 -0500, Bryce Leo kirjoitti: I'm sorry guys... but instead of flipping the video or worrying about re-coding... how bout a non-techical solution. Rotate the Device You certainly wouldn't catch me wanting to watch a video in portrait modethat would ruin the whole thing. Why would you want to watch a video in portrait mode? We don't. The framebuffer, however, is in portrait orientation. Hence the need to rotate to landscape at some point, be it at play time in the player or the X server (probably rather the former, efficiency-wise), or at recode time to take some work off of the Neo CPU. -- Mikko Rauhala - [EMAIL PROTECTED] - URL:http://www.iki.fi/mjr/ Transhumanist - WTA member - URL:http://www.transhumanism.org/ Singularitarian - SIAI supporter - URL:http://www.singinst.org/ ___ OpenMoko community mailing list community@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/community
Re: Neo1973 video (was Re: What would be a realistic but challenging level for Bryce announced trophy money for video playback on the Neo1973? Re: h.264 format is now open?)
On Saturday 03 February 2007 15:47, you wrote: Also, the 770 has a landscape display. We have a portrait display. The S3C2410 cannot rotate the image, so you would have to rotate every frame in software, too! That's a good point. Anyway, rotation can be combined with scaling or color format conversion and done in a single pass, so overhead should not be too big. One more solution is rotation at video transcode stage as Mikko suggested. Just for some experiment, I compiled mplayer for arm920t (not using armv5te instructions), and benchmarked it with sdl video output (software YUV-RGB conversion, generic nonoptimized scaling 320x240 = 640x480) and libmad mp3 audio decoder. Please note that the LCM we use in the Neo1973 can do hardware scaling, e.g. theoretically you can software-reconfigure the LCM to behave as QVGA 240x320, and then change the s3c2410_fb kernel driver timings accordingly. If I understand that correctly, it is not arbitrary scaling but support for 240x320 resolution? But as we should first aim at transcoded video support anyway, that would provide some performance improvement. This has not been tested or implemented by us, since we're mainly interested in getting a high-res phone UI working right now :) I clearly understand that :) I guess it is one of the reasons, why you announced early access to the device for open source developers. I hope that some of them would try implementing some video support. However, if somebody skilled wants to write, integrate and test code for this, I'm happy the help. We cannot disclose the LCM data sheet, but I can add the software sequence for 240x320 / 480x640 switching to the [GPL licensed] kernel LCM driver at least after phase-1 (March 11). The S3C2410 user manual is publicly available from Samsung Semiconductors, so basically it's up to whoever is interested to implement it. One interesting question is how to merge this into X11/Kdrive... As far as I understand, only the very latest big (non-kdrive) X11 has randr capabilities for dynamically adding/removing viewports and changing resolutions. [But did I mention that Keith Packard gets a phase-0 phone? *g*] As it seems to be not quite trivial to do, this part of work can wait a bit until some initial video benchmarks are available (centered nonscaled 320x240 video playback vs. software scaled to fullscreen). About integration with x11/kdrive. Nokia 770 also uses kdrive, and implements some extensions to access extra features (pixel doubling). Unfortunately it does not provide access to hardware YUV colorspace (libxv exists, but it is just a stub and does nothing). So right not mplayer on Nokia 770 uses some kind of hack and accesses framebuffer concurrently with x11 server. Synchronization is not perfect, so it is possible to get garbage on the screen when you switch between different applications a lot while mplayer video playback is active. A more clean solution would be to patch xserver to interact with mplayer better to synchronize framebuffer access (kdrive on Nokia 770 already has some patches to synchronize with DSP video decoder used by built-in video player). Maybe I'll try this later. I'm just interested in improving video support for ARM based devices, that's why I posted to this openmoko mailing list . I'm currently trying to integrate a fast scaler for ARM into ffmpeg library (the engine used by mplayer, vlc and the other video players for linux ): http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-January/051209.html So now I'm trying to collect information about what scaling/color conversion functionality would be useful for various devices. Looks like Neo 1973 may need rgb565 = rgb565 scaler, image rotation support and probably yv12 = rgb565 (grayscale). I don't have much free time, so support for just Nokia internet tablets has the highest priority for me. But if anybody else would like to work on the features needed for Neo 1973 video support, I would be glad to help. ___ OpenMoko community mailing list community@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/community
Re: Neo1973 video (was Re: What would be a realistic but challenging level for Bryce announced trophy money for video playback on the Neo1973? Re: h.264 format is now open?)
la, 2007-02-03 kello 14:47 +0100, Harald Welte kirjoitti: Also, the 770 has a landscape display. We have a portrait display. The S3C2410 cannot rotate the image, so you would have to rotate every frame in software, too! Modifying a player to render the image to be rotated in the first place shouldn't be hard, though perhaps any straightforward way to do that would degrade cache behaviour? (A wild guess.) Also, as re-encoding files spesifically for the Neo would be quite ok with me, rotating at that point would be quite a workable solution also. (I'll add that I don't necessarily expect the Neo1973 to play back decent video and won't blame FIC if it doesn't, but I'll sure _try_ it ;) Please note that the LCM we use in the Neo1973 can do hardware scaling, e.g. theoretically you can software-reconfigure the LCM to behave as QVGA 240x320, and then change the s3c2410_fb kernel driver timings accordingly. Now this is excellent news. I asked before if the XVideo extension present on the xdpyinfo output implied scaling support; apparently it didn't, but even having full screen QVGA capability should aid significantly. And yeah, do concentrate on the high-res UI for now, but great if you can at some point provide code/info for the QVGA mode. And Keith getting a p0 phone, that's a nice one too ;) -- Mikko Rauhala - [EMAIL PROTECTED] - URL:http://www.iki.fi/mjr/ Transhumanist - WTA member - URL:http://www.transhumanism.org/ Singularitarian - SIAI supporter - URL:http://www.singinst.org/ ___ OpenMoko community mailing list community@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/community