diracdec: Move strides to bytes, and pointer types to uint8_t.
[ffmpeg.git] / libavformat / rtpdec_ac3.c
index 5511d21..48b2d9c 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "avformat.h"
+#include "avio_internal.h"
 #include "rtpdec_formats.h"
 
 #define RTP_AC3_PAYLOAD_HEADER_SIZE 2
@@ -31,20 +32,9 @@ struct PayloadContext {
     AVIOContext *fragment;
 };
 
-static void free_fragment(PayloadContext *data)
+static void ac3_close_context(PayloadContext *data)
 {
-    if (data->fragment) {
-        uint8_t *p;
-        avio_close_dyn_buf(data->fragment, &p);
-        av_free(p);
-        data->fragment = NULL;
-    }
-}
-
-static void ac3_free_context(PayloadContext *data)
-{
-    free_fragment(data);
-    av_free(data);
+    ffio_free_dyn_buf(&data->fragment);
 }
 
 static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
@@ -83,7 +73,7 @@ static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
 
     case 1:
     case 2: /* First fragment */
-        free_fragment(data);
+        ffio_free_dyn_buf(&data->fragment);
 
         data->last_frame = 1;
         data->nr_frames = nr_frames;
@@ -103,7 +93,7 @@ static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
         }
         if (nr_frames != data->nr_frames ||
             data->timestamp != *timestamp) {
-            free_fragment(data);
+            ffio_free_dyn_buf(&data->fragment);
             av_log(ctx, AV_LOG_ERROR, "Invalid packet received\n");
             return AVERROR_INVALIDDATA;
         }
@@ -116,7 +106,7 @@ static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
         return AVERROR(EAGAIN);
 
     if (data->last_frame != data->nr_frames) {
-        free_fragment(data);
+        ffio_free_dyn_buf(&data->fragment);
         av_log(ctx, AV_LOG_ERROR, "Missed %d packets\n",
                data->nr_frames - data->last_frame);
         return AVERROR_INVALIDDATA;
@@ -138,6 +128,6 @@ RTPDynamicProtocolHandler ff_ac3_dynamic_handler = {
     .codec_id           = AV_CODEC_ID_AC3,
     .need_parsing       = AVSTREAM_PARSE_FULL,
     .priv_data_size     = sizeof(PayloadContext),
-    .free               = ac3_free_context,
+    .close              = ac3_close_context,
     .parse_packet       = ac3_handle_packet,
 };