|
|
|
@ -40,8 +40,7 @@ |
|
|
|
|
* min_pktsize values in the ASF file header. |
|
|
|
|
* @return 0 on success, <0 on failure (currently -1). |
|
|
|
|
*/ |
|
|
|
|
static int |
|
|
|
|
rtp_asf_fix_header(uint8_t *buf, int len) |
|
|
|
|
static int rtp_asf_fix_header(uint8_t *buf, int len) |
|
|
|
|
{ |
|
|
|
|
uint8_t *p = buf, *end = buf + len; |
|
|
|
|
|
|
|
|
@ -78,14 +77,12 @@ rtp_asf_fix_header(uint8_t *buf, int len) |
|
|
|
|
* on packet boundaries, such that the ASF demuxer can return |
|
|
|
|
* safely and resume business at the next packet. |
|
|
|
|
*/ |
|
|
|
|
static int |
|
|
|
|
packetizer_read(void *opaque, uint8_t *buf, int buf_size) |
|
|
|
|
static int packetizer_read(void *opaque, uint8_t *buf, int buf_size) |
|
|
|
|
{ |
|
|
|
|
return AVERROR(EAGAIN); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
init_packetizer(ByteIOContext *pb, uint8_t *buf, int len) |
|
|
|
|
static void init_packetizer(ByteIOContext *pb, uint8_t *buf, int len) |
|
|
|
|
{ |
|
|
|
|
init_put_byte(pb, buf, len, 0, NULL, packetizer_read, NULL, NULL); |
|
|
|
|
|
|
|
|
@ -118,9 +115,8 @@ void ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int |
|
|
|
|
asfrtp_parse_sdp_line (AVFormatContext *s, int stream_index, |
|
|
|
|
PayloadContext *asf, const char *line) |
|
|
|
|
static int asfrtp_parse_sdp_line(AVFormatContext *s, int stream_index, |
|
|
|
|
PayloadContext *asf, const char *line) |
|
|
|
|
{ |
|
|
|
|
if (av_strstart(line, "stream:", &line)) { |
|
|
|
|
RTSPState *rt = s->priv_data; |
|
|
|
@ -155,10 +151,10 @@ struct PayloadContext { |
|
|
|
|
* 1 when a packet was written into /p pkt, and more packets might be left; |
|
|
|
|
* <0 when not enough data was provided to return a full packet, or on error. |
|
|
|
|
*/ |
|
|
|
|
static int |
|
|
|
|
asfrtp_parse_packet (AVFormatContext *s, PayloadContext *asf, AVStream *st, |
|
|
|
|
AVPacket *pkt, uint32_t *timestamp, |
|
|
|
|
const uint8_t *buf, int len, int flags) |
|
|
|
|
static int asfrtp_parse_packet(AVFormatContext *s, PayloadContext *asf, |
|
|
|
|
AVStream *st, AVPacket *pkt, |
|
|
|
|
uint32_t *timestamp, |
|
|
|
|
const uint8_t *buf, int len, int flags) |
|
|
|
|
{ |
|
|
|
|
ByteIOContext *pb = &asf->pb; |
|
|
|
|
int res, mflags, len_off; |
|
|
|
@ -253,14 +249,12 @@ asfrtp_parse_packet (AVFormatContext *s, PayloadContext *asf, AVStream *st, |
|
|
|
|
return res == 1 ? -1 : res; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static PayloadContext * |
|
|
|
|
asfrtp_new_context (void) |
|
|
|
|
static PayloadContext *asfrtp_new_context(void) |
|
|
|
|
{ |
|
|
|
|
return av_mallocz(sizeof(PayloadContext)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static void |
|
|
|
|
asfrtp_free_context (PayloadContext *asf) |
|
|
|
|
static void asfrtp_free_context(PayloadContext *asf) |
|
|
|
|
{ |
|
|
|
|
if (asf->pktbuf) { |
|
|
|
|
uint8_t *p = NULL; |
|
|
|
|