* commit '8e32b1f0963d01d4f5d4803eb721f162e0d58d9a':
libavformat: Use ffio_free_dyn_buf where applicable
Merged-by: Michael Niedermayer <michaelni@gmx.at>
... | ... |
@@ -155,8 +155,7 @@ static void set_codec_str(AVFormatContext *s, AVCodecContext *codec, |
155 | 155 |
if (avio_open_dyn_buf(&pb) < 0) |
156 | 156 |
return; |
157 | 157 |
if (ff_isom_write_avcc(pb, extradata, extradata_size) < 0) { |
158 |
- avio_close_dyn_buf(pb, &tmpbuf); |
|
159 |
- av_free(tmpbuf); |
|
158 |
+ ffio_free_dyn_buf(&pb); |
|
160 | 159 |
return; |
161 | 160 |
} |
162 | 161 |
extradata_size = avio_close_dyn_buf(pb, &extradata); |
... | ... |
@@ -265,8 +265,8 @@ static int decode_str(AVFormatContext *s, AVIOContext *pb, int encoding, |
265 | 265 |
case ID3v2_ENCODING_UTF16BOM: |
266 | 266 |
if ((left -= 2) < 0) { |
267 | 267 |
av_log(s, AV_LOG_ERROR, "Cannot read BOM value, input too short\n"); |
268 |
- avio_close_dyn_buf(dynbuf, dst); |
|
269 |
- av_freep(dst); |
|
268 |
+ ffio_free_dyn_buf(&dynbuf); |
|
269 |
+ *dst = NULL; |
|
270 | 270 |
return AVERROR_INVALIDDATA; |
271 | 271 |
} |
272 | 272 |
switch (avio_rb16(pb)) { |
... | ... |
@@ -276,8 +276,8 @@ static int decode_str(AVFormatContext *s, AVIOContext *pb, int encoding, |
276 | 276 |
break; |
277 | 277 |
default: |
278 | 278 |
av_log(s, AV_LOG_ERROR, "Incorrect BOM value\n"); |
279 |
- avio_close_dyn_buf(dynbuf, dst); |
|
280 |
- av_freep(dst); |
|
279 |
+ ffio_free_dyn_buf(&dynbuf); |
|
280 |
+ *dst = NULL; |
|
281 | 281 |
*maxread = left; |
282 | 282 |
return AVERROR_INVALIDDATA; |
283 | 283 |
} |
... | ... |
@@ -459,7 +459,6 @@ done: |
459 | 459 |
void ff_mov_close_hinting(MOVTrack *track) |
460 | 460 |
{ |
461 | 461 |
AVFormatContext *rtp_ctx = track->rtp_ctx; |
462 |
- uint8_t *ptr; |
|
463 | 462 |
|
464 | 463 |
av_freep(&track->enc); |
465 | 464 |
sample_queue_free(&track->sample_queue); |
... | ... |
@@ -467,8 +466,7 @@ void ff_mov_close_hinting(MOVTrack *track) |
467 | 467 |
return; |
468 | 468 |
if (rtp_ctx->pb) { |
469 | 469 |
av_write_trailer(rtp_ctx); |
470 |
- avio_close_dyn_buf(rtp_ctx->pb, &ptr); |
|
471 |
- av_free(ptr); |
|
470 |
+ ffio_free_dyn_buf(&rtp_ctx->pb); |
|
472 | 471 |
} |
473 | 472 |
avformat_free_context(rtp_ctx); |
474 | 473 |
} |
... | ... |
@@ -30,6 +30,7 @@ |
30 | 30 |
#include "libavcodec/internal.h" |
31 | 31 |
|
32 | 32 |
#include "avformat.h" |
33 |
+#include "avio_internal.h" |
|
33 | 34 |
#include "internal.h" |
34 | 35 |
#include "mpegts.h" |
35 | 36 |
|
... | ... |
@@ -1327,9 +1328,7 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt) |
1327 | 1327 |
|
1328 | 1328 |
ret = av_write_frame(ts_st->amux, &pkt2); |
1329 | 1329 |
if (ret < 0) { |
1330 |
- avio_close_dyn_buf(ts_st->amux->pb, &data); |
|
1331 |
- ts_st->amux->pb = NULL; |
|
1332 |
- av_free(data); |
|
1330 |
+ ffio_free_dyn_buf(&ts_st->amux->pb); |
|
1333 | 1331 |
return ret; |
1334 | 1332 |
} |
1335 | 1333 |
size = avio_close_dyn_buf(ts_st->amux->pb, &data); |
... | ... |
@@ -666,11 +666,8 @@ static int write_headers(AVFormatContext *avctx, AVIOContext *bc) |
666 | 666 |
return ret; |
667 | 667 |
if (ret > 0) |
668 | 668 |
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE); |
669 |
- else { |
|
670 |
- uint8_t *buf; |
|
671 |
- avio_close_dyn_buf(dyn_bc, &buf); |
|
672 |
- av_free(buf); |
|
673 |
- } |
|
669 |
+ else |
|
670 |
+ ffio_free_dyn_buf(&dyn_bc); |
|
674 | 671 |
} |
675 | 672 |
|
676 | 673 |
for (i = 0; i < nut->avf->nb_chapters; i++) { |
... | ... |
@@ -679,9 +676,7 @@ static int write_headers(AVFormatContext *avctx, AVIOContext *bc) |
679 | 679 |
return ret; |
680 | 680 |
ret = write_chapter(nut, dyn_bc, i); |
681 | 681 |
if (ret < 0) { |
682 |
- uint8_t *buf; |
|
683 |
- avio_close_dyn_buf(dyn_bc, &buf); |
|
684 |
- av_freep(&buf); |
|
682 |
+ ffio_free_dyn_buf(&dyn_bc); |
|
685 | 683 |
return ret; |
686 | 684 |
} |
687 | 685 |
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE); |
... | ... |
@@ -91,9 +91,7 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s, |
91 | 91 |
if (handle && rtpctx->pb) { |
92 | 92 |
avio_closep(&rtpctx->pb); |
93 | 93 |
} else if (rtpctx->pb) { |
94 |
- uint8_t *ptr; |
|
95 |
- avio_close_dyn_buf(rtpctx->pb, &ptr); |
|
96 |
- av_free(ptr); |
|
94 |
+ ffio_free_dyn_buf(&rtpctx->pb); |
|
97 | 95 |
} |
98 | 96 |
avformat_free_context(rtpctx); |
99 | 97 |
return ret; |
... | ... |
@@ -21,6 +21,7 @@ |
21 | 21 |
|
22 | 22 |
#include "libavutil/mathematics.h" |
23 | 23 |
#include "avformat.h" |
24 |
+#include "avio_internal.h" |
|
24 | 25 |
|
25 | 26 |
struct MuxChain { |
26 | 27 |
AVFormatContext *mpegts_ctx; |
... | ... |
@@ -33,11 +34,7 @@ static int rtp_mpegts_write_close(AVFormatContext *s) |
33 | 33 |
|
34 | 34 |
if (chain->mpegts_ctx) { |
35 | 35 |
av_write_trailer(chain->mpegts_ctx); |
36 |
- if (chain->mpegts_ctx->pb) { |
|
37 |
- uint8_t *buf; |
|
38 |
- avio_close_dyn_buf(chain->mpegts_ctx->pb, &buf); |
|
39 |
- av_free(buf); |
|
40 |
- } |
|
36 |
+ ffio_free_dyn_buf(&chain->mpegts_ctx->pb); |
|
41 | 37 |
avformat_free_context(chain->mpegts_ctx); |
42 | 38 |
} |
43 | 39 |
if (chain->rtp_ctx) { |
... | ... |
@@ -101,11 +98,7 @@ static int rtp_mpegts_write_header(AVFormatContext *s) |
101 | 101 |
|
102 | 102 |
fail: |
103 | 103 |
if (mpegts_ctx) { |
104 |
- if (mpegts_ctx->pb) { |
|
105 |
- uint8_t *buf; |
|
106 |
- avio_close_dyn_buf(mpegts_ctx->pb, &buf); |
|
107 |
- av_free(buf); |
|
108 |
- } |
|
104 |
+ ffio_free_dyn_buf(&chain->mpegts_ctx->pb); |
|
109 | 105 |
avformat_free_context(mpegts_ctx); |
110 | 106 |
} |
111 | 107 |
if (rtp_ctx) |
... | ... |
@@ -710,11 +710,9 @@ void ff_rtsp_undo_setup(AVFormatContext *s, int send_packets) |
710 | 710 |
AVFormatContext *rtpctx = rtsp_st->transport_priv; |
711 | 711 |
av_write_trailer(rtpctx); |
712 | 712 |
if (rt->lower_transport == RTSP_LOWER_TRANSPORT_TCP) { |
713 |
- uint8_t *ptr; |
|
714 | 713 |
if (CONFIG_RTSP_MUXER && rtpctx->pb && send_packets) |
715 | 714 |
ff_rtsp_tcp_write_packet(s, rtsp_st); |
716 |
- avio_close_dyn_buf(rtpctx->pb, &ptr); |
|
717 |
- av_free(ptr); |
|
715 |
+ ffio_free_dyn_buf(&rtpctx->pb); |
|
718 | 716 |
} else { |
719 | 717 |
avio_closep(&rtpctx->pb); |
720 | 718 |
} |