fail:
if (c) {
- av_free(c->buffer);
+ av_freep(&c->buffer);
av_free(c);
}
closesocket(fd);
if (ctx) {
av_write_trailer(ctx);
av_dict_free(&ctx->metadata);
- av_free(ctx->streams[0]);
- av_free(ctx);
+ av_freep(&ctx->streams[0]);
+ av_freep(&ctx);
}
h = c->rtp_handles[i];
if (h)
}
for(i=0; i<ctx->nb_streams; i++)
- av_free(ctx->streams[i]);
+ av_freep(&ctx->streams[i]);
av_freep(&ctx->streams);
av_freep(&ctx->priv_data);
av_freep(&c->pb_buffer);
av_freep(&c->packet_buffer);
- av_free(c->buffer);
+ av_freep(&c->buffer);
av_free(c);
nb_connections--;
}
return action_required;
}
-/* XXX: factorize in utils.c ? */
-/* XXX: take care with different space meaning */
-static void skip_spaces(const char **pp)
-{
- const char *p;
- p = *pp;
- while (*p == ' ' || *p == '\t')
- p++;
- *pp = p;
-}
-
static void get_word(char *buf, int buf_size, const char **pp)
{
const char *p;
char *q;
p = *pp;
- skip_spaces(&p);
+ p += strspn(p, SPACE_CHARS);
q = buf;
while (!av_isspace(*p) && *p != '\0') {
if ((q - buf) < buf_size - 1)
s->pb = pb;
if (avformat_open_input(&s, c->stream->feed_filename, fmt_in, NULL) < 0) {
- av_free(pb);
+ av_freep(&pb);
goto fail;
}
/* Now we have the actual streams */
if (s->nb_streams != feed->nb_streams) {
avformat_close_input(&s);
- av_free(pb);
+ av_freep(&pb);
http_log("Feed '%s' stream number does not match registered feed\n",
c->stream->feed_filename);
goto fail;
}
avformat_close_input(&s);
- av_free(pb);
+ av_freep(&pb);
}
c->buffer_ptr = c->buffer;
}
av_sdp_create(&avc, 1, *pbuffer, 2048);
sdp_done:
- av_free(avc->streams);
+ av_freep(&avc->streams);
av_dict_free(&avc->metadata);
av_free(avc);
av_free(avs);
}
}
/* no stream found */
- rtsp_reply_error(c, RTSP_STATUS_SERVICE); /* XXX: right error ? */
+ rtsp_reply_error(c, RTSP_STATUS_NOT_FOUND);
return;
found:
fail:
if (c) {
- av_free(c->buffer);
+ av_freep(&c->buffer);
av_free(c);
}
return NULL;