Commit dbfc8ae
committed
Fix esds DSI parsing for truncated and duplicate DecSpecificInfo.
Record AOT, sample rate and channel count before the GASpecificConfig
bit reads that can hit EOF on a truncated DSI. find_descriptor swallows
BitReaderError in non-strict mode, so storing the fields afterwards left
a playable-looking AAC track with no usable config and silent playback
for HE-AAC streams with explicit SBR signalling.
Also keep the first DecSpecificInfo and ignore subsequent ones in
non-strict mode, matching Chromium and ffmpeg. The previous code
concatenated DSI bytes and overwrote the parsed audio fields from the
second DSI, leaving the ES_Descriptor inconsistent when the two
disagreed. Strict mode still rejects duplicates with
EsdsDecSpecificInfoTagQuantity.1 parent fb7ed9e commit dbfc8ae
2 files changed
Lines changed: 194 additions & 52 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5151 | 5151 | | |
5152 | 5152 | | |
5153 | 5153 | | |
| 5154 | + | |
| 5155 | + | |
| 5156 | + | |
| 5157 | + | |
| 5158 | + | |
| 5159 | + | |
| 5160 | + | |
| 5161 | + | |
| 5162 | + | |
| 5163 | + | |
| 5164 | + | |
| 5165 | + | |
| 5166 | + | |
| 5167 | + | |
5154 | 5168 | | |
5155 | 5169 | | |
5156 | 5170 | | |
| |||
5253 | 5267 | | |
5254 | 5268 | | |
5255 | 5269 | | |
| 5270 | + | |
| 5271 | + | |
| 5272 | + | |
| 5273 | + | |
| 5274 | + | |
| 5275 | + | |
| 5276 | + | |
| 5277 | + | |
| 5278 | + | |
| 5279 | + | |
| 5280 | + | |
| 5281 | + | |
| 5282 | + | |
| 5283 | + | |
| 5284 | + | |
| 5285 | + | |
| 5286 | + | |
| 5287 | + | |
| 5288 | + | |
| 5289 | + | |
| 5290 | + | |
| 5291 | + | |
| 5292 | + | |
| 5293 | + | |
| 5294 | + | |
| 5295 | + | |
5256 | 5296 | | |
5257 | 5297 | | |
5258 | 5298 | | |
5259 | 5299 | | |
5260 | 5300 | | |
5261 | 5301 | | |
5262 | 5302 | | |
5263 | | - | |
5264 | | - | |
5265 | | - | |
5266 | | - | |
5267 | | - | |
5268 | | - | |
5269 | | - | |
5270 | | - | |
5271 | | - | |
5272 | | - | |
5273 | | - | |
5274 | | - | |
5275 | | - | |
5276 | | - | |
5277 | | - | |
5278 | | - | |
5279 | | - | |
5280 | | - | |
5281 | | - | |
5282 | | - | |
5283 | | - | |
5284 | | - | |
5285 | | - | |
5286 | | - | |
5287 | | - | |
5288 | | - | |
5289 | | - | |
5290 | | - | |
5291 | | - | |
5292 | | - | |
5293 | | - | |
5294 | | - | |
5295 | | - | |
5296 | | - | |
5297 | | - | |
| 5303 | + | |
| 5304 | + | |
| 5305 | + | |
| 5306 | + | |
| 5307 | + | |
| 5308 | + | |
| 5309 | + | |
| 5310 | + | |
| 5311 | + | |
| 5312 | + | |
| 5313 | + | |
| 5314 | + | |
| 5315 | + | |
| 5316 | + | |
| 5317 | + | |
| 5318 | + | |
| 5319 | + | |
| 5320 | + | |
5298 | 5321 | | |
5299 | | - | |
5300 | | - | |
5301 | | - | |
5302 | | - | |
5303 | | - | |
5304 | | - | |
| 5322 | + | |
| 5323 | + | |
| 5324 | + | |
| 5325 | + | |
5305 | 5326 | | |
5306 | | - | |
5307 | 5327 | | |
5308 | | - | |
5309 | | - | |
5310 | | - | |
5311 | | - | |
| 5328 | + | |
| 5329 | + | |
| 5330 | + | |
| 5331 | + | |
| 5332 | + | |
| 5333 | + | |
| 5334 | + | |
| 5335 | + | |
| 5336 | + | |
| 5337 | + | |
5312 | 5338 | | |
5313 | | - | |
5314 | | - | |
5315 | | - | |
5316 | | - | |
5317 | | - | |
| 5339 | + | |
| 5340 | + | |
5318 | 5341 | | |
5319 | | - | |
5320 | 5342 | | |
5321 | 5343 | | |
5322 | 5344 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1120 | 1120 | | |
1121 | 1121 | | |
1122 | 1122 | | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
1123 | 1243 | | |
1124 | 1244 | | |
1125 | 1245 | | |
| |||
0 commit comments