Edge: Dump cached metadata and sequence headers to late-joining consumers.
After v7.0.94 stopped creating SrsOriginHub on edge, the hub_active gate in consumer_dumps() always evaluated false on edge, so late-joining players never received the cached onMetaData / AVC SH / AAC SH and failed with "dimensions not set". Fall back to the meta cache state when hub_ is NULL so the dump path runs once the edge-pull has fetched headers. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
eb9141e450
commit
48aeca75f1
|
|
@ -2559,7 +2559,10 @@ srs_error_t SrsLiveSource::consumer_dumps(ISrsLiveConsumer *consumer, bool ds, b
|
|||
}
|
||||
|
||||
// If stream is publishing, dumps the sequence header and gop cache.
|
||||
bool hub_active = hub_ ? hub_->active() : false;
|
||||
// On edge, hub_ is NULL; the source is "publishing" once the edge-pull has
|
||||
// populated the meta cache. Late-joining consumers must still receive the
|
||||
// cached metadata + sequence headers + GOP via this path.
|
||||
bool hub_active = hub_ ? hub_->active() : (meta_->data() || meta_->vsh() || meta_->ash());
|
||||
if (hub_active) {
|
||||
// Copy metadata and sequence header to consumer.
|
||||
if ((err = meta_->dumps(consumer, atc_, jitter_algorithm_, dm, ds)) != srs_success) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user