comparison libmpdemux/demux_ty.c @ 24471:516c6a2277b1

Greatly simplify IsValidAudioPacket, though this might break something
author reimar
date Fri, 14 Sep 2007 18:54:14 +0000
parents 656a62a00e94
children 9341d242f432
comparison
equal deleted inserted replaced
24470:656a62a00e94 24471:516c6a2277b1
277 #define SERIES2_PTS_LENGTH 16 277 #define SERIES2_PTS_LENGTH 16
278 #define SERIES2_PTS_OFFSET 9 278 #define SERIES2_PTS_OFFSET 9
279 #define AC3_PTS_LENGTH 16 279 #define AC3_PTS_LENGTH 16
280 #define AC3_PTS_OFFSET 9 280 #define AC3_PTS_OFFSET 9
281 281
282 #define NUMBER_DIFFERENT_AUDIO_SIZES 7
283 static int Series1AudioWithPTS[ NUMBER_DIFFERENT_AUDIO_SIZES ] =
284 {
285 336 + SERIES1_PTS_LENGTH,
286 384 + SERIES1_PTS_LENGTH,
287 480 + SERIES1_PTS_LENGTH,
288 576 + SERIES1_PTS_LENGTH,
289 768 + SERIES1_PTS_LENGTH,
290 864 + SERIES1_PTS_LENGTH
291 };
292 static int Series2AudioWithPTS[ NUMBER_DIFFERENT_AUDIO_SIZES ] =
293 {
294 336 + SERIES2_PTS_LENGTH,
295 384 + SERIES2_PTS_LENGTH,
296 480 + SERIES2_PTS_LENGTH,
297 576 + SERIES2_PTS_LENGTH,
298 768 + SERIES2_PTS_LENGTH,
299 864 + SERIES2_PTS_LENGTH
300 };
301
302 static int IsValidAudioPacket( int size, int *ptsOffset, int *ptsLen ) 282 static int IsValidAudioPacket( int size, int *ptsOffset, int *ptsLen )
303 { 283 {
304 int count;
305
306 *ptsOffset = 0; 284 *ptsOffset = 0;
307 *ptsLen = 0; 285 *ptsLen = 0;
308 286
309 // AC-3 287 // AC-3
310 if ( size == 1550 || size == 1552 ) 288 if ( size == 1550 || size == 1552 )
313 *ptsLen = AC3_PTS_LENGTH; 291 *ptsLen = AC3_PTS_LENGTH;
314 return 1; 292 return 1;
315 } 293 }
316 294
317 // MPEG 295 // MPEG
318 for( count = 0 ; count < NUMBER_DIFFERENT_AUDIO_SIZES ; count++ ) 296 if ( (size & 15) == (SERIES1_PTS_LENGTH & 15) )
319 {
320 if ( size == Series1AudioWithPTS[ count ] )
321 { 297 {
322 *ptsOffset = SERIES1_PTS_OFFSET; 298 *ptsOffset = SERIES1_PTS_OFFSET;
323 *ptsLen = SERIES1_PTS_LENGTH; 299 *ptsLen = SERIES1_PTS_LENGTH;
324 return 1; 300 return 1;
325 } 301 }
326 } 302 if ( (size & 15) == (SERIES2_PTS_LENGTH & 15) )
327 for( count = 0 ; count < NUMBER_DIFFERENT_AUDIO_SIZES ; count++ )
328 {
329 if ( size == Series2AudioWithPTS[ count ] )
330 { 303 {
331 *ptsOffset = SERIES2_PTS_OFFSET; 304 *ptsOffset = SERIES2_PTS_OFFSET;
332 *ptsLen = SERIES2_PTS_LENGTH; 305 *ptsLen = SERIES2_PTS_LENGTH;
333 return 1; 306 return 1;
334 } 307 }
335 }
336 mp_msg( MSGT_DEMUX, MSGL_DBG3, "ty:Tossing Audio Packet Size %d\n", 308 mp_msg( MSGT_DEMUX, MSGL_DBG3, "ty:Tossing Audio Packet Size %d\n",
337 size ); 309 size );
338 return 0; 310 return 0;
339 } 311 }
340 312