mirror of
https://github.com/mpv-player/mpv
synced 2025-04-11 04:01:31 +00:00
Fixed the multiple ASF header stream chunk.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3552 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
a1a4326939
commit
64f97cd0a1
@ -97,7 +97,6 @@ asf_streaming_parse_header(int fd, streaming_ctrl_t* streaming_ctrl) {
|
|||||||
r += i;
|
r += i;
|
||||||
}
|
}
|
||||||
size = asf_streaming( &chunk, &r) - sizeof(ASF_stream_chunck_t);
|
size = asf_streaming( &chunk, &r) - sizeof(ASF_stream_chunck_t);
|
||||||
//printf("size=%d\n", size);
|
|
||||||
if(r) printf("Warning : drop header ????\n");
|
if(r) printf("Warning : drop header ????\n");
|
||||||
if(size < 0){
|
if(size < 0){
|
||||||
printf("Error while parsing chunk header\n");
|
printf("Error while parsing chunk header\n");
|
||||||
@ -110,7 +109,7 @@ asf_streaming_parse_header(int fd, streaming_ctrl_t* streaming_ctrl) {
|
|||||||
|
|
||||||
buffer = (char*) malloc(size+buffer_size);
|
buffer = (char*) malloc(size+buffer_size);
|
||||||
if(buffer == NULL) {
|
if(buffer == NULL) {
|
||||||
printf("Error can't allocate %d bytes buffer\n",buffer_size);
|
printf("Error can't allocate %d bytes buffer\n",size+buffer_size);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if( chunk_buffer!=NULL ) {
|
if( chunk_buffer!=NULL ) {
|
||||||
@ -129,7 +128,6 @@ asf_streaming_parse_header(int fd, streaming_ctrl_t* streaming_ctrl) {
|
|||||||
}
|
}
|
||||||
r += i;
|
r += i;
|
||||||
}
|
}
|
||||||
//for(i=0;i<30;i++) printf(" 0x%02x", buffer[i] );
|
|
||||||
|
|
||||||
if( chunk_size2read==0 ) {
|
if( chunk_size2read==0 ) {
|
||||||
if(size < (int)sizeof(asfh)) {
|
if(size < (int)sizeof(asfh)) {
|
||||||
@ -141,10 +139,9 @@ asf_streaming_parse_header(int fd, streaming_ctrl_t* streaming_ctrl) {
|
|||||||
chunk_size2read = asfh.objh.size;
|
chunk_size2read = asfh.objh.size;
|
||||||
printf("Size 2 read=%d\n", chunk_size2read);
|
printf("Size 2 read=%d\n", chunk_size2read);
|
||||||
}
|
}
|
||||||
//printf("buffer_size=%d\n", buffer_size );
|
|
||||||
} while( buffer_size<chunk_size2read);
|
} while( buffer_size<chunk_size2read);
|
||||||
buffer = chunk_buffer;
|
buffer = chunk_buffer;
|
||||||
//for(i=0;i<30;i++) printf(" 0x%02x", buffer[i] );
|
size = buffer_size;
|
||||||
|
|
||||||
if(asfh.cno > 256) {
|
if(asfh.cno > 256) {
|
||||||
printf("Error sub chunks number is invalid\n");
|
printf("Error sub chunks number is invalid\n");
|
||||||
@ -159,7 +156,6 @@ asf_streaming_parse_header(int fd, streaming_ctrl_t* streaming_ctrl) {
|
|||||||
|
|
||||||
switch(ASF_LOAD_GUID_PREFIX(objh.guid)) {
|
switch(ASF_LOAD_GUID_PREFIX(objh.guid)) {
|
||||||
case 0x8CABDCA1 : // File header
|
case 0x8CABDCA1 : // File header
|
||||||
//printf("Found file header\n");
|
|
||||||
pos += sizeof(objh);
|
pos += sizeof(objh);
|
||||||
memcpy(&fileh,buffer + pos,sizeof(fileh));
|
memcpy(&fileh,buffer + pos,sizeof(fileh));
|
||||||
le2me_ASF_file_header_t(&fileh);
|
le2me_ASF_file_header_t(&fileh);
|
||||||
@ -175,7 +171,6 @@ asf_streaming_parse_header(int fd, streaming_ctrl_t* streaming_ctrl) {
|
|||||||
pos += sizeof(fileh);
|
pos += sizeof(fileh);
|
||||||
break;
|
break;
|
||||||
case 0xB7DC0791 : // stream header
|
case 0xB7DC0791 : // stream header
|
||||||
//printf("Found stream header\n");
|
|
||||||
pos += sizeof(objh);
|
pos += sizeof(objh);
|
||||||
memcpy(&streamh,buffer + pos,sizeof(streamh));
|
memcpy(&streamh,buffer + pos,sizeof(streamh));
|
||||||
le2me_ASF_stream_header_t(&streamh);
|
le2me_ASF_stream_header_t(&streamh);
|
||||||
|
Loading…
Reference in New Issue
Block a user