mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
libavformat: Use ffio_free_dyn_buf where applicable
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
199fb40278
commit
8e32b1f096
@ -155,8 +155,7 @@ static void set_codec_str(AVFormatContext *s, AVCodecContext *codec,
|
|||||||
if (avio_open_dyn_buf(&pb) < 0)
|
if (avio_open_dyn_buf(&pb) < 0)
|
||||||
return;
|
return;
|
||||||
if (ff_isom_write_avcc(pb, extradata, extradata_size) < 0) {
|
if (ff_isom_write_avcc(pb, extradata, extradata_size) < 0) {
|
||||||
avio_close_dyn_buf(pb, &tmpbuf);
|
ffio_free_dyn_buf(&pb);
|
||||||
av_free(tmpbuf);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
extradata_size = avio_close_dyn_buf(pb, &extradata);
|
extradata_size = avio_close_dyn_buf(pb, &extradata);
|
||||||
|
@ -207,8 +207,8 @@ static int decode_str(AVFormatContext *s, AVIOContext *pb, int encoding,
|
|||||||
case ID3v2_ENCODING_UTF16BOM:
|
case ID3v2_ENCODING_UTF16BOM:
|
||||||
if ((left -= 2) < 0) {
|
if ((left -= 2) < 0) {
|
||||||
av_log(s, AV_LOG_ERROR, "Cannot read BOM value, input too short\n");
|
av_log(s, AV_LOG_ERROR, "Cannot read BOM value, input too short\n");
|
||||||
avio_close_dyn_buf(dynbuf, dst);
|
ffio_free_dyn_buf(&dynbuf);
|
||||||
av_freep(dst);
|
*dst = NULL;
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
switch (avio_rb16(pb)) {
|
switch (avio_rb16(pb)) {
|
||||||
@ -218,8 +218,8 @@ static int decode_str(AVFormatContext *s, AVIOContext *pb, int encoding,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
av_log(s, AV_LOG_ERROR, "Incorrect BOM value\n");
|
av_log(s, AV_LOG_ERROR, "Incorrect BOM value\n");
|
||||||
avio_close_dyn_buf(dynbuf, dst);
|
ffio_free_dyn_buf(&dynbuf);
|
||||||
av_freep(dst);
|
*dst = NULL;
|
||||||
*maxread = left;
|
*maxread = left;
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
@ -458,7 +458,6 @@ done:
|
|||||||
void ff_mov_close_hinting(MOVTrack *track)
|
void ff_mov_close_hinting(MOVTrack *track)
|
||||||
{
|
{
|
||||||
AVFormatContext *rtp_ctx = track->rtp_ctx;
|
AVFormatContext *rtp_ctx = track->rtp_ctx;
|
||||||
uint8_t *ptr;
|
|
||||||
|
|
||||||
av_freep(&track->enc);
|
av_freep(&track->enc);
|
||||||
sample_queue_free(&track->sample_queue);
|
sample_queue_free(&track->sample_queue);
|
||||||
@ -466,8 +465,7 @@ void ff_mov_close_hinting(MOVTrack *track)
|
|||||||
return;
|
return;
|
||||||
if (rtp_ctx->pb) {
|
if (rtp_ctx->pb) {
|
||||||
av_write_trailer(rtp_ctx);
|
av_write_trailer(rtp_ctx);
|
||||||
avio_close_dyn_buf(rtp_ctx->pb, &ptr);
|
ffio_free_dyn_buf(&rtp_ctx->pb);
|
||||||
av_free(ptr);
|
|
||||||
}
|
}
|
||||||
avformat_free_context(rtp_ctx);
|
avformat_free_context(rtp_ctx);
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "libavcodec/internal.h"
|
#include "libavcodec/internal.h"
|
||||||
|
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
|
#include "avio_internal.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "mpegts.h"
|
#include "mpegts.h"
|
||||||
|
|
||||||
@ -1110,9 +1111,7 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
|
|||||||
|
|
||||||
ret = av_write_frame(ts_st->amux, &pkt2);
|
ret = av_write_frame(ts_st->amux, &pkt2);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
avio_close_dyn_buf(ts_st->amux->pb, &data);
|
ffio_free_dyn_buf(&ts_st->amux->pb);
|
||||||
ts_st->amux->pb = NULL;
|
|
||||||
av_free(data);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
size = avio_close_dyn_buf(ts_st->amux->pb, &data);
|
size = avio_close_dyn_buf(ts_st->amux->pb, &data);
|
||||||
|
@ -616,11 +616,8 @@ static int write_headers(AVFormatContext *avctx, AVIOContext *bc)
|
|||||||
return ret;
|
return ret;
|
||||||
if (ret > 0)
|
if (ret > 0)
|
||||||
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE);
|
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE);
|
||||||
else {
|
else
|
||||||
uint8_t *buf;
|
ffio_free_dyn_buf(&dyn_bc);
|
||||||
avio_close_dyn_buf(dyn_bc, &buf);
|
|
||||||
av_free(buf);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < nut->avf->nb_chapters; i++) {
|
for (i = 0; i < nut->avf->nb_chapters; i++) {
|
||||||
@ -629,9 +626,7 @@ static int write_headers(AVFormatContext *avctx, AVIOContext *bc)
|
|||||||
return ret;
|
return ret;
|
||||||
ret = write_chapter(nut, dyn_bc, i);
|
ret = write_chapter(nut, dyn_bc, i);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
uint8_t *buf;
|
ffio_free_dyn_buf(&dyn_bc);
|
||||||
avio_close_dyn_buf(dyn_bc, &buf);
|
|
||||||
av_freep(&buf);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE);
|
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE);
|
||||||
|
@ -89,9 +89,7 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s,
|
|||||||
if (handle && rtpctx->pb) {
|
if (handle && rtpctx->pb) {
|
||||||
avio_close(rtpctx->pb);
|
avio_close(rtpctx->pb);
|
||||||
} else if (rtpctx->pb) {
|
} else if (rtpctx->pb) {
|
||||||
uint8_t *ptr;
|
ffio_free_dyn_buf(&rtpctx->pb);
|
||||||
avio_close_dyn_buf(rtpctx->pb, &ptr);
|
|
||||||
av_free(ptr);
|
|
||||||
}
|
}
|
||||||
avformat_free_context(rtpctx);
|
avformat_free_context(rtpctx);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include "libavutil/mathematics.h"
|
#include "libavutil/mathematics.h"
|
||||||
#include "avformat.h"
|
#include "avformat.h"
|
||||||
|
#include "avio_internal.h"
|
||||||
|
|
||||||
struct MuxChain {
|
struct MuxChain {
|
||||||
AVFormatContext *mpegts_ctx;
|
AVFormatContext *mpegts_ctx;
|
||||||
@ -33,11 +34,7 @@ static int rtp_mpegts_write_close(AVFormatContext *s)
|
|||||||
|
|
||||||
if (chain->mpegts_ctx) {
|
if (chain->mpegts_ctx) {
|
||||||
av_write_trailer(chain->mpegts_ctx);
|
av_write_trailer(chain->mpegts_ctx);
|
||||||
if (chain->mpegts_ctx->pb) {
|
ffio_free_dyn_buf(&chain->mpegts_ctx->pb);
|
||||||
uint8_t *buf;
|
|
||||||
avio_close_dyn_buf(chain->mpegts_ctx->pb, &buf);
|
|
||||||
av_free(buf);
|
|
||||||
}
|
|
||||||
avformat_free_context(chain->mpegts_ctx);
|
avformat_free_context(chain->mpegts_ctx);
|
||||||
}
|
}
|
||||||
if (chain->rtp_ctx) {
|
if (chain->rtp_ctx) {
|
||||||
@ -101,11 +98,7 @@ static int rtp_mpegts_write_header(AVFormatContext *s)
|
|||||||
|
|
||||||
fail:
|
fail:
|
||||||
if (mpegts_ctx) {
|
if (mpegts_ctx) {
|
||||||
if (mpegts_ctx->pb) {
|
ffio_free_dyn_buf(&chain->mpegts_ctx->pb);
|
||||||
uint8_t *buf;
|
|
||||||
avio_close_dyn_buf(mpegts_ctx->pb, &buf);
|
|
||||||
av_free(buf);
|
|
||||||
}
|
|
||||||
avformat_free_context(mpegts_ctx);
|
avformat_free_context(mpegts_ctx);
|
||||||
}
|
}
|
||||||
if (rtp_ctx)
|
if (rtp_ctx)
|
||||||
|
@ -703,11 +703,9 @@ void ff_rtsp_undo_setup(AVFormatContext *s, int send_packets)
|
|||||||
AVFormatContext *rtpctx = rtsp_st->transport_priv;
|
AVFormatContext *rtpctx = rtsp_st->transport_priv;
|
||||||
av_write_trailer(rtpctx);
|
av_write_trailer(rtpctx);
|
||||||
if (rt->lower_transport == RTSP_LOWER_TRANSPORT_TCP) {
|
if (rt->lower_transport == RTSP_LOWER_TRANSPORT_TCP) {
|
||||||
uint8_t *ptr;
|
|
||||||
if (CONFIG_RTSP_MUXER && rtpctx->pb && send_packets)
|
if (CONFIG_RTSP_MUXER && rtpctx->pb && send_packets)
|
||||||
ff_rtsp_tcp_write_packet(s, rtsp_st);
|
ff_rtsp_tcp_write_packet(s, rtsp_st);
|
||||||
avio_close_dyn_buf(rtpctx->pb, &ptr);
|
ffio_free_dyn_buf(&rtpctx->pb);
|
||||||
av_free(ptr);
|
|
||||||
} else {
|
} else {
|
||||||
avio_close(rtpctx->pb);
|
avio_close(rtpctx->pb);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user