Lines Matching refs:sap
46 if (av_strstart(p->filename, "sap:", NULL))
53 struct SAPState *sap = s->priv_data;
54 if (sap->sdp_ctx)
55 avformat_close_input(&sap->sdp_ctx);
56 ffurl_closep(&sap->ann_fd);
57 av_freep(&sap->sdp);
64 struct SAPState *sap = s->priv_data;
80 /* Listen for announcements on sap.mcast.net if no host was specified */
86 ret = ffurl_open_whitelist(&sap->ann_fd, url, AVIO_FLAG_READ,
96 ret = ffurl_read(sap->ann_fd, recvbuf, sizeof(recvbuf) - 1);
120 sap->hash = AV_RB16(&recvbuf[2]);
142 sap->sdp = av_strdup(&recvbuf[pos]);
143 if (!sap->sdp) {
150 av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", sap->sdp);
151 ffio_init_context(&sap->sdp_pb, sap->sdp, strlen(sap->sdp), 0, NULL, NULL,
157 sap->sdp_ctx = avformat_alloc_context();
158 if (!sap->sdp_ctx) {
162 sap->sdp_ctx->max_delay = s->max_delay;
163 sap->sdp_ctx->pb = &sap->sdp_pb.pub;
164 sap->sdp_ctx->interrupt_callback = s->interrupt_callback;
166 if ((ret = ff_copy_whiteblacklists(sap->sdp_ctx, s)) < 0)
169 ret = avformat_open_input(&sap->sdp_ctx, "temp.sdp", infmt, NULL);
172 if (sap->sdp_ctx->ctx_flags & AVFMTCTX_NOHEADER)
174 for (i = 0; i < sap->sdp_ctx->nb_streams; i++) {
181 avcodec_parameters_copy(st->codecpar, sap->sdp_ctx->streams[i]->codecpar);
182 st->time_base = sap->sdp_ctx->streams[i]->time_base;
194 struct SAPState *sap = s->priv_data;
195 int fd = ffurl_get_file_handle(sap->ann_fd);
200 if (sap->eof)
207 ret = ffurl_read(sap->ann_fd, recvbuf, sizeof(recvbuf));
211 if (recvbuf[0] & 0x04 && hash == sap->hash) {
213 sap->eof = 1;
218 ret = av_read_frame(sap->sdp_ctx, pkt);
222 while (sap->sdp_ctx->nb_streams > s->nb_streams) {
229 avcodec_parameters_copy(st->codecpar, sap->sdp_ctx->streams[i]->codecpar);
230 st->time_base = sap->sdp_ctx->streams[i]->time_base;
237 .name = "sap",