[MPlayer-users] mpeg2ts/aac problem

gabor gabor at z10n.net
Wed Nov 26 10:40:15 CET 2003


On Tue, 2003-11-25 at 10:17, Nico wrote:
> [Automatic answer: RTFM (read DOCS, FAQ), also read DOCS/bugreports.html]
> 
> I checked that file.
> The problem is that the descriptor assigned to AAC in TS in the standard 
> (0xf) in your case is correctly assigned
> only to the audio pid, but in all the samples I have it's assigned to 
> all pids (even to video and sub pids),
> so I commented the code to tag  it as AAC. What happens is that the 
> demuxer sees that pid as MP2,
> which obviously isn't.
> 
> You can do two things:
> 1) in parse_descriptors decomment the code regarding case 0xf and in 
> parse_pmt change this block:
> 
> //if((type_from_pmt == 0x0f) || (l == 4)) //see in parse_pmt()
> if(l==4)
>        es->type    = AUDIO_AAC;
> 
> to
> if((type_from_pmt == 0x0f))
>      es->type    = AUDIO_AAC;
> 
> that should work as expected

crashes (gdb log attached) :(


> 
> 2) try to discover what's the meaning of the descriptors used by those
> japanese broadcasters. If it weren't for the mess they make in the PMT the
> code would be already working correctly.
:(
> 
> BTW I'm planning to add an option to permit users to force a decoder.
would be great


thanks,
gabor
-------------- next part --------------
(gdb) bt
#0  fill_element (hDecoder=0x8460630, ld=0x854fc68, drc=0x8460e28, sbr_ele=255 '#') at syntax.c:1029
#1  0x0829dda7 in raw_data_block (hDecoder=0x8460630, hInfo=0x8396320, ld=0x854fc68, elements=0xbfffe1b0, spec_coef=0xbfffe0b0, pce=0x8460bbd, drc=0x8460e28) at syntax.c:415
#2  0x0828fd60 in faacDecDecode (hDecoder=0x8460630, hInfo=0x8396320, buffer=0x8460630 "", buffer_size=4608) at decoder.c:812
#3  0x080bb6ad in decode_audio (sh=0x845f308, buf=0x8489bd0 "", minlen=32766, maxlen=77824) at ad_faad.c:179
#4  0x080b75be in decode_audio (sh_audio=0x845f308, buf=0x85388e8 "", minlen=138976208, maxlen=65536) at dec_audio.c:411
#5  0x08075558 in main (argc=6, argv=0xbffff6f4) at mplayer.c:1993
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x829f8db to 0x829f91b:
0x0829f8db <fill_element+139>:  test   %esi,%esi
0x0829f8dd <fill_element+141>:  je     0x829f91a <fill_element+202>
0x0829f8df <fill_element+143>:  push   %eax
0x0829f8e0 <fill_element+144>:  push   %eax
0x0829f8e1 <fill_element+145>:  mov    %ebx,%eax
0x0829f8e3 <fill_element+147>:  and    $0xffff,%eax
0x0829f8e8 <fill_element+152>:  shl    $0x3,%eax
0x0829f8eb <fill_element+155>:  push   %eax
0x0829f8ec <fill_element+156>:  push   %edi
0x0829f8ed <fill_element+157>:  call   0x82a32f0 <faad_getbitbuffer>
0x0829f8f2 <fill_element+162>:  add    $0x10,%esp
0x0829f8f5 <fill_element+165>:  mov    0xffffffe8(%ebp),%ecx
0x0829f8f8 <fill_element+168>:  mov    0x8(%ebp),%edx
0x0829f8fb <fill_element+171>:  mov    %eax,0x2c88(%esi)
0x0829f901 <fill_element+177>:  mov    0x308(%edx,%ecx,4),%eax
0x0829f908 <fill_element+184>:  mov    %bx,0x2c8c(%eax)
0x0829f90f <fill_element+191>:  nop    
0x0829f910 <fill_element+192>:  lea    0xfffffff4(%ebp),%esp
0x0829f913 <fill_element+195>:  xor    %eax,%eax
0x0829f915 <fill_element+197>:  pop    %ebx
0x0829f916 <fill_element+198>:  pop    %esi
0x0829f917 <fill_element+199>:  pop    %edi
0x0829f918 <fill_element+200>:  pop    %ebp
0x0829f919 <fill_element+201>:  ret    
0x0829f91a <fill_element+202>:  mov    0x8(%edx),%ax
End of assembler dump.
(gdb) info all-registers
eax            0x84638f0        138819824
ecx            0xff     255
edx            0x8460630        138806832
ebx            0x8      8
esp            0xbfffdfe0       0xbfffdfe0
ebp            0xbfffdff8       0xbfffdff8
esi            0x110a524c       285889100
edi            0x854fc68        139787368
eip            0x829f8fb        0x829f8fb
eflags         0x210282 2163330
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            876.9923095703125        (raw 0x4008db3f820000000000)
st1            -1023.5062255859375      (raw 0xc008ffe0660000000000)
st2            1919.88262939453125      (raw 0x4009effc3e8000000000)
st3            -2736.83892822265625     (raw 0xc00aab0d6c4000000000)
st4            3445.7750244140625       (raw 0x400ad75c668000000000)
st5            -833.02435302734375      (raw 0xc008d0418f0000000000)
st6            -3.9205240348254619675572030246257782    (raw 0xc000fae9dda430780000)
st7            nan(0xc000000000000000)  (raw 0x7fffc000000000000000)
fctrl          0x37f    895
fstat          0x4029   16425
ftag           0xffff   65535
fiseg          0x73     115
fioff          0x8293d03        136920323
foseg          0x7b     123
fooff          0xbfffdedc       -1073750308
fop            0x19d    413
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
  v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
    v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
      v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
        v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
          v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
            v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
              v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, 
                v4_int32 = {0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff}, uint128 = 0xffffffffffffffffffffffffffffffff}
mxcsr          0x1f80   8064
mm0            {uint64 = 0xdb3f820000000000, v2_int32 = {0x0, 0xdb3f8200}, v4_int16 = {0x0, 0x0, 0x8200, 0xdb3f}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x3f, 0xdb}}
mm1            {uint64 = 0xffe0660000000000, v2_int32 = {0x0, 0xffe06600}, v4_int16 = {0x0, 0x0, 0x6600, 0xffe0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0xe0, 0xff}}
mm2            {uint64 = 0xeffc3e8000000000, v2_int32 = {0x0, 0xeffc3e80}, v4_int16 = {0x0, 0x0, 0x3e80, 0xeffc}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x80, 0x3e, 0xfc, 0xef}}
mm3            {uint64 = 0xab0d6c4000000000, v2_int32 = {0x0, 0xab0d6c40}, v4_int16 = {0x0, 0x0, 0x6c40, 0xab0d}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x40, 0x6c, 0xd, 0xab}}
mm4            {uint64 = 0xd75c668000000000, v2_int32 = {0x0, 0xd75c6680}, v4_int16 = {0x0, 0x0, 0x6680, 0xd75c}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x80, 0x66, 0x5c, 0xd7}}
mm5            {uint64 = 0xd0418f0000000000, v2_int32 = {0x0, 0xd0418f00}, v4_int16 = {0x0, 0x0, 0x8f00, 0xd041}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x41, 0xd0}}
mm6            {uint64 = 0xfae9dda430780000, v2_int32 = {0x30780000, 0xfae9dda4}, v4_int16 = {0x0, 0x3078, 0xdda4, 0xfae9}, v8_int8 = {0x0, 0x0, 0x78, 0x30, 0xa4, 0xdd, 0xe9, 0xfa}}
mm7            {uint64 = 0xc000000000000000, v2_int32 = {0x0, 0xc0000000}, v4_int16 = {0x0, 0x0, 0x0, 0xc000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0}}


More information about the MPlayer-users mailing list