Mercurial > mplayer.hg
comparison libmpdemux/parse_mp4.c @ 6929:a3aac765967d
allow early exit from esds parsing, so decoder info (type & bitrate) are
available even if no codec-specific data or other extras found
author | arpi |
---|---|
date | Mon, 05 Aug 2002 18:22:51 +0000 |
parents | 534580bc88a8 |
children | 492c6d674c3e |
comparison
equal
deleted
inserted
replaced
6928:668ab67dce8f | 6929:a3aac765967d |
---|---|
100 " -> avgBitrate: %.3fkbit/s\n", | 100 " -> avgBitrate: %.3fkbit/s\n", |
101 len, esds->objectTypeId, esds->streamType, | 101 len, esds->objectTypeId, esds->streamType, |
102 esds->bufferSizeDB, esds->maxBitrate/1000.0, | 102 esds->bufferSizeDB, esds->maxBitrate/1000.0, |
103 esds->avgBitrate/1000.0); | 103 esds->avgBitrate/1000.0); |
104 | 104 |
105 esds->decoderConfigLen=0; | |
106 | |
105 if (len < 15) { | 107 if (len < 15) { |
106 freereturn(s,1); | 108 freereturn(s,0); |
107 } | 109 } |
108 | 110 |
109 /* get and verify DecSpecificInfoTag */ | 111 /* get and verify DecSpecificInfoTag */ |
110 if (stream_read_char(s) != MP4DecSpecificDescrTag) { | 112 if (stream_read_char(s) != MP4DecSpecificDescrTag) { |
111 freereturn(s,1); | 113 freereturn(s,0); |
112 } | 114 } |
113 | 115 |
114 /* read length */ | 116 /* read length */ |
115 esds->decoderConfigLen = len = mp4_read_descr_len(s); | 117 esds->decoderConfigLen = len = mp4_read_descr_len(s); |
116 | 118 |
123 mp_msg(MSGT_DEMUX, MP4_DL, | 125 mp_msg(MSGT_DEMUX, MP4_DL, |
124 "ESDS MPEG4 Decoder Specific Descriptor (%dBytes)\n", len); | 126 "ESDS MPEG4 Decoder Specific Descriptor (%dBytes)\n", len); |
125 | 127 |
126 /* get and verify SLConfigDescrTag */ | 128 /* get and verify SLConfigDescrTag */ |
127 if(stream_read_char(s) != MP4SLConfigDescrTag) { | 129 if(stream_read_char(s) != MP4SLConfigDescrTag) { |
128 freereturn(s,1); | 130 freereturn(s,0); |
129 } | 131 } |
130 | 132 |
131 /* Note: SLConfig is usually constant value 2, size 1Byte */ | 133 /* Note: SLConfig is usually constant value 2, size 1Byte */ |
132 esds->SLConfigLen = len = mp4_read_descr_len(s); | 134 esds->SLConfigLen = len = mp4_read_descr_len(s); |
133 esds->SLConfig = malloc(esds->SLConfigLen); | 135 esds->SLConfig = malloc(esds->SLConfigLen); |