summaryrefslogtreecommitdiff
path: root/src/audio
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2020-10-06 13:27:31 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2020-10-06 13:27:31 +0300
commit403d8fc06fda157b134f96328f98b9305509b5a3 (patch)
treea7ac4dc92dfcaa9fafddb65377a1d8a8cf61cccd /src/audio
parent3ed9a627712bf6223e521e1f63a113404fea824a (diff)
Updating media content
Making it possible for media to be partially updated, for streaming. Also fixed a problem with multiple concurrent audio players started on a single media item.
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/player.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/audio/player.c b/src/audio/player.c
index f1d6a2c8..177613bb 100644
--- a/src/audio/player.c
+++ b/src/audio/player.c
@@ -477,10 +477,16 @@ void updateSourceData_Player(iPlayer *d, const iBlock *data, enum iPlayerUpdate
477 set_Block(&input->data, data); 477 set_Block(&input->data, data);
478 input->isComplete = iFalse; 478 input->isComplete = iFalse;
479 break; 479 break;
480 case append_PlayerUpdate: 480 case append_PlayerUpdate: {
481 append_Block(&input->data, data); 481 const size_t oldSize = size_Block(&input->data);
482 const size_t newSize = size_Block(data);
483 iAssert(newSize >= oldSize);
484 /* The old parts cannot have changed. */
485 iAssert(memcmp(constData_Block(&input->data), constData_Block(data), oldSize) == 0);
486 appendData_Block(&input->data, constBegin_Block(data) + oldSize, newSize - oldSize);
482 input->isComplete = iFalse; 487 input->isComplete = iFalse;
483 break; 488 break;
489 }
484 case complete_PlayerUpdate: 490 case complete_PlayerUpdate:
485 input->isComplete = iTrue; 491 input->isComplete = iTrue;
486 break; 492 break;