summaryrefslogtreecommitdiff
path: root/ffmpeg/libavformat/rtpdec_h264.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/libavformat/rtpdec_h264.c')
-rw-r--r--ffmpeg/libavformat/rtpdec_h264.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/ffmpeg/libavformat/rtpdec_h264.c b/ffmpeg/libavformat/rtpdec_h264.c
index d1133b7..1ca78bc 100644
--- a/ffmpeg/libavformat/rtpdec_h264.c
+++ b/ffmpeg/libavformat/rtpdec_h264.c
@@ -33,6 +33,7 @@
* FU-B packet types)
*/
+#include "libavutil/attributes.h"
#include "libavutil/base64.h"
#include "libavutil/avstring.h"
#include "libavcodec/get_bits.h"
@@ -189,7 +190,8 @@ static int h264_handle_packet(AVFormatContext *ctx, PayloadContext *data,
switch (type) {
case 0: // undefined, but pass them through
case 1:
- av_new_packet(pkt, len + sizeof(start_sequence));
+ if ((result = av_new_packet(pkt, len + sizeof(start_sequence))) < 0)
+ return result;
memcpy(pkt->data, start_sequence, sizeof(start_sequence));
memcpy(pkt->data + sizeof(start_sequence), buf, len);
COUNT_NAL_TYPE(data, nal);
@@ -246,7 +248,8 @@ static int h264_handle_packet(AVFormatContext *ctx, PayloadContext *data,
if (pass == 0) {
/* now we know the total size of the packet (with the
* start sequences added) */
- av_new_packet(pkt, total_length);
+ if ((result = av_new_packet(pkt, total_length)) < 0)
+ return result;
dst = pkt->data;
} else {
assert(dst - pkt->data == total_length);
@@ -291,12 +294,14 @@ static int h264_handle_packet(AVFormatContext *ctx, PayloadContext *data,
COUNT_NAL_TYPE(data, nal_type);
if (start_bit) {
/* copy in the start sequence, and the reconstructed nal */
- av_new_packet(pkt, sizeof(start_sequence) + sizeof(nal) + len);
+ if ((result = av_new_packet(pkt, sizeof(start_sequence) + sizeof(nal) + len)) < 0)
+ return result;
memcpy(pkt->data, start_sequence, sizeof(start_sequence));
pkt->data[sizeof(start_sequence)] = reconstructed_nal;
memcpy(pkt->data + sizeof(start_sequence) + sizeof(nal), buf, len);
} else {
- av_new_packet(pkt, len);
+ if ((result = av_new_packet(pkt, len)) < 0)
+ return result;
memcpy(pkt->data, buf, len);
}
} else {
@@ -338,7 +343,8 @@ static void h264_free_context(PayloadContext *data)
av_free(data);
}
-static int h264_init(AVFormatContext *s, int st_index, PayloadContext *data)
+static av_cold int h264_init(AVFormatContext *s, int st_index,
+ PayloadContext *data)
{
if (st_index < 0)
return 0;