|
|
@@ -452,9 +452,12 @@ error:
|
|
|
media_entity_graph_walk_start(graph, entity_err);
|
|
|
|
|
|
while ((entity_err = media_entity_graph_walk_next(graph))) {
|
|
|
- entity_err->stream_count--;
|
|
|
- if (entity_err->stream_count == 0)
|
|
|
- entity_err->pipe = NULL;
|
|
|
+ /* don't let the stream_count go negative */
|
|
|
+ if (entity->stream_count > 0) {
|
|
|
+ entity_err->stream_count--;
|
|
|
+ if (entity_err->stream_count == 0)
|
|
|
+ entity_err->pipe = NULL;
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* We haven't increased stream_count further than this
|
|
|
@@ -486,9 +489,12 @@ void media_entity_pipeline_stop(struct media_entity *entity)
|
|
|
media_entity_graph_walk_start(graph, entity);
|
|
|
|
|
|
while ((entity = media_entity_graph_walk_next(graph))) {
|
|
|
- entity->stream_count--;
|
|
|
- if (entity->stream_count == 0)
|
|
|
- entity->pipe = NULL;
|
|
|
+ /* don't let the stream_count go negative */
|
|
|
+ if (entity->stream_count > 0) {
|
|
|
+ entity->stream_count--;
|
|
|
+ if (entity->stream_count == 0)
|
|
|
+ entity->pipe = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (!--pipe->streaming_count)
|