Commit Graph

27 Commits

Author SHA1 Message Date
Julien BLACHE 7cb0eec5d5 Don't increase play count if not streaming at least half of the file
When streaming AAC/MP4 files that aren't stream-optimized (metadata at the
end of the file), clients will seek through the file to grab the metadata
prior to playing the file, causing the play count to increase by 2 or 3.

To counter that, do not increase play count if not streaming at least half
of the file.
2009-12-26 09:57:37 +01:00
Julien BLACHE 72b1237500 Send a Content-Length header when streaming
Patch by Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 21:46:47 +01:00
Julien BLACHE ff89ce0183 Add support for end offset in Range header
Honor end offset provided in the Range header and do not stream more than
what the client asked for.

Based on a patch by Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 21:42:48 +01:00
Julien BLACHE b9e7df5be3 Return a proper Content-Type when streaming videos
Clients like Front Row expect video/<type> for video streaming, whereas iTunes
likes application/x-dmap-tagged when streaming audio.

Based on a patch by Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 21:04:30 +01:00
Julien BLACHE 38c502cb7e Properly close the raw file that was streamed when cleaning up after streaming
Report & fix by Ace Jones <ace.jones1@yahoo.com>
2009-12-08 19:54:48 +01:00
Julien BLACHE ab760903b1 Use stream_end() to do the cleanup in stream_fail_cb()
Introduce a new 'failed' parameter to stream_end() as some actions shouldn't
be done when cleaning up after a connection failure.
2009-12-08 19:52:51 +01:00
Julien BLACHE 1bd3b3a076 Fix paths and rename the project 2009-06-12 13:00:34 +02:00
Julien BLACHE a200703393 Switch to the new database code 2009-06-10 19:04:18 +02:00
Julien BLACHE d384f3c395 Rename E_INF to E_INFO 2009-05-09 17:14:07 +02:00
Julien BLACHE 11fd038d16 Use new logger facility 2009-05-09 17:14:06 +02:00
Julien BLACHE 10bb9dec57 Remove useless daapd.h 2009-05-05 16:22:11 +02:00
Julien BLACHE 2530c3512b Rename webface_cb() to httpd_gen_cb() 2009-05-03 12:26:01 +02:00
Julien BLACHE cd6f87401a Rename struct stream_chunk to struct stream_ctx 2009-05-03 12:19:04 +02:00
Julien BLACHE c76c8165ce Enable httpd on the configured port 2009-05-03 11:16:58 +02:00
Julien BLACHE a1afb0d390 Use evhttp_send_reply_chunk_with_cb() to stream files
This evhttp extension makes it possible to schedule chunks one after
the other when (part of) the previous chunk has been written to the
client.
2009-05-03 11:16:58 +02:00
Julien BLACHE 1d152decf7 Use evhttp_request->fail_cb to stop streaming if the client closes the connection
This is an extension to evhttp. Without this, we cannot know that the client
closes the connection, and we keep pushing chunks while the underlying
evhttp_request has been freed, leading to a segfault.
2009-05-03 11:16:57 +02:00
Julien BLACHE e4fe084619 Use embedded evhttp 2009-05-03 11:16:57 +02:00
Julien BLACHE c9868175fd Implement URI encoding quirk for iTunes and Roku
iTunes and Roku devices do not encode + as %2B in the query string and
do not encode space as + either in the query string (though at least the
Roku encode space as %20 everywhere). This needs to be worked around or
browse queries fail to parse because + was decoded as space when the query
really needs a + character.
2009-05-03 11:16:57 +02:00
Julien BLACHE 09ef188d90 Add authentication to web interface, RSP and DAAP 2009-05-03 11:16:57 +02:00
Julien BLACHE dc68de86dd Add HTTP Basic auth support 2009-05-03 11:16:57 +02:00
Julien BLACHE 7a601d7daa Enable streaming of transcoded content 2009-05-03 11:16:57 +02:00
Julien BLACHE 0a1c4545dc Move safe_ato[il]() to misc.[ch] 2009-04-30 14:46:37 +02:00
Julien BLACHE c071a58c3c Wire up DAAP support 2009-04-30 13:57:40 +02:00
Julien BLACHE f332f992aa Document HTTP client quirks known to mt-daapd 2009-04-28 18:00:27 +02:00
Julien BLACHE f05a55e7fc Implement HTTP chunked streaming
Transcoding is not supported yet.

In the current state of affairs, we will crash if the client closes the
connection before the tranfser is done. This is a limitation of evhttp,
it is not possible to detect this condition. This will need to be fixed
in evhttp.
2009-04-28 18:00:21 +02:00
Julien BLACHE 5e8275a998 Wire up RSP support 2009-04-25 23:02:21 +02:00
Julien BLACHE 095350e6eb Introduce new evhttp-based HTTP server 2009-04-25 16:27:47 +02:00