1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-12-23 01:16:18 +00:00

API: stream.view: added support for 'estimateContentLength'

This commit is contained in:
spl0k 2018-03-10 23:04:57 +01:00
parent a6b894c586
commit 9eb1bf63d7
2 changed files with 3 additions and 1 deletions

View File

@ -110,6 +110,8 @@ def stream_media():
current_app.logger.info('Transcoding track {0.id} for user {1.id}. Source: {2} at {0.bitrate}kbps. Dest: {3} at {4}kbps'.format(res, request.user, src_suffix, dst_suffix, dst_bitrate)) current_app.logger.info('Transcoding track {0.id} for user {1.id}. Source: {2} at {0.bitrate}kbps. Dest: {3} at {4}kbps'.format(res, request.user, src_suffix, dst_suffix, dst_bitrate))
response = Response(transcode(), mimetype = dst_mimetype) response = Response(transcode(), mimetype = dst_mimetype)
if estimateContentLength == 'true':
response.headers.add('Content-Length', dst_bitrate * 1000 * res.duration // 8)
else: else:
response = send_file(res.path, mimetype = dst_mimetype, conditional=True) response = send_file(res.path, mimetype = dst_mimetype, conditional=True)

View File

@ -44,7 +44,7 @@ class TranscodingTestCase(ApiTestBase):
self._make_request('stream', { 'id': self.trackid, 'format': 'wat' }, error = 0) self._make_request('stream', { 'id': self.trackid, 'format': 'wat' }, error = 0)
def test_direct_transcode(self): def test_direct_transcode(self):
rv = self._stream(maxBitRate = 96) rv = self._stream(maxBitRate = 96, estimateContentLength = 'true')
self.assertIn('tests/assets/folder/silence.mp3', rv.data) self.assertIn('tests/assets/folder/silence.mp3', rv.data)
self.assertTrue(rv.data.endswith('96')) self.assertTrue(rv.data.endswith('96'))