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.

profile & level in sequence header

Guru 20755 points

Hello,

I would like your help in understanding some general issue, with the codec sequence header. As I understand the sequence header contains parameters of the coding such as profile and level. The thing is that also transport stream contain profile and level in its headers. I would like to understand what is the connection between profile/level in sequence header to profile/level in transport stream. I assume the decoder codec use the parameterss in sequence header for decoding, so why does transport stream also uses the profile/level?

Thank you very much,

Ran

  • Hi Ran,

    Can you tell which transport stream header you are referring here. Ideally, any transport stream header should not have different value than what is in the sequence header of the elementary stream. 

    Yes, the decoder uses the elementary stream sequence header to decode the stream.

    regards

    Yashwant

  • Hi Yashwant,

    I am using mpeg-2 transport stream.

    1. As I understand the information there is just for metadata and is not used at all but the decoder, right?

    2. The codec decoder use the sequence header as you said, but this is something a bit confusing, because I see that there are other parameters such as profile, resolution that are input the codec. why is there a profile input parameter, for example ? Are all input parameters listed in IVIDDEC3_Params ?

    Thank you very much for your time,

    Ran

  • Decoder instance needs to be created before one feeds the stream to it. By creation it means that it has all the memory allocated which are required for its operation. At the same time the amount of memory to be allocated deepnds on the resolution and profile/level. So to create one need to supply the parameters  - there are more of operating use cas ebased parameters and should be the upper limit of your application. Actual operating resolution, profile level are decoded by decoder while decoding the stream and used. The only condition for decoder to behave right is that the resolution and level with which decoder is created should not be smaller than the one appearing in stream.

    With regards,
    pramod

  • Hi Pramod,

    >The only condition for decoder to behave right is that the resolution and level with which decoder is created should not be smaller than the one appearing in stream.

    And what about the profile , i.e. if profile is different than the profile that it was created with, is it a problem (in terms of required memory ) ?

    Thanks,

    Ran

  • Ran,

    In our decoder implementations, memory requirements is mainly driven by level at which decoder get created by user. Importance is not given to profile.

    Even if the create time profile is different from profile of the stream, decoding continues.

    Please mention the device you are referring to, in your queries, so that we can give you exact answers. There could be small difference in behaviors based on the device.

    - Pavan