Mark sizeof(AV*) API violations
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 28 Oct 2016 13:59:16 +0000 (15:59 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 28 Oct 2016 14:06:44 +0000 (16:06 +0200)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
ffserver/ffserver.c

index 1a27583..ce48885 100644 (file)
@@ -161,7 +161,10 @@ typedef struct HTTPContext {
     int feed_streams[FFSERVER_MAX_STREAMS]; /* index of streams in the feed */
     int switch_feed_streams[FFSERVER_MAX_STREAMS]; /* index of streams in the feed */
     int switch_pending;
+
+    //TODO API violation, sizeof(AVFormatContext) is not constant, allocation and deallocation must use the public API intended for it
     AVFormatContext fmt_ctx; /* instance of FFServerStream for one user */
+
     int last_packet_sent; /* true if last data packet was sent */
     int suppress_log;
     DataRateData datarate;
@@ -2265,6 +2268,7 @@ static int http_prepare_data(HTTPContext *c)
         c->fmt_ctx = *ctx;
         av_freep(&ctx);
         av_dict_copy(&(c->fmt_ctx.metadata), c->stream->metadata, 0);
+     //TODO sizeof(AVStream) is not public API and can change with a new lib
         c->fmt_ctx.streams = av_mallocz_array(c->stream->nb_streams,
                                               sizeof(AVStream *));
         if (!c->fmt_ctx.streams)
@@ -2272,6 +2276,7 @@ static int http_prepare_data(HTTPContext *c)
 
         for(i=0;i<c->stream->nb_streams;i++) {
             AVStream *src;
+     //TODO sizeof(AVStream) is not public API and can change with a new lib
             c->fmt_ctx.streams[i] = av_mallocz(sizeof(AVStream));
 
             /* if file or feed, then just take streams from FFServerStream
@@ -2985,10 +2990,12 @@ static int prepare_sdp_description(FFServerStream *stream, uint8_t **pbuffer,
     } else
         snprintf(avc->filename, 1024, "rtp://0.0.0.0");
 
+    //TODO sizeof(AVStream) is not public API and can change with a new lib
     avc->streams = av_malloc_array(avc->nb_streams, sizeof(*avc->streams));
     if (!avc->streams)
         goto sdp_done;
 
+    //TODO sizeof(AVStream) is not public API and can change with a new lib
     avs = av_malloc_array(avc->nb_streams, sizeof(*avs));
     if (!avs)
         goto sdp_done;
@@ -3436,6 +3443,7 @@ static int rtp_new_av_stream(HTTPContext *c,
     av_freep(&st->info);
     st_internal = st->internal;
 
+     //TODO sizeof(AVStream) is not public API and can change with a new lib
     if (!c->stream->feed ||
         c->stream->feed == c->stream)
         memcpy(st, c->stream->streams[stream_index], sizeof(AVStream));
@@ -3520,6 +3528,7 @@ static AVStream *add_av_stream1(FFServerStream *stream,
     if(stream->nb_streams >= FF_ARRAY_ELEMS(stream->streams))
         return NULL;
 
+     //TODO sizeof(AVStream) is not public API and can change with a new lib
     fst = av_mallocz(sizeof(AVStream));
     if (!fst)
         return NULL;