aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-02-25 00:25:12 +0100
committerMichael Niedermayer <michaelni@gmx.at>2015-02-25 00:25:12 +0100
commitfa80b76b110c663809671f7254bc07513710c061 (patch)
tree8e5de25c31794db57407a8367a84f7207342631b
parent64f58d20b2008bd2c633beef3c21331dfff0d0e5 (diff)
parentbb4a310bb85f43e62240145a656b1e5285b14239 (diff)
downloadffmpeg-fa80b76b110c663809671f7254bc07513710c061.tar.gz
Merge commit 'bb4a310bb85f43e62240145a656b1e5285b14239'
* commit 'bb4a310bb85f43e62240145a656b1e5285b14239': rtpdec: Don't free the payload context in the .free function Conflicts: libavformat/rtpdec_latm.c libavformat/rtpdec_mpeg4.c libavformat/rtpdec_mpegts.c libavformat/rtpdec_xiph.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/rdt.c1
-rw-r--r--libavformat/rtpdec.h4
-rw-r--r--libavformat/rtpdec_ac3.c1
-rw-r--r--libavformat/rtpdec_dv.c1
-rw-r--r--libavformat/rtpdec_h261.c3
-rw-r--r--libavformat/rtpdec_h263_rfc2190.c1
-rw-r--r--libavformat/rtpdec_h264.c2
-rw-r--r--libavformat/rtpdec_jpeg.c1
-rw-r--r--libavformat/rtpdec_latm.c1
-rw-r--r--libavformat/rtpdec_mpa_robust.c1
-rw-r--r--libavformat/rtpdec_mpeg4.c1
-rw-r--r--libavformat/rtpdec_mpegts.c1
-rw-r--r--libavformat/rtpdec_qt.c1
-rw-r--r--libavformat/rtpdec_svq3.c1
-rw-r--r--libavformat/rtpdec_vp8.c1
-rw-r--r--libavformat/rtpdec_xiph.c1
-rw-r--r--libavformat/rtsp.c3
17 files changed, 4 insertions, 21 deletions
diff --git a/libavformat/rdt.c b/libavformat/rdt.c
index 68ad814851..3d28be7b92 100644
--- a/libavformat/rdt.c
+++ b/libavformat/rdt.c
@@ -554,7 +554,6 @@ rdt_free_context (PayloadContext *rdt)
avformat_close_input(&rdt->rmctx);
av_freep(&rdt->mlti_data);
av_freep(&rdt->rmst);
- av_free(rdt);
}
#define RDT_HANDLER(n, s, t) \
diff --git a/libavformat/rtpdec.h b/libavformat/rtpdec.h
index b54e258412..23329b6df3 100644
--- a/libavformat/rtpdec.h
+++ b/libavformat/rtpdec.h
@@ -127,7 +127,9 @@ struct RTPDynamicProtocolHandler {
/** 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;
diff --git a/libavformat/rtpdec_ac3.c b/libavformat/rtpdec_ac3.c
index 5511d217b8..b9e6e228fb 100644
--- a/libavformat/rtpdec_ac3.c
+++ b/libavformat/rtpdec_ac3.c
@@ -44,7 +44,6 @@ static void free_fragment(PayloadContext *data)
static void ac3_free_context(PayloadContext *data)
{
free_fragment(data);
- av_free(data);
}
static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
diff --git a/libavformat/rtpdec_dv.c b/libavformat/rtpdec_dv.c
index d8a4de4c07..3a7e14159b 100644
--- a/libavformat/rtpdec_dv.c
+++ b/libavformat/rtpdec_dv.c
@@ -42,7 +42,6 @@ static void dv_free_dyn_buffer(AVIOContext **dyn_buf)
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,
diff --git a/libavformat/rtpdec_h261.c b/libavformat/rtpdec_h261.c
index 1555523195..2f562bb579 100644
--- a/libavformat/rtpdec_h261.c
+++ b/libavformat/rtpdec_h261.c
@@ -50,9 +50,6 @@ static av_cold void h261_free_context(PayloadContext *pl_ctx)
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,
diff --git a/libavformat/rtpdec_h263_rfc2190.c b/libavformat/rtpdec_h263_rfc2190.c
index 1800a261ed..ce2aacaf50 100644
--- a/libavformat/rtpdec_h263_rfc2190.c
+++ b/libavformat/rtpdec_h263_rfc2190.c
@@ -46,7 +46,6 @@ static void h263_free_context(PayloadContext *data)
avio_close_dyn_buf(data->buf, &p);
av_free(p);
}
- av_free(data);
}
static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
diff --git a/libavformat/rtpdec_h264.c b/libavformat/rtpdec_h264.c
index 5db3b56e81..64ecde11c0 100644
--- a/libavformat/rtpdec_h264.c
+++ b/libavformat/rtpdec_h264.c
@@ -382,8 +382,6 @@ static void h264_free_context(PayloadContext *data)
data->packet_types_received[ii], ii);
}
#endif
-
- av_free(data);
}
static int parse_h264_sdp_line(AVFormatContext *s, int st_index,
diff --git a/libavformat/rtpdec_jpeg.c b/libavformat/rtpdec_jpeg.c
index 255351087f..7c1e7181ae 100644
--- a/libavformat/rtpdec_jpeg.c
+++ b/libavformat/rtpdec_jpeg.c
@@ -72,7 +72,6 @@ static void free_frame(PayloadContext *jpeg)
static void jpeg_free_context(PayloadContext *jpeg)
{
free_frame(jpeg);
- av_free(jpeg);
}
static int jpeg_create_huffman_table(PutByteContext *p, int table_class,
diff --git a/libavformat/rtpdec_latm.c b/libavformat/rtpdec_latm.c
index 74bf4f5ce1..2916f6a897 100644
--- a/libavformat/rtpdec_latm.c
+++ b/libavformat/rtpdec_latm.c
@@ -39,7 +39,6 @@ static void latm_free_context(PayloadContext *data)
av_free(p);
}
av_freep(&data->buf);
- av_free(data);
}
static int latm_parse_packet(AVFormatContext *ctx, PayloadContext *data,
diff --git a/libavformat/rtpdec_mpa_robust.c b/libavformat/rtpdec_mpa_robust.c
index cbdfb58f09..313062d30f 100644
--- a/libavformat/rtpdec_mpa_robust.c
+++ b/libavformat/rtpdec_mpa_robust.c
@@ -47,7 +47,6 @@ static void mpa_robust_free_context(PayloadContext *data)
{
free_fragment(data);
av_free(data->split_buf);
- av_free(data);
}
static int mpa_robust_parse_rtp_header(AVFormatContext *ctx,
diff --git a/libavformat/rtpdec_mpeg4.c b/libavformat/rtpdec_mpeg4.c
index 3ad82dda2d..23b5dc8b0e 100644
--- a/libavformat/rtpdec_mpeg4.c
+++ b/libavformat/rtpdec_mpeg4.c
@@ -95,7 +95,6 @@ static void free_context(PayloadContext *data)
{
av_freep(&data->au_headers);
av_freep(&data->mode);
- av_freep(&data);
}
static int parse_fmtp_config(AVCodecContext *codec, const char *value)
diff --git a/libavformat/rtpdec_mpegts.c b/libavformat/rtpdec_mpegts.c
index ae17f4ec0f..c0c07fd0f8 100644
--- a/libavformat/rtpdec_mpegts.c
+++ b/libavformat/rtpdec_mpegts.c
@@ -36,7 +36,6 @@ static void mpegts_free_context(PayloadContext *data)
return;
if (data->ts)
avpriv_mpegts_parse_close(data->ts);
- av_free(data);
}
static av_cold int mpegts_init(AVFormatContext *ctx, int st_index,
diff --git a/libavformat/rtpdec_qt.c b/libavformat/rtpdec_qt.c
index 40701ebfa7..2a4a08f960 100644
--- a/libavformat/rtpdec_qt.c
+++ b/libavformat/rtpdec_qt.c
@@ -238,7 +238,6 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
static void qt_rtp_free(PayloadContext *qt)
{
av_freep(&qt->pkt.data);
- av_free(qt);
}
#define RTP_QT_HANDLER(m, n, s, t) \
diff --git a/libavformat/rtpdec_svq3.c b/libavformat/rtpdec_svq3.c
index bffa1a8fc3..4d2d6ac8d1 100644
--- a/libavformat/rtpdec_svq3.c
+++ b/libavformat/rtpdec_svq3.c
@@ -115,7 +115,6 @@ static void svq3_extradata_free(PayloadContext *sv)
avio_close_dyn_buf(sv->pktbuf, &buf);
av_free(buf);
}
- av_free(sv);
}
RTPDynamicProtocolHandler ff_svq3_dynamic_handler = {
diff --git a/libavformat/rtpdec_vp8.c b/libavformat/rtpdec_vp8.c
index fca2295b0e..0c93e191c9 100644
--- a/libavformat/rtpdec_vp8.c
+++ b/libavformat/rtpdec_vp8.c
@@ -278,7 +278,6 @@ static av_cold int vp8_init(AVFormatContext *s, int st_index, PayloadContext *vp
static void vp8_free_context(PayloadContext *vp8)
{
vp8_free_buffer(vp8);
- av_free(vp8);
}
static int vp8_need_keyframe(PayloadContext *vp8)
diff --git a/libavformat/rtpdec_xiph.c b/libavformat/rtpdec_xiph.c
index 49a33d7391..535cbff549 100644
--- a/libavformat/rtpdec_xiph.c
+++ b/libavformat/rtpdec_xiph.c
@@ -63,7 +63,6 @@ static void xiph_free_context(PayloadContext * data)
{
free_fragment(data);
av_freep(&data->split_buf);
- av_freep(&data);
}
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 79212c0af5..32ff18ec03 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -732,8 +732,7 @@ void ff_rtsp_close_streams(AVFormatContext *s)
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_freep(&rtsp_st->include_source_addrs[j]);