[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