I have a H.264 bitstream generated by an encoder which canot be decoded by UMC decoder. I am not sure exactly why its failing. I can decode the bitstream with ffmpeg, vlc, JM decoder andVega analyzer.
I have attached the ES. I have also attached the debug trace from the UMC decoder.
I have attached the ES. I have also attached the debug trace from the UMC decoder.
連結已複製
10 回應
Hi Chao
(1) The error log is from the same bitstream I have attached and not from a MPEG-2 TS. I enableddebugging in UMC and that is the debug log message I see.
(2) Yes there are many error messages from ffmepeg but it can eventually start decoding. As I mentioned, this is a network capture so a decoder is bound to receive some invalid data initiallly until it can find an SPS/PPS/IDR. And UMC does decode some of my network captures correctly in other cases.
Did you try to decode the attachedbitstream with UMC?
Thanks,
-Purvin
(1) The error log is from the same bitstream I have attached and not from a MPEG-2 TS. I enableddebugging in UMC and that is the debug log message I see.
(2) Yes there are many error messages from ffmepeg but it can eventually start decoding. As I mentioned, this is a network capture so a decoder is bound to receive some invalid data initiallly until it can find an SPS/PPS/IDR. And UMC does decode some of my network captures correctly in other cases.
Did you try to decode the attachedbitstream with UMC?
Thanks,
-Purvin
Ok I think I have found the problem.
The problem is that the UMC decoder (for some reason)allowsonly the 1st 14 (0- 13)values for the aspec ratio as specified in Table E-1 of the spec:
The problem is that the UMC decoder (for some reason)allowsonly the 1st 14 (0- 13)values for the aspec ratio as specified in Table E-1 of the spec:
const Ipp16u H264ParsingCore::AspectRatio[14][2] = {
{ 1, 1}, { 1, 1}, {12, 11}, {10, 11}, {16, 11}, {40, 33}, { 24, 11},
{20, 11}, {32, 11}, {80, 33}, {18, 11}, {15, 11}, {64, 33}, {160, 99},
};
The bitstream that I have attached has the syntax set to 14 which is considered an invalid bitstream by UMC decoder. I do not know why the values 14, 15 and 16 are not supported but simply extending the array and setting the right values as below fixes the problem.
const Ipp16u H264ParsingCore::AspectRatio[17][2] = {
{ 1, 1}, { 1, 1}, {12, 11}, {10, 11}, {16, 11}, {40, 33}, { 24, 11},
{20, 11}, {32, 11}, {80, 33}, {18, 11}, {15, 11}, {64, 33}, {160, 99},
{4, 3}, {3, 2}, {2, 1}
};
Thanks,
-Purvin
