Reindent after r24516.
Originally committed as revision 24517 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
e87b7d72c6
commit
db9cc3a55a
@ -282,120 +282,117 @@ static MMSSCPacketType get_tcp_server_response(MMSContext *mms)
|
|||||||
return packet_type;
|
return packet_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle command packet.
|
// handle command packet.
|
||||||
if(AV_RL32(mms->in_buffer + 4)==0xb00bface) {
|
if(AV_RL32(mms->in_buffer + 4)==0xb00bface) {
|
||||||
int length_remaining, hr;
|
int length_remaining, hr;
|
||||||
|
|
||||||
mms->incoming_flags= mms->in_buffer[3];
|
mms->incoming_flags= mms->in_buffer[3];
|
||||||
read_result= url_read_complete(mms->mms_hd, mms->in_buffer+8, 4);
|
read_result= url_read_complete(mms->mms_hd, mms->in_buffer+8, 4);
|
||||||
if(read_result != 4) {
|
if(read_result != 4) {
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
av_log(NULL, AV_LOG_ERROR,
|
||||||
"Reading command packet length failed: %d (%s)\n",
|
"Reading command packet length failed: %d (%s)\n",
|
||||||
read_result,
|
read_result,
|
||||||
read_result < 0 ? strerror(read_result) :
|
read_result < 0 ? strerror(read_result) :
|
||||||
"The server closed the connection");
|
"The server closed the connection");
|
||||||
return read_result < 0 ? read_result : AVERROR_IO;
|
return read_result < 0 ? read_result : AVERROR_IO;
|
||||||
}
|
}
|
||||||
|
|
||||||
length_remaining= AV_RL32(mms->in_buffer+8) + 4;
|
length_remaining= AV_RL32(mms->in_buffer+8) + 4;
|
||||||
dprintf(NULL, "Length remaining is %d\n", length_remaining);
|
dprintf(NULL, "Length remaining is %d\n", length_remaining);
|
||||||
// read the rest of the packet.
|
// read the rest of the packet.
|
||||||
if (length_remaining < 0
|
if (length_remaining < 0
|
||||||
|| length_remaining > sizeof(mms->in_buffer) - 12) {
|
|| length_remaining > sizeof(mms->in_buffer) - 12) {
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
av_log(NULL, AV_LOG_ERROR,
|
||||||
"Incoming packet length %d exceeds bufsize %zu\n",
|
"Incoming packet length %d exceeds bufsize %zu\n",
|
||||||
length_remaining, sizeof(mms->in_buffer) - 12);
|
length_remaining, sizeof(mms->in_buffer) - 12);
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
read_result = url_read_complete(mms->mms_hd, mms->in_buffer + 12,
|
read_result = url_read_complete(mms->mms_hd, mms->in_buffer + 12,
|
||||||
length_remaining) ;
|
length_remaining) ;
|
||||||
if (read_result != length_remaining) {
|
if (read_result != length_remaining) {
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
av_log(NULL, AV_LOG_ERROR,
|
||||||
"Reading pkt data (length=%d) failed: %d (%s)\n",
|
"Reading pkt data (length=%d) failed: %d (%s)\n",
|
||||||
length_remaining, read_result,
|
length_remaining, read_result,
|
||||||
read_result < 0 ? strerror(read_result) :
|
read_result < 0 ? strerror(read_result) :
|
||||||
"The server closed the connection");
|
"The server closed the connection");
|
||||||
return read_result < 0 ? read_result : AVERROR_IO;
|
return read_result < 0 ? read_result : AVERROR_IO;
|
||||||
}
|
}
|
||||||
packet_type= AV_RL16(mms->in_buffer+36);
|
packet_type= AV_RL16(mms->in_buffer+36);
|
||||||
hr = AV_RL32(mms->in_buffer + 40);
|
hr = AV_RL32(mms->in_buffer + 40);
|
||||||
if (hr) {
|
if (hr) {
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
av_log(NULL, AV_LOG_ERROR,
|
||||||
"Server sent an error status code: 0x%08x\n",
|
"Server sent an error status code: 0x%08x\n", hr);
|
||||||
hr);
|
return AVERROR_UNKNOWN;
|
||||||
return AVERROR_UNKNOWN;
|
}
|
||||||
|
} else {
|
||||||
|
int length_remaining;
|
||||||
|
int packet_id_type;
|
||||||
|
int tmp;
|
||||||
|
|
||||||
|
// note we cache the first 8 bytes,
|
||||||
|
// then fill up the buffer with the others
|
||||||
|
tmp = AV_RL16(mms->in_buffer + 6);
|
||||||
|
length_remaining = (tmp - 8) & 0xffff;
|
||||||
|
mms->incoming_packet_seq = AV_RL32(mms->in_buffer);
|
||||||
|
packet_id_type = mms->in_buffer[4];
|
||||||
|
mms->incoming_flags = mms->in_buffer[5];
|
||||||
|
|
||||||
|
if (length_remaining < 0
|
||||||
|
|| length_remaining > sizeof(mms->in_buffer) - 8) {
|
||||||
|
av_log(NULL, AV_LOG_ERROR,
|
||||||
|
"Data length %d is invalid or too large (max=%zu)\n",
|
||||||
|
length_remaining, sizeof(mms->in_buffer));
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
}
|
||||||
|
mms->remaining_in_len = length_remaining;
|
||||||
|
mms->read_in_ptr = mms->in_buffer;
|
||||||
|
read_result= url_read_complete(mms->mms_hd, mms->in_buffer, length_remaining);
|
||||||
|
if(read_result != length_remaining) {
|
||||||
|
av_log(NULL, AV_LOG_ERROR,
|
||||||
|
"Failed to read packet data of size %d: %d (%s)\n",
|
||||||
|
length_remaining, read_result,
|
||||||
|
read_result < 0 ? strerror(read_result) :
|
||||||
|
"The server closed the connection");
|
||||||
|
return read_result < 0 ? read_result : AVERROR_IO;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if we successfully read everything.
|
||||||
|
if(packet_id_type == mms->header_packet_id) {
|
||||||
|
packet_type = SC_PKT_ASF_HEADER;
|
||||||
|
// Store the asf header
|
||||||
|
if(!mms->header_parsed) {
|
||||||
|
void *p = av_realloc(mms->asf_header,
|
||||||
|
mms->asf_header_size + mms->remaining_in_len);
|
||||||
|
if (!p) {
|
||||||
|
av_freep(&mms->asf_header);
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
mms->asf_header = p;
|
||||||
|
memcpy(mms->asf_header + mms->asf_header_size,
|
||||||
|
mms->read_in_ptr, mms->remaining_in_len);
|
||||||
|
mms->asf_header_size += mms->remaining_in_len;
|
||||||
|
}
|
||||||
|
// 0x04 means asf header is sent in multiple packets.
|
||||||
|
if (mms->incoming_flags == 0x04)
|
||||||
|
continue;
|
||||||
|
} else if(packet_id_type == mms->packet_id) {
|
||||||
|
packet_type = SC_PKT_ASF_MEDIA;
|
||||||
} else {
|
} else {
|
||||||
int length_remaining;
|
dprintf(NULL, "packet id type %d is old.", packet_id_type);
|
||||||
int packet_id_type;
|
|
||||||
int tmp;
|
|
||||||
|
|
||||||
// note we cache the first 8 bytes,
|
|
||||||
// then fill up the buffer with the others
|
|
||||||
tmp = AV_RL16(mms->in_buffer + 6);
|
|
||||||
length_remaining = (tmp - 8) & 0xffff;
|
|
||||||
mms->incoming_packet_seq = AV_RL32(mms->in_buffer);
|
|
||||||
packet_id_type = mms->in_buffer[4];
|
|
||||||
mms->incoming_flags = mms->in_buffer[5];
|
|
||||||
|
|
||||||
if (length_remaining < 0
|
|
||||||
|| length_remaining > sizeof(mms->in_buffer) - 8) {
|
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
|
||||||
"Data length %d is invalid or too large (max=%zu)\n",
|
|
||||||
length_remaining, sizeof(mms->in_buffer));
|
|
||||||
return AVERROR_INVALIDDATA;
|
|
||||||
}
|
|
||||||
mms->remaining_in_len = length_remaining;
|
|
||||||
mms->read_in_ptr = mms->in_buffer;
|
|
||||||
read_result= url_read_complete(mms->mms_hd, mms->in_buffer, length_remaining);
|
|
||||||
if(read_result != length_remaining) {
|
|
||||||
av_log(NULL, AV_LOG_ERROR,
|
|
||||||
"Failed to read packet data of size %d: %d (%s)\n",
|
|
||||||
length_remaining, read_result,
|
|
||||||
read_result < 0 ? strerror(read_result) :
|
|
||||||
"The server closed the connection");
|
|
||||||
return read_result < 0 ? read_result : AVERROR_IO;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if we successfully read everything.
|
|
||||||
if(packet_id_type == mms->header_packet_id) {
|
|
||||||
packet_type = SC_PKT_ASF_HEADER;
|
|
||||||
// Store the asf header
|
|
||||||
if(!mms->header_parsed) {
|
|
||||||
void *p = av_realloc(mms->asf_header,
|
|
||||||
mms->asf_header_size
|
|
||||||
+ mms->remaining_in_len);
|
|
||||||
if (!p) {
|
|
||||||
av_freep(&mms->asf_header);
|
|
||||||
return AVERROR(ENOMEM);
|
|
||||||
}
|
|
||||||
mms->asf_header = p;
|
|
||||||
memcpy(mms->asf_header + mms->asf_header_size,
|
|
||||||
mms->read_in_ptr,
|
|
||||||
mms->remaining_in_len);
|
|
||||||
mms->asf_header_size += mms->remaining_in_len;
|
|
||||||
}
|
|
||||||
// 0x04 means asf header is sent in multiple packets.
|
|
||||||
if (mms->incoming_flags == 0x04)
|
|
||||||
continue;
|
|
||||||
} else if(packet_id_type == mms->packet_id) {
|
|
||||||
packet_type = SC_PKT_ASF_MEDIA;
|
|
||||||
} else {
|
|
||||||
dprintf(NULL, "packet id type %d is old.", packet_id_type);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// preprocess some packet type
|
|
||||||
if(packet_type == SC_PKT_KEEPALIVE) {
|
|
||||||
send_keepalive_packet(mms);
|
|
||||||
continue;
|
continue;
|
||||||
} else if(packet_type == SC_PKT_STREAM_CHANGING) {
|
|
||||||
handle_packet_stream_changing_type(mms);
|
|
||||||
} else if(packet_type == SC_PKT_ASF_MEDIA) {
|
|
||||||
pad_media_packet(mms);
|
|
||||||
}
|
}
|
||||||
return packet_type;
|
}
|
||||||
|
|
||||||
|
// preprocess some packet type
|
||||||
|
if(packet_type == SC_PKT_KEEPALIVE) {
|
||||||
|
send_keepalive_packet(mms);
|
||||||
|
continue;
|
||||||
|
} else if(packet_type == SC_PKT_STREAM_CHANGING) {
|
||||||
|
handle_packet_stream_changing_type(mms);
|
||||||
|
} else if(packet_type == SC_PKT_ASF_MEDIA) {
|
||||||
|
pad_media_packet(mms);
|
||||||
|
}
|
||||||
|
return packet_type;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user