ittiam-systems / libmpegh

MPEG-H 3D Audio Low Complexity Profile Decoder. Encoder: https://github.com/ittiam-systems/libmpeghe
http://www.ittiam.com/
BSD 3-Clause Clear License
88 stars 18 forks source link

Some mpegh conformance streams fail to decode #30

Closed amiartus closed 1 year ago

amiartus commented 1 year ago

Hello,

I have tried to decode mhas files from conformance streams downloaded from:

https://standards.iso.org/iso-iec/23008/-9/ed-2/en/

on latest main 89395c1fc9a09330565200cbde032ffdebd9c1b2

following commands fail:

ia_mpeghd_testbench -ifile:O20_3_FD.mhas -ofile:O20_3_FD.mhas.wav ia_mpeghd_testbench -ifile:C2_5_FD_Tcc-2.mhas -ofile:C2_5_FD_Tcc-2.mhas.wav ia_mpeghd_testbench -ifile:C104_5_FD_Tcc-0-1-2-2-1.mhas -ofile:C104_5_FD_Tcc-0-1-2-2-1.mhas.wav ia_mpeghd_testbench -ifile:C6_0_FD.mhas -ofile:C6_0_FD.mhas.wav ia_mpeghd_testbench -ifile:C6_1_FD.mhas -ofile:C6_1_FD.mhas.wav ia_mpeghd_testbench -ifile:O24_3_FD.mhas -ofile:O24_3_FD.mhas.wav ia_mpeghd_testbench -ifile:C6_2_FD.mhas -ofile:C6_2_FD.mhas.wav ia_mpeghd_testbench -ifile:C2_5_FD_Tcc-1.mhas -ofile:C2_5_FD_Tcc-1.mhas.wav ia_mpeghd_testbench -ifile:C104_3_FD.mhas -ofile:C104_3_FD.mhas.wav ia_mpeghd_testbench -ifile:C6_34_FD.mhas -ofile:C6_34_FD.mhas.wav ia_mpeghd_testbench -ifile:C0_3_FD.mhas -ofile:C0_3_FD.mhas.wav

I'm not sure whether this is intended and in spec could you please elaborate whether these files should be decoded successfully?

SakethSathuvalli commented 1 year ago

Hi @miartad ,

Thanks for trying our decoder! Please find below details about the decode failures You are observing.

File Name Cause for decode failure
O20_3_FD.mhas This is a MPEG-H profile level 4 stream. Our decoder supports only upto profile level 3.
C2_5_FD_Tcc-2.mhas This is a MPEG-H high profile file. Our decoder does not support MPEG-H high profile.
C104_5_FD_Tcc-0-1-2-2-1.mhas This is a MPEG-H high profile file. Our decoder does not support MPEG-H high profile.
C6_0_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz
C6_1_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz
O24_3_FD.mhas This is a MPEG-H profile level 4 stream. Our decoder supports only upto profile level 3.
C6_2_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz
C2_5_FD_Tcc-1.mhas This is a MPEG-H high profile file. Our decoder supports MPEG-H low complexity profile.
C104_3_FD.mhas The decoder fails to decode as cicp index of this stream represents any setup.
C6_34_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz
C0_3_FD.mhas The decoder fails to decode as cicp index of this stream represents any setup.

The streams C104_3_FD.mhas and C0_3_FD.mhas may be expected to be decoded. We will check this and add support for these. The cause for decode failure of the rest of the streams appear to be in-line with the specification for MPEG-H low complexity profile level 3, and baseline profile level 4 decoder.

Thanks!

SakethSathuvalli commented 1 year ago

Hi @miartad ,

Thanks for trying our decoder! Please find below details about the decode failures You are observing.

File Name Cause for decode failure O20_3_FD.mhas This is a MPEG-H profile level 4 stream. Our decoder supports only upto profile level 3. C2_5_FD_Tcc-2.mhas This is a MPEG-H high profile file. Our decoder does not support MPEG-H high profile. C104_5_FD_Tcc-0-1-2-2-1.mhas This is a MPEG-H high profile file. Our decoder does not support MPEG-H high profile. C6_0_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz C6_1_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz O24_3_FD.mhas This is a MPEG-H profile level 4 stream. Our decoder supports only upto profile level 3. C6_2_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz C2_5_FD_Tcc-1.mhas This is a MPEG-H high profile file. Our decoder supports MPEG-H low complexity profile. C104_3_FD.mhas The decoder fails to decode as cicp index of this stream represents any setup. C6_34_FD.mhas MPEG-H Low complexity profile level 3 decoder does not have support for sampling frequencies above 48kHz C0_3_FD.mhas The decoder fails to decode as cicp index of this stream represents any setup. The streams C104_3_FD.mhas and C0_3_FD.mhas may be expected to be decoded. We will check this and add support for these. The cause for decode failure of the rest of the streams appear to be in-line with the specification for MPEG-H low complexity profile level 3, and baseline profile level 4 decoder.

Thanks!

Hi @miartad ,

The latest master - https://github.com/ittiam-systems/libmpegh/commit/e6ebfaa82c930d0c67fea4157fa5ac291c889755 - has fix for the decode failure of C104_3_FD and C0_3_FD files.

Thanks!

amiartus commented 1 year ago

thanks a lot, I will check it out!

amiartus commented 1 year ago

confirmed both files decode and play after the patch, thanks!