This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP-L138 video on SVGA resolution screen.

Other Parts Discussed in Thread: OMAP-L138Hi, We are working with an OMAP-L138 (456 MHz speedgrade) and dvsdk 4.02.00.06. We have an 800x600 LCD screen and framebuffer driver. Our customer would like to play a H264 video, ideally, using the entire screen at 24 fps. However, there is no decoder for 800x600 resolution. We have tried (with some success) to decode a VGA (640x480) H264 video with the following gstreamer sequence:
#!/bin/sh
gst-launch filesrc location=$1 \
! qtdemux name=demux demux.video_00 \
! typefind \
! TIViddec2 \
! dmaiperf print-arm-load=TRUE engine-name=codecServer \
! TIC6xColorspace engineName=codecServer \
! videoscale \
! 'video/x-raw-rgb, width=800, height=600' \
! tidisplaysink2 -v video-standard=auto display-output=LCD mmap-buffer=true

The results are promising: we observe 24 fps and the video seems to play with the DSP at ~75% load, the ARM at about 25% load. However, it is not rescaled. And it is still shown in 640x480 resolution on the screen.

Some Questions:

  1. We tried using the TIVidResize codec, but it fails immediately. My guess is that it only supports devices with hardware resizers. Is there a DSP based resizer that could be used?
  2. Is there a way to center the VGA resolution video if no resizing is possible (instead of having it played on the top left)?
  3. We can re-encode the video to another codec type (mpeg, etc.) if needed. Are there any TI codecs that might support SVGA resolution?

Any insight or suggestions would be greatly appreciated.
Thanks. -Mike

  • Update:

    I modified the dmai routines in the omap-l138 area (Framecopy_accel.c and the Display_fbdev.c) to allow sending data to larger screens (instead of attempting to resize) and altering the dim.x and dim.y locations on the destination framebuffer.  This now centers the 640x480 video onto the 800x600 display, and allows me to remove the videoscale element in the pipeline.  Looks like for rescaling the video, a codec is needed and none appear to be available for the C64x.  Is this correct?

    -Mike

     

  • Mike,

     

        Just FYI: The OMAP-L138 has a C674x core not a C64x core. Regarding Codecs, I'm not sure if one is available explicitly for the C674x core, however you might want to check out Codec Engine Wiki as there may be some leads there.

  • Hi Drew,

    I thought the C674x core was a superset of the C67x+ and C64x+ ISAs, so any C64x+ core would work with a C674x based processor? Right?

    But you're correct, I should have said C674x.

    Thanks.

    -Mike

  • Mike,

     

     You're correct as well, just a matter of terminology here.

    The C674x is backward compatible from the application binary standpoint. Binary compatibility allows one to  use the SW available for both 64x+ and 67x+ platforms & Ensures reuse of legacy SW developed on prior C6x cores.

    I haven't going through the details of the ISA differences yet, but there may be additional instructions that are available in the C674x core that were not in the C64x+/C67x+.

  • So back to your question - were you able to find a codec that will work for you from the existing software?

  • Well,

    I looked here as well as in the codecs directory on the DVSDK, and there doesn't appear to be a resizer for any DSP.  The only one I have found is the tivideoscale which appears to only work with processors having hardware resizers built in.  I think I may be out of luck (and learning how to write a codec for the TI codec engine framework... :^( ).  Fortunately, resizing is a well understood problem, so I only have to overcome learning about the frameworks and the video exchange interface.  I was hoping maybe someone smarter than me at TI had already solved this as it seems like a pretty common function.

    -Mike

     

  • Mike,

     

        You might want to look around on the TI processors.wiki.ti.com Wiki for Codec Engine canned drivers available. If one was written, you're probably right that it was for a device specifically designed to handle video with hardware accelorator. Best of luck.