ejurgensen
b811122566
[outputs] Rename output_buffer.frame to .data
2019-03-18 23:06:08 +01:00
ejurgensen
5c35e1a9db
[player] Completely stop devices on playback_stop()
...
Previously we just flushed, and local audio devices would never get closed.
Also a little fixup to the printing of session debug.
2019-03-18 23:06:08 +01:00
ejurgensen
19694ee1dd
[misc] Add ringbuffer utility to misc.c/misc.h
2019-03-18 23:06:08 +01:00
ejurgensen
9dfab16138
[streaming] Cleaning bugs from refactor
2019-03-18 23:06:08 +01:00
ejurgensen
201c97fdf8
Fixup 3 - remove small risk of crash if encode_setup called incorrectly
2019-03-18 23:06:08 +01:00
ejurgensen
de55acf797
[input] Fixup 2: Seeking when rewinding to 0
2019-03-18 23:06:08 +01:00
ejurgensen
c74b305983
[outputs] Fix crash, invalid reference to device after outputs_device_add
2019-03-18 23:06:08 +01:00
ejurgensen
b7add1d0fa
[inputs/player] Fixup part 1
2019-03-18 23:06:08 +01:00
ejurgensen
d008e241cf
[outputs] Make outputs_device_flush (per device flushing)
...
Works better with the callback mechanism
2019-03-18 23:06:08 +01:00
ejurgensen
87ca6363ae
[player/input] Refactor - WIP
...
* Open input sources earlier
* Gapless playback
* Remove fixed 44100/16 from player
* Complete restructure player internals
2019-03-18 23:06:08 +01:00
ejurgensen
e97ad7d970
[outputs] Reinstate device->activated, so that mdns flukes can't bring down playback
2019-03-18 23:06:08 +01:00
ejurgensen
936103f462
[outputs] Move device_add/rm to outputs and get rid of advertised flag
2019-03-18 23:06:08 +01:00
ejurgensen
a7e8476996
[outputs] Refactor outputs some more, eg change callback system
2019-03-18 23:06:08 +01:00
ejurgensen
e99f20992e
[player/outputs] Implement changed output interfaces in most backends
...
Still missing cast, alsa and pulseaudio, but these can so far just be
disabled with configure.
Otherwise still mostly untested.
2019-03-18 23:06:08 +01:00
ejurgensen
14a6d318f0
[outputs] Changes to interface of outputs module
...
* Drop output_sessions, was just a pointer to the actual session anyway
* Drop the old write, flush and stop prototypes
* Some minor changes/renaming
Purpose of this is also to fix a race condition in player.c where it
could try to start two sessions on the same speaker. This could happen
because outputs_device_start() in line 2093 is conditional on device->session
which however is false while a device is starting up.
2019-03-18 23:06:08 +01:00
ejurgensen
cee740ae51
[misc] Move MIN() macro from raop.c to misc.c
2019-03-18 23:06:08 +01:00
ejurgensen
94dfef6e78
[input] Return quality flag even if read size is zero
...
First input_read() has bufsize 0, because we don't know quality yet
2019-03-18 23:06:08 +01:00
ejurgensen
0cb3881621
[player/outputs/raop] Get rid of outputs_playback_start() (still WIP)
...
outputs_playback_start() had the problem that was not consistently invoked: If
for instance local audio playback was running and a Airplay device was then
activated, the raop's playback_start would never be invoked (and vice versa,
of course).
Instead, the player now writes the presentation timestamp every time to the
output, so it doesn't need to keep track of it from the start.
2019-03-18 23:06:08 +01:00
ejurgensen
a924a8dd66
[raop] Reorganise code a little
2019-03-18 23:06:08 +01:00
ejurgensen
fcc91ecd86
[player/outputs] Handle multiple quality levels + use rtp_common (WIP!)
...
* Untie Airtunes stuff further from player and non-Airplay outputs
* Change raop.c to use rtp_common.c (step 1)
* Change heartbeat of player to 100 ticks/sec, since we have untied from
Airtunes 352 samples per packet (which equals 126 ticks/sec at 44100)
Still a lot to be done in the player, since the rtptime's in it don't
are probably broken.
2019-03-18 23:06:08 +01:00
ejurgensen
cdd0aa884b
[outputs] Add ability to deal with multiple qualities
...
Output module can now take input data in multiple quality levels, and
can resample to those output modules that would require a certain quality
level, like raop.c would
2019-03-18 23:06:08 +01:00
ejurgensen
7e48887adc
[rtp] Add RTP utility module: rtp_common.c rtp_common.h
...
Expectation is to use this for both Airplay and Chromecast RTP streaming
2019-03-18 23:06:08 +01:00
ejurgensen
76bbfb6d2c
[streaming] Adjust httpd_streaming to new transcode interface
2019-03-18 23:06:08 +01:00
ejurgensen
4fe5c47526
[inputs] Change pipe and file_http inputs to use media_quality
2019-03-18 23:06:08 +01:00
ejurgensen
7048a72d86
[spotify] Use media_quality instead of input_quality
...
and allow more than 2 channels ... probably wouldn't actually work, hard to test
2019-03-18 23:06:08 +01:00
ejurgensen
a9085e978d
[input] Change input abstraction to use media_quality instead of input_quality
2019-03-18 23:06:08 +01:00
ejurgensen
462d787fab
[misc] Add media_quality struct for storing sample rate, bps and channels
2019-03-18 23:06:08 +01:00
ejurgensen
ad77a42dbb
[xcode] Adapt to allow for new raw PCM input profiles, e.g. 48000/16
2019-03-18 23:06:08 +01:00
ejurgensen
1696fc3384
[input] Adapt input_buffer so it can handle dynamic quality (sample rates etc)
...
Still WIP, player and outputs cannot handle this yet
2019-03-18 23:06:08 +01:00
ejurgensen
9182597605
[input/xcode] Write to input buffer with the sources native sample rate/format
...
Still WIP at this point since the player and output can't use the use improved
quality yet, and because rtptimes etc. are likely incorrect
2019-03-18 23:06:08 +01:00
ejurgensen
84e813038b
[player] Some additional comments
2019-03-18 23:06:08 +01:00
ejurgensen
d850c2e691
[xcode] Add OPUS encoding profile for RTP Chromecasting
2019-03-18 23:06:08 +01:00
ejurgensen
8e474dfd7f
Bump to version 26.5
2019-03-17 22:52:41 +01:00
ejurgensen
864bdb8f6f
ChangeLog and README for forked-daapd 26.5
2019-03-17 22:52:06 +01:00
ejurgensen
c3a7ec5163
Merge pull request #708 from chme/travis
...
[travis-ci] Build forked-daapd in the latest Ubuntu LTS docker image
2019-03-11 20:07:37 +01:00
chme
f3cb20543b
[travis-ci] Build forked-daapd in the latest Ubuntu LTS docker image
2019-03-11 17:46:11 +01:00
ejurgensen
7bd12bb317
Merge pull request #700 from whatdoineed2do/systemd-svc-memorymax
...
[systemd] add MemoryMax to service
2019-02-24 15:07:10 +01:00
whatdoineed2do/Ray
23721fc620
[systemd] add MemoryMax to enforce mem upper limit
...
to enable after re-installing on existing system:
systemctl daemon-reload && \
systemctl restart forked-daapd
2019-02-24 10:20:55 +00:00
Christian Meffert
fb98eb68ca
Merge pull request #703 from chme/json_web
...
Small JSON API fixes + small web interface updates (v0.5.1)
2019-02-24 07:30:47 +01:00
chme
96f5d90849
[htdocs] Rebuild player web interface v0.5.1
2019-02-23 11:02:12 +01:00
chme
aa0fd5b0cb
[web-src] Update dependencies and increase version to 0.5.1
2019-02-23 11:02:12 +01:00
chme
d1f866bd76
[web-src] Add data/media kind to queue item dialog with links to spotify
2019-02-23 11:02:12 +01:00
chme
df455ce069
[web-src] Make use of extended queue/item/add endpoint
...
Should speed up starting playback from the web ui (reduces number of web
api requests)
2019-02-23 11:02:12 +01:00
chme
d931385886
[web-src] Show track title for streams in bottom navbar
...
If queue item is a radio stream, title contains the radio stream name,
artist contains the artist of the current streaming song and album
contains the title of the current streaming song.
2019-02-23 11:02:12 +01:00
chme
4a06b05365
[README] Add new query parameter for queue/items/add endpoint
2019-02-23 11:02:12 +01:00
chme
47e464ee97
[README] Fix wrong data_kind value in track object
2019-02-23 11:02:12 +01:00
chme
f85df07308
[jsonapi] Respect order defined in smartpl expression in queue/items/add
2019-02-23 11:02:12 +01:00
chme
e078ba8ed0
[jsonapi] Use same order by clause when adding queue items by
...
expressions as is used in search tracks by expression
2019-02-23 11:02:12 +01:00
chme
a3f2551eea
[jsonapi] Support starting playback from position in queue/items/add
2019-02-23 09:41:58 +01:00
Christian Meffert
4c2f178aa0
Merge pull request #695 from chme/web_interface_v043
...
Update player web interface (v0.5.0)
2019-02-21 16:37:59 +01:00