locked
No Video Decoded from Elementary Stream RRS feed

  • Question

  • Hi,

    I run into an abyss. I parsed TS packets, and extracted video (MPEG2 video) payloads and send to video decoder. But no rendering. I need expertise in this area to point me a direction or possible cause.

    The sample I send to Video Decoder Input Pin starts with 00 00 01 00, which is Picrture Start Code. and It contains many slice start code from 00 00 01 01 to 00 00 01 1e. after 1e is 42  58 18 60 36 00 00 00 00 00
    Then it comes a new picture start code 00 00 01 00 ....
     
    I don't see any sequence header code and sequence end code. which are (00 00 01 B3 and 00 00 01 B7)

    Is it possible that no picture rendered is because PCR or timestamps are not set right?

    Thanks in advace.
    David.tac
    • Edited by The March Hare Wednesday, July 1, 2009 1:50 AM fix spelling in title
    Tuesday, June 30, 2009 3:53 PM

Answers

  • Hi David.tac,

    MPEG-2 video decoders can not decode payloads without sequence header.  The TS parser needs to provide some headers prior to picture header.

    Video renderers immediately present received pictures when the pictures don't have timestamp.  So the issue would not be resolved even if the TS parser provides timestamp correctly.
    eijit
    • Marked as answer by david.tac Wednesday, July 1, 2009 8:16 PM
    Wednesday, July 1, 2009 2:12 PM

All replies

  • Hi David.tac,

    MPEG-2 video decoders can not decode payloads without sequence header.  The TS parser needs to provide some headers prior to picture header.

    Video renderers immediately present received pictures when the pictures don't have timestamp.  So the issue would not be resolved even if the TS parser provides timestamp correctly.
    eijit
    • Marked as answer by david.tac Wednesday, July 1, 2009 8:16 PM
    Wednesday, July 1, 2009 2:12 PM
  • Hi Eijit,

    Thank you for your reply.

    I found some errors in parsing of TS to ES. I had a BMP rendered, so now I know it is parsing that caused no video rendered.

    But I still have one question or something I am not very clear:

    When I parse the TS, I found a lot of Payload data bytes for The MPEG2 video stream. I decoded TS packets an dfound the very first Sequence Start Code is at 4013th TS packets. According to Video Decoder Specification of MPEG2, Video is only to be decoded with the beginning of Sequence Start Code (000001B3). So I am wandering what is used for with all the payload data bytes for the video stream before the very first Sequence Start Code? Can these payloads be ignored? i.e. Not to be send to video decoder?

    Thank you again.
    david.tac



    • Edited by david.tac Wednesday, July 1, 2009 3:55 PM to clarify
    Wednesday, July 1, 2009 3:53 PM
  • It's rendering now. But there are some issues, such as some Macroblocks are missing. It can tell from the quality of rendering. Although it only misses very small amount of data. I am wandering it is related to the beginning of PES payloads before the actual sequence start code.

    Thank you,
    david.tac

    Wednesday, July 1, 2009 6:53 PM
  • hi david.tac,

    I am also facing the same problem i am not getting the start sequence code at the start and its comming somewhere in middle of TS packets .kindly let me know how u solved the problem

    thanx in advance
    raja
    Monday, December 28, 2009 3:56 PM
  • HI Raja,

    There are many detailed things. It has been some time. I recommend you download Intel IPP Package, which contains most decoders you need. To write your own is difficult to be robust. If you have good reason to do your own, I may review and find out some tips or I may give a piece of example.


    david.tac
    Tuesday, December 29, 2009 9:55 PM