summaryrefslogtreecommitdiff
path: root/src/codec/ffmpeg/packet_ext.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/codec/ffmpeg/packet_ext.c')
-rw-r--r--src/codec/ffmpeg/packet_ext.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/codec/ffmpeg/packet_ext.c b/src/codec/ffmpeg/packet_ext.c
index 6934cfe..8f44caa 100644
--- a/src/codec/ffmpeg/packet_ext.c
+++ b/src/codec/ffmpeg/packet_ext.c
@@ -6,7 +6,9 @@ void nn_packet_write_av_codec_parameters(struct nn_packet *packet, AVCodecParame
NNWT_PACKET_WRITE_TYPE(packet, enum AVCodecID, codecpar->codec_id);
NNWT_PACKET_WRITE_TYPE(packet, u32, codecpar->codec_tag);
NNWT_PACKET_WRITE_TYPE(packet, s32, codecpar->extradata_size);
- NNWT_PACKET_WRITE_DATA(packet, codecpar->extradata, codecpar->extradata_size);
+ if (codecpar->extradata_size) {
+ NNWT_PACKET_WRITE_DATA(packet, codecpar->extradata, codecpar->extradata_size);
+ }
NNWT_PACKET_WRITE_TYPE(packet, s32, codecpar->format);
NNWT_PACKET_WRITE_TYPE(packet, s64, codecpar->bit_rate);
NNWT_PACKET_WRITE_TYPE(packet, s32, codecpar->bits_per_coded_sample);
@@ -118,10 +120,12 @@ void nn_packet_read_av_codec_parameters(struct nn_packet *packet, AVCodecParamet
NNWT_PACKET_READ_TYPE(packet, enum AVCodecID, codecpar->codec_id);
NNWT_PACKET_READ_TYPE(packet, u32, codecpar->codec_tag);
NNWT_PACKET_READ_TYPE(packet, s32, codecpar->extradata_size);
- codecpar->extradata = (u8 *)av_malloc(codecpar->extradata_size);
- u8 *extradata;
- NNWT_PACKET_READ_DATA(packet, codecpar->extradata_size, extradata);
- al_memcpy(codecpar->extradata, extradata, codecpar->extradata_size);
+ if (codecpar->extradata_size > 0) {
+ codecpar->extradata = (u8 *)av_malloc(codecpar->extradata_size);
+ u8 *extradata;
+ NNWT_PACKET_READ_DATA(packet, codecpar->extradata_size, extradata);
+ al_memcpy(codecpar->extradata, extradata, codecpar->extradata_size);
+ }
NNWT_PACKET_READ_TYPE(packet, s32, codecpar->format);
NNWT_PACKET_READ_TYPE(packet, s64, codecpar->bit_rate);
NNWT_PACKET_READ_TYPE(packet, s32, codecpar->bits_per_coded_sample);