avformat_close_input(&rdt->rmctx);
av_freep(&rdt->mlti_data);
av_freep(&rdt->rmst);
- av_free(rdt);
}
#define RDT_HANDLER(n, s, t) \
/** Parse the a= line from the sdp field */
int (*parse_sdp_a_line)(AVFormatContext *s, int st_index,
PayloadContext *priv_data, const char *line);
- /** Free any data needed by the rtp parsing for this dynamic data. */
+ /** Free any data needed by the rtp parsing for this dynamic data.
+ * Don't free the protocol_data pointer itself, that is freed by the
+ * caller. */
void (*free)(PayloadContext *protocol_data);
/** Parse handler for this dynamic packet */
DynamicPayloadPacketHandlerProc parse_packet;
static void ac3_free_context(PayloadContext *data)
{
free_fragment(data);
- av_free(data);
}
static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
static av_cold void dv_free_context(PayloadContext *data)
{
dv_free_dyn_buffer(&data->buf);
- av_free(data);
}
static av_cold int dv_sdp_parse_fmtp_config(AVFormatContext *s,
if (pl_ctx->buf) {
h261_free_dyn_buffer(&pl_ctx->buf);
}
-
- /* free context */
- av_free(pl_ctx);
}
static int h261_handle_packet(AVFormatContext *ctx, PayloadContext *rtp_h261_ctx,
avio_close_dyn_buf(data->buf, &p);
av_free(p);
}
- av_free(data);
}
static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
data->packet_types_received[ii], ii);
}
#endif
-
- av_free(data);
}
static int parse_h264_sdp_line(AVFormatContext *s, int st_index,
static void jpeg_free_context(PayloadContext *jpeg)
{
free_frame(jpeg);
- av_free(jpeg);
}
static int jpeg_create_huffman_table(PutByteContext *p, int table_class,
av_free(p);
}
av_free(data->buf);
- av_free(data);
}
static int latm_parse_packet(AVFormatContext *ctx, PayloadContext *data,
{
free_fragment(data);
av_free(data->split_buf);
- av_free(data);
}
static int mpa_robust_parse_rtp_header(AVFormatContext *ctx,
{
av_free(data->au_headers);
av_free(data->mode);
- av_free(data);
}
static int parse_fmtp_config(AVCodecContext *codec, const char *value)
return;
if (data->ts)
ff_mpegts_parse_close(data->ts);
- av_free(data);
}
static av_cold int mpegts_init(AVFormatContext *ctx, int st_index,
static void qt_rtp_free(PayloadContext *qt)
{
av_freep(&qt->pkt.data);
- av_free(qt);
}
#define RTP_QT_HANDLER(m, n, s, t) \
avio_close_dyn_buf(sv->pktbuf, &buf);
av_free(buf);
}
- av_free(sv);
}
RTPDynamicProtocolHandler ff_svq3_dynamic_handler = {
static void vp8_free_context(PayloadContext *vp8)
{
vp8_free_buffer(vp8);
- av_free(vp8);
}
static int vp8_need_keyframe(PayloadContext *vp8)
{
free_fragment(data);
av_free(data->split_buf);
- av_free(data);
}
if (rtsp_st->dynamic_handler->free)
rtsp_st->dynamic_handler->free(
rtsp_st->dynamic_protocol_context);
- else
- av_free(rtsp_st->dynamic_protocol_context);
+ av_free(rtsp_st->dynamic_protocol_context);
}
for (j = 0; j < rtsp_st->nb_include_source_addrs; j++)
av_free(rtsp_st->include_source_addrs[j]);