Changeset d1d7614168dbc3f6a689003be66c8532b6180d01
- Timestamp:
- 19/09/05 23:16:23
(3 years ago)
- Author:
- Gildas Bazin <gbazin@videolan.org>
- git-committer:
- Gildas Bazin <gbazin@videolan.org> 1127164583 +0000
- git-parent:
[6a1a3a70a9b893c4aadee3798d8ae721961bac1c]
- git-author:
- Gildas Bazin <gbazin@videolan.org> 1127164583 +0000
- Message:
* modules/access/rtsp: fixed problem in BlockRead?().
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r775fa8a |
rd1d7614 |
|
| 260 | 260 | access_sys_t *p_sys = p_access->p_sys; |
|---|
| 261 | 261 | block_t *p_block; |
|---|
| | 262 | rmff_pheader_t pheader; |
|---|
| | 263 | int i_size; |
|---|
| 262 | 264 | |
|---|
| 263 | 265 | if( p_sys->p_header ) |
|---|
| … | … | |
| 268 | 270 | } |
|---|
| 269 | 271 | |
|---|
| 270 | | p_block = block_New( p_access, 4096 ); |
|---|
| 271 | | p_block->i_buffer = real_get_rdt_chunk( p_access->p_sys->p_rtsp, |
|---|
| | 272 | i_size = real_get_rdt_chunk_header( p_access->p_sys->p_rtsp, &pheader ); |
|---|
| | 273 | if( i_size <= 0 ) return 0; |
|---|
| | 274 | |
|---|
| | 275 | p_block = block_New( p_access, i_size ); |
|---|
| | 276 | p_block->i_buffer = real_get_rdt_chunk( p_access->p_sys->p_rtsp, &pheader, |
|---|
| 272 | 277 | &p_block->p_buffer ); |
|---|
| 273 | 278 | |
|---|
| r775fa8a |
rd1d7614 |
|
| 533 | 533 | } |
|---|
| 534 | 534 | |
|---|
| 535 | | int real_get_rdt_chunk(rtsp_client_t *rtsp_session, unsigned char **buffer) { |
|---|
| | 535 | int real_get_rdt_chunk_header(rtsp_client_t *rtsp_session, rmff_pheader_t *ph) |
|---|
| | 536 | { |
|---|
| 536 | 537 | |
|---|
| 537 | 538 | int n=1; |
|---|
| 538 | 539 | uint8_t header[8]; |
|---|
| 539 | | rmff_pheader_t ph; |
|---|
| 540 | 540 | int size; |
|---|
| 541 | 541 | int flags1; |
|---|
| … | … | |
| 583 | 583 | size+=2; |
|---|
| 584 | 584 | |
|---|
| 585 | | ph.object_version=0; |
|---|
| 586 | | ph.length=size; |
|---|
| 587 | | ph.stream_number=(flags1>>1)&1; |
|---|
| 588 | | ph.timestamp=ts; |
|---|
| 589 | | ph.reserved=0; |
|---|
| 590 | | ph.flags=0; /* TODO: determine keyframe flag and insert here? */ |
|---|
| 591 | | //xine_buffer_ensure_size(*buffer, 12+size); |
|---|
| 592 | | rmff_dump_pheader(&ph, *buffer); |
|---|
| 593 | | size-=12; |
|---|
| 594 | | n=rtsp_read_data(rtsp_session, (*buffer)+12, size); |
|---|
| 595 | | |
|---|
| | 585 | ph->object_version=0; |
|---|
| | 586 | ph->length=size; |
|---|
| | 587 | ph->stream_number=(flags1>>1)&1; |
|---|
| | 588 | ph->timestamp=ts; |
|---|
| | 589 | ph->reserved=0; |
|---|
| | 590 | ph->flags=0; /* TODO: determine keyframe flag and insert here? */ |
|---|
| | 591 | |
|---|
| | 592 | return size; |
|---|
| | 593 | } |
|---|
| | 594 | |
|---|
| | 595 | int real_get_rdt_chunk(rtsp_client_t *rtsp_session, rmff_pheader_t *ph, |
|---|
| | 596 | unsigned char **buffer) |
|---|
| | 597 | { |
|---|
| | 598 | int n; |
|---|
| | 599 | rmff_dump_pheader(ph, *buffer); |
|---|
| | 600 | n=rtsp_read_data(rtsp_session, *buffer + 12, ph->length - 12); |
|---|
| 596 | 601 | return (n <= 0) ? 0 : n+12; |
|---|
| 597 | 602 | } |
|---|
| r775fa8a |
rd1d7614 |
|
| 41 | 41 | #endif |
|---|
| 42 | 42 | |
|---|
| 43 | | int real_get_rdt_chunk(rtsp_client_t *, unsigned char **buffer); |
|---|
| | 43 | int real_get_rdt_chunk_header(rtsp_client_t *, rmff_pheader_t *); |
|---|
| | 44 | int real_get_rdt_chunk(rtsp_client_t *, rmff_pheader_t *, unsigned char **); |
|---|
| 44 | 45 | rmff_header_t *real_setup_and_get_header(rtsp_client_t *, int bandwidth); |
|---|
| 45 | 46 | |
|---|