1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-12 19:31:53 +00:00

ensure sequence header is ok when parse avc/aac data

This commit is contained in:
winlin 2013-11-24 15:11:18 +08:00
parent c243ad3282
commit ecc8688455

View file

@ -116,6 +116,13 @@ int SrsCodec::audio_aac_demux(int8_t* data, int size)
memcpy(aac_extra_data, data + stream->pos(), aac_extra_size);
}
} else if (aac_packet_type == SrsCodecAudioTypeRawData) {
// ensure the sequence header demuxed
if (aac_extra_size <= 0 || !aac_extra_data) {
ret = ERROR_HLS_DECODE_ERROR;
srs_error("hls decode audio aac failed, sequence header not found. ret=%d", ret);
return ret;
}
// Raw AAC frame data in UI8 []
// 6.3 Raw Data, aac-iso-13818-7.pdf, page 28
} else {
@ -206,6 +213,13 @@ int SrsCodec::video_avc_demux(int8_t* data, int size)
* pictureParameterSetNALUnit
*/
} else if (avc_packet_type == SrsCodecVideoAVCTypeNALU){
// ensure the sequence header demuxed
if (avc_extra_size <= 0 || !avc_extra_data) {
ret = ERROR_HLS_DECODE_ERROR;
srs_error("hls decode video avc failed, sequence header not found. ret=%d", ret);
return ret;
}
// One or more NALUs (Full frames are required)
// 5.3.4.2.1 Syntax, H.264-AVC-ISO_IEC_14496-15.pdf, page 20
int PictureLength = size - stream->pos();