|
|
@ -91,8 +91,9 @@ static void init_packetizer(ByteIOContext *pb, uint8_t *buf, int len) |
|
|
|
pb->buf_end = buf + len; |
|
|
|
pb->buf_end = buf + len; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p) |
|
|
|
int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
int ret = 0; |
|
|
|
if (av_strstart(p, "pgmpu:data:application/vnd.ms.wms-hdr.asfv1;base64,", &p)) { |
|
|
|
if (av_strstart(p, "pgmpu:data:application/vnd.ms.wms-hdr.asfv1;base64,", &p)) { |
|
|
|
ByteIOContext pb; |
|
|
|
ByteIOContext pb; |
|
|
|
RTSPState *rt = s->priv_data; |
|
|
|
RTSPState *rt = s->priv_data; |
|
|
@ -108,11 +109,14 @@ void ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p) |
|
|
|
av_close_input_stream(rt->asf_ctx); |
|
|
|
av_close_input_stream(rt->asf_ctx); |
|
|
|
rt->asf_ctx = NULL; |
|
|
|
rt->asf_ctx = NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
av_open_input_stream(&rt->asf_ctx, &pb, "", &asf_demuxer, NULL); |
|
|
|
ret = av_open_input_stream(&rt->asf_ctx, &pb, "", &asf_demuxer, NULL); |
|
|
|
|
|
|
|
if (ret < 0) |
|
|
|
|
|
|
|
return ret; |
|
|
|
rt->asf_pb_pos = url_ftell(&pb); |
|
|
|
rt->asf_pb_pos = url_ftell(&pb); |
|
|
|
av_free(buf); |
|
|
|
av_free(buf); |
|
|
|
rt->asf_ctx->pb = NULL; |
|
|
|
rt->asf_ctx->pb = NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return ret; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static int asfrtp_parse_sdp_line(AVFormatContext *s, int stream_index, |
|
|
|
static int asfrtp_parse_sdp_line(AVFormatContext *s, int stream_index, |
|
|
|