Kostya Shishkov <[email protected]> writes:

> depends whom you ask ;)
> For the first frame chset sizes are 489, 476, 495 and 520.
> For the last frame sizes are 2571 and 2541.

Thanks! Sorry I'm a bit late responding, but I've been at home with a
cold for a few days.

> Hint: NAVI table should store sizes only for chsets and nothing else.

As far as I find, the spec describes this only using some pseudocode.
>From page 128-129 (with my line numbers):

1   for (Band=0; Band<P; Band++){
2       BandSize[Band]=0;
3       for(Seg=0;Seg<M;Seg++){
4           SegmentSize[Band][Seg]=ExtractBits(nBits4Ssize);
5           for(ChSET=0; ChSET<N; ChSET++){
6               if ( GetNumFreqBand4ChSet[ChSET] > Band ){
7                   BandChSetSize[Band][Seg][ChSET]=ExtractBits(nBits4Ssize)+1;
8                   SegmentSize[Band][Seg] += BandChSetSize[Band][Seg][ChSET];
9               }
10          }
11          BandSize[Band] += SegmentSize[Band][Seg];
12      }
13  }
14  // Re-align bit pointer to byte position
15  bitptr = next_byte_position_in_stream();

So your saying that line 4 is incorrect? If I replace that by just
initializing the segment size to zero, I get the following values for
the first and last frame of "Master Audio 5.0 96khz.dts":

  XLL NAVI size table, bits per entry: 11:
   band 0: 1978
    seg 0: 480
     chset 0: 480
    seg 1: 486
     chset 0: 486
    seg 2: 488
     chset 0: 488
    seg 3: 524
     chset 0: 524

  XLL NAVI size table, bits per entry: 12:
   band 0: 5096
    seg 0: 2569
     chset 0: 2569
    seg 1: 2527
     chset 0: 2527

So it's *close* to the values you list, but not the same... Diff -9,
-10, -7, 4, -2, -14. Just to double check, your values are for the same
input file? I guess I'll have to make a hexdump/bindump of these headers
and go through them to try to make the position of the NAVI table match
your data.

> Hint2: you might need to play with the number of downmixing
> coefficients too.

I don't think that should affect parsing of the NAVI table. Since
finding the end of each channel set subheader is done via the header
size.

Or is there some data between the last subset channel header and the
start of the navi table, which I'm missing when I read the spec?

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid C0B98E26.
Internet email is subject to wholesale government surveillance.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to