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:
parent
29dea37dbb
commit
aad90c7f42
3 changed files with 26 additions and 4 deletions
|
@ -540,7 +540,11 @@ srs_error_t SrsDash::on_audio(SrsSharedPtrMessage* shared_audio, SrsFormat* form
|
|||
if (!enabled) {
|
||||
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");
|
||||
}
|
||||
|
@ -555,7 +559,11 @@ srs_error_t SrsDash::on_video(SrsSharedPtrMessage* shared_video, SrsFormat* form
|
|||
if (!enabled) {
|
||||
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");
|
||||
}
|
||||
|
|
|
@ -931,6 +931,12 @@ srs_error_t SrsOriginHub::on_audio(SrsSharedPtrMessage* shared_audio)
|
|||
if ((err = format->on_audio(msg)) != srs_success) {
|
||||
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.
|
||||
|
|
|
@ -3064,7 +3064,11 @@ srs_error_t SrsTsTransmuxer::write_audio(int64_t timestamp, char* data, int size
|
|||
if ((err = format->on_audio(timestamp, data, size)) != srs_success) {
|
||||
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) {
|
||||
|
@ -3100,7 +3104,11 @@ srs_error_t SrsTsTransmuxer::write_video(int64_t timestamp, char* data, int size
|
|||
if ((err = format->on_video(timestamp, data, size)) != srs_success) {
|
||||
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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue