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.

Decode multiple H.264 streams and do PiP

Hello community,

our company thinks about buying a DM6467(T) EVM. But before we need to know, if it is possible to decode multiple (at least 2) H.264 streams (1080p, maybe over RTP) an do some kind of picture-in-picture on the Display? I did some research and gstreamer seems to be suited for this. Are the decoded images accessible before they are displayed? To do some kind of overlay, with text for example. Is there some other RTP-library available, if gstreamer can't be used?

Another thing, is there a nice IDE or an Eclipse-plugin, or something else (for Linux hosts)?

EDIT: Is there an Option for an HDMI-Output?

Maybe someone can help me to clarify that things.

 

Best Regards,

Dennis

 

 

  • Dennis35523 said:
    But before we need to know, if it is possible to decode multiple (at least 2) H.264 streams (1080p, maybe over RTP) an do some kind of picture-in-picture on the Display?

    When you say 1080p, what frame rate are you looking for? In general I do not know of any plans for multi channel 1080p decode, though from a performance perspective this is probably possible if the frame rate is low enough, I don't believe you would be able to achieve 2x 1080p60 however.

    Dennis35523 said:
    Are the decoded images accessible before they are displayed? To do some kind of overlay, with text for example.

    I have not done much work with GStreamer but I suspect this is possible, it seems logical that GStreamer would not be tied heavily to the display itself, I suspect it just gives you an output buffer that you pass into the display driver. In the worst case GStreamer is all open source so it could be adjusted to meet your needs.

    Dennis35523 said:
    Another thing, is there a nice IDE or an Eclipse-plugin, or something else (for Linux hosts)?

    There are a variety of IDEs out there, which is best depends on your needs and what software stack you are running, if you are using the out of the box DVSDK stack I would probably take a look at Code Sourcery, as they are the tool chain provider for the DM6467T DVSDK and offer a Linux debug IDE. There are other options however, like Green Hills Multi, though most of my debugging is at a lower level with just print statements and such.

    Dennis35523 said:
    EDIT: Is there an Option for an HDMI-Output?

    Currently there is no out of the box option for HDMI, this would have to be implemented with custom hardware.

  • Thanks for the answer. The target should be 1080p30. Another question: Does the provided H.264-Codec support alpha-data for transparency?

    No HDMI-Output..hmm..this is bad. But is there an option to drive normal TFTs (VGA,D-Sub)? I only saw the component-output (RGB?/YCbCr?).

    edit: Is it possible to decode different streams with different codecs at the same time, I mean hardware-accelerated with the DSP? I guess a software-only solution on the ARM-side could do it, but that would be too slow.

  • Dennis35523 said:
    Does the provided H.264-Codec support alpha-data for transparency?

    I don't see any specific mention of alpha data support in the h.264 decoder documentation, you may want to ask this over in the codecs forum.

    Dennis35523 said:
    But is there an option to drive normal TFTs (VGA,D-Sub)? I only saw the component-output (RGB?/YCbCr?).

    This has an answer roughly similar to the HDMI, it is possible, but we don't have any implementation for it, so it would require custom hardware and software.

    Dennis35523 said:
    Is it possible to decode different streams with different codecs at the same time, I mean hardware-accelerated with the DSP? I guess a software-only solution on the ARM-side could do it, but that would be too slow.

    The TI codec should be usable for multiple streams at the same time, the documentation mentions that it can be instanced multiple times for multi channel applications, though I do not know of any examples exercising it in this way. I am not sure of the overhead when using multiple instances, two 1080p30 streams may have bandwidth problems, but without testing it is hard to say if it really would or would not work at that rate.

    H264 DM6467 Decoder User's Guide said:
    Can the decoder be used for multi-channel applications?
    Yes, the TI decoder can be used for multi-channel applications. The application can create multiple instances of the codec without any change in the codec library.

  • Thanks for the answer. Ok, so decoding should work, but what about mixing different videos (and images) together to one output? I read there is no hardware muxer for videos, so everything has to be done in software, right? Like DMA-transfers from one buffer to another?

  • Dennis35523 said:
    what about mixing different videos (and images) together to one output? I read there is no hardware muxer for videos, so everything has to be done in software, right? Like DMA-transfers from one buffer to another?

    This is true, the DM6467 does not have the advanced OSD hardware found on many of the other Davinci class devices which allows for a real time muxing of video and graphics streams in hardware, so an implementation of picture in picture would have to be done in software. If you are just putting one video on top of another on the display than leveraging the DMA seems like a reasonable option, though if you want any sort of alpha blending that would have to be done with CPU cycles.