You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
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>
This commit is contained in:
@@ -554,7 +554,6 @@ rdt_free_context (PayloadContext *rdt)
|
|||||||
avformat_close_input(&rdt->rmctx);
|
avformat_close_input(&rdt->rmctx);
|
||||||
av_freep(&rdt->mlti_data);
|
av_freep(&rdt->mlti_data);
|
||||||
av_freep(&rdt->rmst);
|
av_freep(&rdt->rmst);
|
||||||
av_free(rdt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define RDT_HANDLER(n, s, t) \
|
#define RDT_HANDLER(n, s, t) \
|
||||||
|
@@ -127,7 +127,9 @@ struct RTPDynamicProtocolHandler {
|
|||||||
/** Parse the a= line from the sdp field */
|
/** Parse the a= line from the sdp field */
|
||||||
int (*parse_sdp_a_line)(AVFormatContext *s, int st_index,
|
int (*parse_sdp_a_line)(AVFormatContext *s, int st_index,
|
||||||
PayloadContext *priv_data, const char *line);
|
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);
|
void (*free)(PayloadContext *protocol_data);
|
||||||
/** Parse handler for this dynamic packet */
|
/** Parse handler for this dynamic packet */
|
||||||
DynamicPayloadPacketHandlerProc parse_packet;
|
DynamicPayloadPacketHandlerProc parse_packet;
|
||||||
|
@@ -44,7 +44,6 @@ static void free_fragment(PayloadContext *data)
|
|||||||
static void ac3_free_context(PayloadContext *data)
|
static void ac3_free_context(PayloadContext *data)
|
||||||
{
|
{
|
||||||
free_fragment(data);
|
free_fragment(data);
|
||||||
av_free(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
|
static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
|
||||||
|
@@ -42,7 +42,6 @@ static void dv_free_dyn_buffer(AVIOContext **dyn_buf)
|
|||||||
static av_cold void dv_free_context(PayloadContext *data)
|
static av_cold void dv_free_context(PayloadContext *data)
|
||||||
{
|
{
|
||||||
dv_free_dyn_buffer(&data->buf);
|
dv_free_dyn_buffer(&data->buf);
|
||||||
av_free(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_cold int dv_sdp_parse_fmtp_config(AVFormatContext *s,
|
static av_cold int dv_sdp_parse_fmtp_config(AVFormatContext *s,
|
||||||
|
@@ -50,9 +50,6 @@ static av_cold void h261_free_context(PayloadContext *pl_ctx)
|
|||||||
if (pl_ctx->buf) {
|
if (pl_ctx->buf) {
|
||||||
h261_free_dyn_buffer(&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,
|
static int h261_handle_packet(AVFormatContext *ctx, PayloadContext *rtp_h261_ctx,
|
||||||
|
@@ -46,7 +46,6 @@ static void h263_free_context(PayloadContext *data)
|
|||||||
avio_close_dyn_buf(data->buf, &p);
|
avio_close_dyn_buf(data->buf, &p);
|
||||||
av_free(p);
|
av_free(p);
|
||||||
}
|
}
|
||||||
av_free(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
|
static int h263_handle_packet(AVFormatContext *ctx, PayloadContext *data,
|
||||||
|
@@ -382,8 +382,6 @@ static void h264_free_context(PayloadContext *data)
|
|||||||
data->packet_types_received[ii], ii);
|
data->packet_types_received[ii], ii);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
av_free(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int parse_h264_sdp_line(AVFormatContext *s, int st_index,
|
static int parse_h264_sdp_line(AVFormatContext *s, int st_index,
|
||||||
|
@@ -72,7 +72,6 @@ static void free_frame(PayloadContext *jpeg)
|
|||||||
static void jpeg_free_context(PayloadContext *jpeg)
|
static void jpeg_free_context(PayloadContext *jpeg)
|
||||||
{
|
{
|
||||||
free_frame(jpeg);
|
free_frame(jpeg);
|
||||||
av_free(jpeg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int jpeg_create_huffman_table(PutByteContext *p, int table_class,
|
static int jpeg_create_huffman_table(PutByteContext *p, int table_class,
|
||||||
|
@@ -39,7 +39,6 @@ static void latm_free_context(PayloadContext *data)
|
|||||||
av_free(p);
|
av_free(p);
|
||||||
}
|
}
|
||||||
av_freep(&data->buf);
|
av_freep(&data->buf);
|
||||||
av_free(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int latm_parse_packet(AVFormatContext *ctx, PayloadContext *data,
|
static int latm_parse_packet(AVFormatContext *ctx, PayloadContext *data,
|
||||||
|
@@ -47,7 +47,6 @@ static void mpa_robust_free_context(PayloadContext *data)
|
|||||||
{
|
{
|
||||||
free_fragment(data);
|
free_fragment(data);
|
||||||
av_free(data->split_buf);
|
av_free(data->split_buf);
|
||||||
av_free(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mpa_robust_parse_rtp_header(AVFormatContext *ctx,
|
static int mpa_robust_parse_rtp_header(AVFormatContext *ctx,
|
||||||
|
@@ -95,7 +95,6 @@ static void free_context(PayloadContext *data)
|
|||||||
{
|
{
|
||||||
av_freep(&data->au_headers);
|
av_freep(&data->au_headers);
|
||||||
av_freep(&data->mode);
|
av_freep(&data->mode);
|
||||||
av_freep(&data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int parse_fmtp_config(AVCodecContext *codec, const char *value)
|
static int parse_fmtp_config(AVCodecContext *codec, const char *value)
|
||||||
|
@@ -36,7 +36,6 @@ static void mpegts_free_context(PayloadContext *data)
|
|||||||
return;
|
return;
|
||||||
if (data->ts)
|
if (data->ts)
|
||||||
avpriv_mpegts_parse_close(data->ts);
|
avpriv_mpegts_parse_close(data->ts);
|
||||||
av_free(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static av_cold int mpegts_init(AVFormatContext *ctx, int st_index,
|
static av_cold int mpegts_init(AVFormatContext *ctx, int st_index,
|
||||||
|
@@ -238,7 +238,6 @@ static int qt_rtp_parse_packet(AVFormatContext *s, PayloadContext *qt,
|
|||||||
static void qt_rtp_free(PayloadContext *qt)
|
static void qt_rtp_free(PayloadContext *qt)
|
||||||
{
|
{
|
||||||
av_freep(&qt->pkt.data);
|
av_freep(&qt->pkt.data);
|
||||||
av_free(qt);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define RTP_QT_HANDLER(m, n, s, t) \
|
#define RTP_QT_HANDLER(m, n, s, t) \
|
||||||
|
@@ -115,7 +115,6 @@ static void svq3_extradata_free(PayloadContext *sv)
|
|||||||
avio_close_dyn_buf(sv->pktbuf, &buf);
|
avio_close_dyn_buf(sv->pktbuf, &buf);
|
||||||
av_free(buf);
|
av_free(buf);
|
||||||
}
|
}
|
||||||
av_free(sv);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RTPDynamicProtocolHandler ff_svq3_dynamic_handler = {
|
RTPDynamicProtocolHandler ff_svq3_dynamic_handler = {
|
||||||
|
@@ -278,7 +278,6 @@ static av_cold int vp8_init(AVFormatContext *s, int st_index, PayloadContext *vp
|
|||||||
static void vp8_free_context(PayloadContext *vp8)
|
static void vp8_free_context(PayloadContext *vp8)
|
||||||
{
|
{
|
||||||
vp8_free_buffer(vp8);
|
vp8_free_buffer(vp8);
|
||||||
av_free(vp8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int vp8_need_keyframe(PayloadContext *vp8)
|
static int vp8_need_keyframe(PayloadContext *vp8)
|
||||||
|
@@ -63,7 +63,6 @@ static void xiph_free_context(PayloadContext * data)
|
|||||||
{
|
{
|
||||||
free_fragment(data);
|
free_fragment(data);
|
||||||
av_freep(&data->split_buf);
|
av_freep(&data->split_buf);
|
||||||
av_freep(&data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -732,7 +732,6 @@ void ff_rtsp_close_streams(AVFormatContext *s)
|
|||||||
if (rtsp_st->dynamic_handler->free)
|
if (rtsp_st->dynamic_handler->free)
|
||||||
rtsp_st->dynamic_handler->free(
|
rtsp_st->dynamic_handler->free(
|
||||||
rtsp_st->dynamic_protocol_context);
|
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++)
|
for (j = 0; j < rtsp_st->nb_include_source_addrs; j++)
|
||||||
|
Reference in New Issue
Block a user