Changeset de11230fbf681606705e3876f3a6a0b9849ab9da
- Timestamp:
- 07/02/06 21:41:17
(3 years ago)
- Author:
- Sigmund Augdal Helberg <sigmunau@videolan.org>
- git-committer:
- Sigmund Augdal Helberg <sigmunau@videolan.org> 1139344877 +0000
- git-parent:
[8af26f7d31f0530c3c6b13804fb7c54f44c74971]
- git-author:
- Sigmund Augdal Helberg <sigmunau@videolan.org> 1139344877 +0000
- Message:
access_output/udp.c: use block_Fifo for the empty blocks list. Simplifies code a lot
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| rccd07a2 |
rde11230 |
|
| 146 | 146 | int i_group; |
|---|
| 147 | 147 | |
|---|
| 148 | | vlc_mutex_t blocks_lock; |
|---|
| 149 | | block_t *p_empty_blocks; |
|---|
| 150 | | int i_empty_depth; |
|---|
| | 148 | block_fifo_t *p_empty_blocks; |
|---|
| 151 | 149 | |
|---|
| 152 | 150 | } sout_access_thread_t; |
|---|
| … | … | |
| 245 | 243 | p_sys->p_thread->b_error= 0; |
|---|
| 246 | 244 | p_sys->p_thread->p_fifo = block_FifoNew( p_access ); |
|---|
| 247 | | p_sys->p_thread->p_empty_blocks = NULL; |
|---|
| 248 | | p_sys->p_thread->i_empty_depth = 0; |
|---|
| 249 | | vlc_mutex_init( p_access, &p_sys->p_thread->blocks_lock ); |
|---|
| | 245 | p_sys->p_thread->p_empty_blocks = block_FifoNew( p_access ); |
|---|
| 250 | 246 | |
|---|
| 251 | 247 | var_Get( p_access, SOUT_CFG_PREFIX "ttl", &val ); |
|---|
| … | … | |
| 320 | 316 | |
|---|
| 321 | 317 | block_FifoRelease( p_sys->p_thread->p_fifo ); |
|---|
| | 318 | block_FifoRelease( p_sys->p_thread->p_empty_blocks ); |
|---|
| 322 | 319 | |
|---|
| 323 | 320 | if( p_sys->p_buffer ) block_Release( p_sys->p_buffer ); |
|---|
| 324 | | while ( p_sys->p_thread->p_empty_blocks != NULL ) |
|---|
| 325 | | { |
|---|
| 326 | | block_t *p_next = p_sys->p_thread->p_empty_blocks->p_next; |
|---|
| 327 | | block_Release( p_sys->p_thread->p_empty_blocks ); |
|---|
| 328 | | p_sys->p_thread->p_empty_blocks = p_next; |
|---|
| 329 | | } |
|---|
| 330 | | vlc_mutex_destroy( &p_sys->p_thread->blocks_lock ); |
|---|
| 331 | 321 | |
|---|
| 332 | 322 | net_Close( p_sys->p_thread->i_handle ); |
|---|
| … | … | |
| 429 | 419 | block_t *p_buf; |
|---|
| 430 | 420 | |
|---|
| 431 | | vlc_mutex_lock( &p_sys->p_thread->blocks_lock ); |
|---|
| 432 | | while ( p_sys->p_thread->i_empty_depth >= MAX_EMPTY_BLOCKS ) |
|---|
| 433 | | { |
|---|
| 434 | | p_buf = p_sys->p_thread->p_empty_blocks; |
|---|
| 435 | | p_sys->p_thread->p_empty_blocks = |
|---|
| 436 | | p_sys->p_thread->p_empty_blocks->p_next; |
|---|
| 437 | | p_sys->p_thread->i_empty_depth--; |
|---|
| 438 | | vlc_mutex_unlock( &p_sys->p_thread->blocks_lock ); |
|---|
| | 421 | while ( p_sys->p_thread->p_empty_blocks->i_depth >= MAX_EMPTY_BLOCKS ) |
|---|
| | 422 | { |
|---|
| | 423 | p_buf = block_FifoGet(p_sys->p_thread->p_empty_blocks); |
|---|
| 439 | 424 | block_Release( p_buf ); |
|---|
| 440 | | vlc_mutex_lock( &p_sys->p_thread->blocks_lock ); |
|---|
| 441 | | } |
|---|
| 442 | | vlc_mutex_unlock( &p_sys->p_thread->blocks_lock ); |
|---|
| | 425 | } |
|---|
| 443 | 426 | |
|---|
| 444 | 427 | block_FifoPut( p_sys->p_thread->p_fifo, p_buffer ); |
|---|
| … | … | |
| 464 | 447 | block_t *p_buffer; |
|---|
| 465 | 448 | |
|---|
| 466 | | vlc_mutex_lock( &p_sys->p_thread->blocks_lock ); |
|---|
| 467 | | while ( p_sys->p_thread->i_empty_depth > MAX_EMPTY_BLOCKS ) |
|---|
| 468 | | { |
|---|
| 469 | | p_buffer = p_sys->p_thread->p_empty_blocks; |
|---|
| 470 | | p_sys->p_thread->p_empty_blocks = |
|---|
| 471 | | p_sys->p_thread->p_empty_blocks->p_next; |
|---|
| 472 | | p_sys->p_thread->i_empty_depth--; |
|---|
| 473 | | vlc_mutex_unlock( &p_sys->p_thread->blocks_lock ); |
|---|
| | 449 | while ( p_sys->p_thread->p_empty_blocks->i_depth > MAX_EMPTY_BLOCKS ) |
|---|
| | 450 | { |
|---|
| | 451 | p_buffer = block_FifoGet( p_sys->p_thread->p_empty_blocks ); |
|---|
| 474 | 452 | block_Release( p_buffer ); |
|---|
| 475 | | vlc_mutex_lock( &p_sys->p_thread->blocks_lock ); |
|---|
| 476 | | } |
|---|
| 477 | | p_buffer = p_sys->p_thread->p_empty_blocks; |
|---|
| 478 | | if ( p_buffer != NULL ) |
|---|
| 479 | | { |
|---|
| 480 | | p_sys->p_thread->p_empty_blocks = |
|---|
| 481 | | p_sys->p_thread->p_empty_blocks->p_next; |
|---|
| 482 | | p_sys->p_thread->i_empty_depth--; |
|---|
| 483 | | vlc_mutex_unlock( &p_sys->p_thread->blocks_lock ); |
|---|
| 484 | | p_buffer->p_next = NULL; |
|---|
| | 453 | } |
|---|
| | 454 | |
|---|
| | 455 | if( p_sys->p_thread->p_empty_blocks->i_depth == 0 ) |
|---|
| | 456 | { |
|---|
| | 457 | p_buffer = block_New( p_access->p_sout, p_sys->i_mtu ); |
|---|
| | 458 | } |
|---|
| | 459 | else |
|---|
| | 460 | { |
|---|
| | 461 | p_buffer = block_FifoGet(p_sys->p_thread->p_empty_blocks ); |
|---|
| 485 | 462 | p_buffer->i_flags = 0; |
|---|
| 486 | 463 | p_buffer = block_Realloc( p_buffer, 0, p_sys->i_mtu ); |
|---|
| 487 | | } |
|---|
| 488 | | else |
|---|
| 489 | | { |
|---|
| 490 | | vlc_mutex_unlock( &p_sys->p_thread->blocks_lock ); |
|---|
| 491 | | p_buffer = block_New( p_access->p_sout, p_sys->i_mtu ); |
|---|
| 492 | 464 | } |
|---|
| 493 | 465 | |
|---|
| … | … | |
| 536 | 508 | # define strerror( x ) winsock_strerror( strerror_buf ) |
|---|
| 537 | 509 | #endif |
|---|
| | 510 | int i = 0; |
|---|
| 538 | 511 | |
|---|
| 539 | 512 | while( !p_thread->b_die ) |
|---|
| … | … | |
| 541 | 514 | block_t *p_pk; |
|---|
| 542 | 515 | mtime_t i_date, i_sent; |
|---|
| 543 | | |
|---|
| | 516 | #if 0 |
|---|
| | 517 | if( (i++ % 1000)==0 ) { |
|---|
| | 518 | int i = 0; |
|---|
| | 519 | block_t *p_tmp = p_thread->p_empty_blocks->p_first; |
|---|
| | 520 | while( p_tmp ) { p_tmp = p_tmp->p_next; i++;} |
|---|
| | 521 | msg_Err( p_thread, "fifo depth: %d, empty blocks: %d/%d", |
|---|
| | 522 | p_thread->p_fifo->i_depth, p_thread->p_empty_blocks->i_depth,i ); |
|---|
| | 523 | } |
|---|
| | 524 | #endif |
|---|
| 544 | 525 | p_pk = block_FifoGet( p_thread->p_fifo ); |
|---|
| 545 | 526 | |
|---|
| … | … | |
| 553 | 534 | i_date - i_date_last ); |
|---|
| 554 | 535 | |
|---|
| 555 | | vlc_mutex_lock( &p_thread->blocks_lock ); |
|---|
| 556 | | p_pk->p_next = p_thread->p_empty_blocks; |
|---|
| 557 | | p_thread->p_empty_blocks = p_pk; |
|---|
| 558 | | p_thread->i_empty_depth++; |
|---|
| 559 | | vlc_mutex_unlock( &p_thread->blocks_lock ); |
|---|
| | 536 | block_FifoPut( p_thread->p_empty_blocks, p_pk ); |
|---|
| 560 | 537 | |
|---|
| 561 | 538 | i_date_last = i_date; |
|---|
| … | … | |
| 598 | 575 | #endif |
|---|
| 599 | 576 | |
|---|
| 600 | | vlc_mutex_lock( &p_thread->blocks_lock ); |
|---|
| 601 | | p_pk->p_next = p_thread->p_empty_blocks; |
|---|
| 602 | | p_thread->p_empty_blocks = p_pk; |
|---|
| 603 | | p_thread->i_empty_depth++; |
|---|
| 604 | | vlc_mutex_unlock( &p_thread->blocks_lock ); |
|---|
| | 577 | block_FifoPut( p_thread->p_empty_blocks, p_pk ); |
|---|
| 605 | 578 | |
|---|
| 606 | 579 | i_date_last = i_date; |
|---|