Browse code

Merge commit '8e32b1f0963d01d4f5d4803eb721f162e0d58d9a'

* commit '8e32b1f0963d01d4f5d4803eb721f162e0d58d9a':
libavformat: Use ffio_free_dyn_buf where applicable

Merged-by: Michael Niedermayer <michaelni@gmx.at>

Michael Niedermayer authored on 2015/02/25 08:48:46
Showing 8 changed files
... ...
@@ -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
                 }