Changeset d1d7614168dbc3f6a689003be66c8532b6180d01

Show
Ignore:
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
  • modules/access/rtsp/access.c

    r775fa8a rd1d7614  
    260260    access_sys_t *p_sys = p_access->p_sys; 
    261261    block_t *p_block; 
     262    rmff_pheader_t pheader; 
     263    int i_size; 
    262264 
    263265    if( p_sys->p_header ) 
     
    268270    } 
    269271 
    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, 
    272277                                            &p_block->p_buffer ); 
    273278 
  • modules/access/rtsp/real.c

    r775fa8a rd1d7614  
    533533} 
    534534 
    535 int real_get_rdt_chunk(rtsp_client_t *rtsp_session, unsigned char **buffer) { 
     535int real_get_rdt_chunk_header(rtsp_client_t *rtsp_session, rmff_pheader_t *ph) 
     536
    536537 
    537538  int n=1; 
    538539  uint8_t header[8]; 
    539   rmff_pheader_t ph; 
    540540  int size; 
    541541  int flags1; 
     
    583583  size+=2; 
    584584   
    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 
     595int 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); 
    596601  return (n <= 0) ? 0 : n+12; 
    597602} 
  • modules/access/rtsp/real.h

    r775fa8a rd1d7614  
    4141#endif 
    4242 
    43 int real_get_rdt_chunk(rtsp_client_t *, unsigned char **buffer); 
     43int real_get_rdt_chunk_header(rtsp_client_t *, rmff_pheader_t *); 
     44int real_get_rdt_chunk(rtsp_client_t *, rmff_pheader_t *, unsigned char **); 
    4445rmff_header_t *real_setup_and_get_header(rtsp_client_t *, int bandwidth); 
    4546