Commit Graph

1331 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 403153f64b Reindent the dmap_fields table, no code changes 2009-12-26 09:28:28 +01:00
Ace Jones 000e13b7ee Return TV metadata in DMAP response 2009-12-26 09:23:13 +01:00
Julien BLACHE 66716841ea Handle database schema upgrade from v1 to v2 2009-12-26 09:20:51 +01:00
Julien BLACHE 42a7715c69 Reindent data tables, no code changes 2009-12-26 08:44:55 +01:00
Ace Jones a0ec19ada6 Add TV metadata to the database
With this, we're bumping SCHEMA_VERSION to 2.
2009-12-26 08:39:39 +01:00
Ace Jones 2ae6fcd864 Pick up TV-related metadata in MP4 video files
TV-related metadata as found in TV shows bought on the iTunes store, for
instance.

At the time of writing, ffmpeg doesn't support this yet. Until it does,
contact Ace Jones <ace.jones1@yahoo.com> for patches and instructions.
2009-12-26 08:31:12 +01:00
Ace Jones a0b015f1e4 Accomodate TV meta-data in internal structures
Add new fields for TV-related metadata to struct media_file_info and
struct db_media_file_info.
2009-12-26 08:28:28 +01:00
Ace Jones 30e07abae3 Check chdir() return value to silence a warning 2009-12-24 21:28:41 +01:00
Ace Jones d231faff2d Handle DAAP activity request
Reply to the DAAP /activity request with 204 / No content. Used by iTunes to
ping the server while streaming.
2009-12-20 14:43:28 +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 df2cbea9b2 Add supported codec list for Front Row and QuickTime
Patch from Ace Jones <ace.jones1@yahoo.com>.
2009-12-08 20:45:57 +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 6114c31c61 Hook up iTunes library scanner 2009-11-28 10:55:43 +01:00
Julien BLACHE 3154416415 Integrate iTunes library scanner as an optional component 2009-11-28 10:55:43 +01:00
Julien BLACHE d923e8d73b Add iTunes Music Library XML scanner 2009-11-28 10:55:43 +01:00
Julien BLACHE 3ff067da4e Add itunes_overrides parameter 2009-11-28 10:55:43 +01:00
Julien BLACHE a6cbb2a8ec Introduce db_file_id_byfilebase and db_file_id_byfile
File id lookup by basepath + filename and filename only.
2009-11-28 10:55:43 +01:00
Julien BLACHE 66cd10dc52 Introduce db_file_id_byurl and share code with db_file_id_bypath 2009-11-28 10:55:42 +01:00
Julien BLACHE ecb2991881 Add db_pl_fetch_bytitlepath 2009-11-28 10:55:42 +01:00
Julien BLACHE 04ce09e5be Rename db_pl_add_item -> db_pl_add_item_bypath
For consistency with db_pl_add_item_byid & similar database functions.
2009-11-28 10:55:42 +01:00
Julien BLACHE a45f46f3eb Introduce db_pl_add_item_byid() 2009-11-28 10:55:42 +01:00
Julien BLACHE 1a397ca79b Check that db_pl_fetch_byquery only gets 1 query result 2009-11-28 10:55:42 +01:00
Julien BLACHE 6a1c01fa15 Allow playlists from different files to have the same title 2009-11-28 10:55:42 +01:00
Julien BLACHE 8f07db5c10 Add support for FLAC files with ID3v2 tags.
Patch from Wolfgang Holler <woelfs@googlemail.com>.
2009-11-18 20:14:03 +01:00
Julien BLACHE 946758cec7 Rework iTunes 9 absolute request uri fix 2009-11-14 11:23:03 +01:00
Julien BLACHE f8f183f2f6 Fixup iTunes 9 Request-URI before processing
iTunes 9 sends requests with a Request-URI like
  daap://10.1.1.20:3689/server-info

The DAAP server expected the Request-URI to be just /server-info, and so
couldn't match the request to any handler.

In addition, evhttp would declare this request a proxy request which also
broke keep-alive handling resulting in the server closing the connection
after the reply. iTunes doesn't like that.
2009-11-13 21:53:47 +01:00
Julien BLACHE 6cc9abadbd Skip files that have no audio streams 2009-11-01 12:52:30 +01:00
Julien BLACHE 9b56d51f92 Avoid divide-by-zero for files with duration < AV_TIME_BASE 2009-11-01 12:51:50 +01:00
Julien BLACHE c36b3c360d Fix DAAP request regexps - IDs can (thankfully) be more than 1-digit long 2009-11-01 12:39:11 +01:00
Julien BLACHE 9229f3dff9 Flush log as we go. 2009-10-04 12:08:46 +02:00
Julien BLACHE aa52f1d30b Add license and copyright statement to -v/--version and usage message 2009-09-21 19:52:05 +02:00
Julien BLACHE 11909725e2 Use ffmpeg's memory allocator for transcode buffer
ffmpeg's allocator ensures the allocated memory is properly aligned for
any kind of optimized operation used in ffmpeg.
2009-07-24 08:19:31 +02:00
Julien BLACHE 2323fd302c Fix memory leak (transcode buffer) 2009-07-24 08:18:53 +02:00
Julien BLACHE 1bd3b3a076 Fix paths and rename the project 2009-06-12 13:00:34 +02:00
Julien BLACHE e1c0b6d4b7 Move *_offsetof() macro definitions to db.h 2009-06-11 23:17:17 +02:00
Julien BLACHE 1f92052409 Rename the songs table 2009-06-11 23:03:53 +02:00
Julien BLACHE 3cadbdb1e3 Remove unused db_file_fetch_bypath() 2009-06-11 20:46:11 +02:00
Julien BLACHE 0ad20e5220 Rework process_media_file() and related DB support routines
Avoid pulling all the file info from the DB in process_media_file() as
anything besides the file id and timestamp is not used at all.
2009-06-11 20:44:22 +02:00
Julien BLACHE 0a8c171187 Store playlist items paths instead of resolving to file ids
This allows for more dynamic playlists now that files can move
around while we're running.
2009-06-11 20:27:31 +02:00
Julien BLACHE 3b7ff30c1b Remove useless force_update field in media file info 2009-06-11 19:15:22 +02:00
Julien BLACHE c918c5c689 Always rescan directories to update playlists 2009-06-11 19:11:03 +02:00
Julien BLACHE 538d81b402 Always rescan and update playlists
This is needed to keep relative playlist items up to date in the
database when the playlist file moves around.
2009-06-11 19:04:21 +02:00
Julien BLACHE c589d92b14 Use db_get_count() wherever applicable; simplify db_{pl,files}_get_count() prototypes 2009-06-11 18:41:50 +02:00
Julien BLACHE 2d1c35b855 Count playlist items on the fly 2009-06-11 18:28:01 +02:00
Julien BLACHE 30204cbb76 Remove unused toplevel watch attribute 2009-06-11 17:36:13 +02:00
Julien BLACHE c81b33bd02 Bring db_watch_delete_bywd() prototype back in line with other db_watch_delete_by*() 2009-06-11 17:35:32 +02:00