1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

fix coredump bug: caused by publish stream that codec is unsupport, sush as G.711, H.263 (#2526)

This commit is contained in:
Haibo Chen 2021-08-13 12:05:28 +08:00 committed by GitHub
parent 29dea37dbb
commit aad90c7f42
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 4 deletions

View file

@ -541,6 +541,10 @@ srs_error_t SrsDash::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* form
return err;
}
if (!format->acodec) {
return err;
}
if ((err = controller->on_audio(shared_audio, format)) != srs_success) {
return srs_error_wrap(err, "Consume audio failed");
}
@ -556,6 +560,10 @@ srs_error_t SrsDash::on_video(SrsSharedPtrMessage* shared_video, SrsFormat* form
return err;
}
if (!format->vcodec) {
return err;
}
if ((err = controller->on_video(shared_video, format)) != srs_success) {
return srs_error_wrap(err, "Consume video failed");
}

View file

@ -932,6 +932,12 @@ srs_error_t SrsOriginHub::on_audio(SrsSharedPtrMessage* shared_audio)
return srs_error_wrap(err, "format consume audio");
}
// Ignore if no format->acodec, it means the codec is not parsed, or unsupport/unknown codec
// such as G.711 codec
if (!format->acodec) {
return err;
}
// cache the sequence header if aac
// donot cache the sequence header to gop_cache, return here.
if (format->is_aac_sequence_header()) {

View file

@ -3065,6 +3065,10 @@ srs_error_t SrsTsTransmuxer::write_audio(int64_t timestamp, char* data, int size
return srs_error_wrap(err, "ts: format on audio");
}
if (!format->acodec) {
return err;
}
// ts support audio codec: aac/mp3
srs_assert(format->acodec && format->audio);
if (format->acodec->id != SrsAudioCodecIdAAC && format->acodec->id != SrsAudioCodecIdMP3) {
@ -3101,6 +3105,10 @@ srs_error_t SrsTsTransmuxer::write_video(int64_t timestamp, char* data, int size
return srs_error_wrap(err, "ts: on video");
}
if (!format->vcodec) {
return err;
}
// ignore info frame,
// @see https://github.com/ossrs/srs/issues/288#issuecomment-69863909
srs_assert(format->video && format->vcodec);