Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

H264 Baseline Profile

vardar
Beginner
454 Views
Hello all,
I'll be happy that if someone can provide me parameters for H264enc, which produces baseline profile stream.
Setting profile_idc to 66 and level to 0 seems to not work.
When I check produced stream in sequence header I can see profile as 42 (hexa).
When I push this stream to external system for decoding I frames are decoded successfully, but P frames failed to decode. So I believe I'm missing something.
p.s. External system can decode other baseline H264 streams coming from other encoders.
Thanks in advance,
-victor
0 Kudos
1 Solution
Chao_Y_Intel
Moderator
454 Views

Hi Victor,

Baseline profile is supported in the UMC sample. The problem happens, because besides the profile_idc and level setting, there are some other restriction to create a base line video. If some high level encoding tools are used, the encoder may change it to high level profile:

Could you have a check on the following file?

\codec\h264_enc\include\umc_h264_video_encoder_tmpl.cpp.h

In function:

Status H264ENC_MAKE_NAME(H264CoreEncoder_CheckEncoderParameters)( void* state)

On profile check part:

bool profile_check = true;

while( profile_check ){

.

}

You can run it with your parameter setting, and see if the encoder changed it to other profiles.

Thanks,
Chao

View solution in original post

0 Kudos
1 Reply
Chao_Y_Intel
Moderator
455 Views

Hi Victor,

Baseline profile is supported in the UMC sample. The problem happens, because besides the profile_idc and level setting, there are some other restriction to create a base line video. If some high level encoding tools are used, the encoder may change it to high level profile:

Could you have a check on the following file?

\codec\h264_enc\include\umc_h264_video_encoder_tmpl.cpp.h

In function:

Status H264ENC_MAKE_NAME(H264CoreEncoder_CheckEncoderParameters)( void* state)

On profile check part:

bool profile_check = true;

while( profile_check ){

.

}

You can run it with your parameter setting, and see if the encoder changed it to other profiles.

Thanks,
Chao

0 Kudos
Reply