Commit Graph

1923 Commits

Author SHA1 Message Date
Julien BLACHE b203f1ea1f libav 0.7: Replace CODEC_TYPE_* with AVMEDIA_TYPE_* 2011-06-02 22:09:42 +02:00
Julien BLACHE d8685846d0 Update documentation and build system for libav
We are using libav after the ffmpeg/libav fork during the 0.6 series.
2011-06-02 22:06:44 +02:00
Julien BLACHE ec5ace7dc9 Reset hurry_up to 0 after we acquired a frame with known PTS 2011-06-02 22:06:44 +02:00
Julien BLACHE 4f3635e354 Handle SQLITE_SCHEMA error in db_exec()
This happens under database load with many concurrent threads doing updates;
queries failing with SQLITE_SCHEMA at step time need to retried from scratch
until they succeeded or hit a best-effort limit of 5 retries.
2011-05-28 10:48:31 +02:00
Julien BLACHE 4594cc3d63 Enhance db_exec() error messages 2011-05-28 10:46:41 +02:00
Julien BLACHE 75dc4106a8 Remove byte-order mark from UTF-8 strings
The byte-order marks are useless for UTF-8, but that doesn't mean we don't
find them in the wild. Get rid of them, they confuse the hell out of the
collation functions.

Reported by Kai Elwert.
2011-04-30 18:59:29 +02:00
Julien BLACHE 2cd56dfc6d Bail out early on if artwork format is not supported 2011-04-30 11:41:12 +02:00
Julien BLACHE 52dcd4cb10 Add default case to address family switch for maximum compiler happiness 2011-04-30 11:41:12 +02:00
Julien BLACHE 0dac53f25c Kill unused variable len 2011-04-30 11:41:12 +02:00
Julien BLACHE a70a45d925 Fix DAAP songlist generation after code move to dmap_common
Handling of the sort tags was left into httpd_daap.c where the code runs
after the song is added to the songlist - effectively adding the sort tags
to the *next* song, leading to incorrect sort tags on the current song.
2011-04-28 18:25:14 +02:00
Julien BLACHE 49a9ff64dc Use st->size instead of sb.st_size which is only valid for raw files 2011-04-24 19:03:47 +02:00
Julien BLACHE 2cead60432 Remove unused prev variable 2011-04-24 18:43:58 +02:00
Julien BLACHE f86915f15e Fix typo, goto before ret assignment 2011-04-24 18:40:32 +02:00
Julien BLACHE 88280217a4 Remove useless assignments in while() conditions 2011-04-24 18:29:04 +02:00
Julien BLACHE d8f4efe126 Remove unused lib variable 2011-04-24 18:25:30 +02:00
Julien BLACHE 97433dc5ef Whitespace fixup 2011-04-16 10:17:03 +02:00
Julien BLACHE a981fa0a45 Ensure mfi->title is proper UTF-8 when set to mfi->fname 2011-04-16 10:16:28 +02:00
Julien BLACHE a116e2ad1f Perform Unicode fixup before tags fixup
fixup_tags() must not be exposed to non-UTF-8 strings as it runs some of
the strings through Unicode normalization for sort tags.
2011-04-16 10:12:29 +02:00
Julien BLACHE 53588f36af Wire up metadata handling in player and RAOP
This enables sending out metadata to AppleTV.
2011-04-09 10:11:35 +02:00
Julien BLACHE d208ca79d4 Add support for metadata handling in player 2011-04-09 10:11:35 +02:00
Julien BLACHE e3b756c730 Document progress values for AppleTV metadata 2011-04-09 10:11:35 +02:00
Julien BLACHE 1c861a6662 Add support for AppleTV AirTunes metadata in RAOP
The AppleTV gets sent the song metadata (DMAP data), artwork and progress
data during AirTunes streaming. Add support for this in RAOP.
2011-04-09 10:11:35 +02:00
Julien BLACHE 627062cab8 Add wants_metadata flag to struct raop_session 2011-04-09 10:11:35 +02:00
Julien BLACHE 718d1e9487 Migrate file metadata encoding to DMAP common code 2011-04-09 10:11:35 +02:00
Julien BLACHE 07df6bb4aa Move dmap_add_field() to DMAP common code 2011-04-09 10:11:35 +02:00
Julien BLACHE 39542aee27 Move DMAP fields list and hash table to DMAP common code 2011-04-09 10:11:34 +02:00
Julien BLACHE c792b942a0 Add logdomain for common DMAP code 2011-04-09 10:11:34 +02:00
Julien BLACHE 52691d6c4d Rename dmap_helpers.[ch] to dmap_common.[ch] 2011-04-09 10:11:34 +02:00
Julien BLACHE 075bb99742 Introduce artwork_get_item_filename() 2011-04-09 10:11:34 +02:00
Julien BLACHE 6949859ff1 Add caiv tag to video-capable devices in speaker list 2011-04-09 10:11:34 +02:00
Julien BLACHE db67f4ed6f Set has_video flag for AppleTV devices 2011-04-09 10:11:34 +02:00
Julien BLACHE f3e7836453 Introduce struct spk_flags to reduce argument count for enumeration callback 2011-04-09 10:11:34 +02:00
Julien BLACHE c1fae0012d Add support for DOS-encoded pairing files 2011-04-07 21:01:16 +02:00
Julien BLACHE a576033497 Rework album_artist/album_artist_sort handling
artist_sort tends to be more and more widespread, so try to reuse artist_sort
if possible instead of deriving album_artist_sort from album_artist
unconditionally.
2011-04-07 19:53:55 +02:00
Julien BLACHE 54c5314712 Handle empty files table when upgrading from schema v11 -> v12 2011-04-06 18:38:53 +02:00
Julien BLACHE 7984b4baea Document RAOP request queueing 2011-04-03 10:45:10 +02:00
Julien BLACHE 961b2484b8 Re-establish closecb only when no requests are in flight 2011-04-03 10:45:03 +02:00
Julien BLACHE ef52e922b2 Turn req_in_flight into a counter 2011-04-03 10:44:18 +02:00
Julien BLACHE a4f02ed08d Manage CSeq in raop_add_headers() 2011-04-03 10:43:37 +02:00
Julien BLACHE 7fcb8e4447 Check reply CSeq against request CSeq 2011-04-03 10:42:49 +02:00
Julien BLACHE f097d80d6a Add optional RTP-Info parameter to raop_send_req_set_parameter() 2011-04-03 10:42:42 +02:00
Julien BLACHE 9c43a9a900 Make SET_PARAMETER content-type an argument to raop_send_req_set_parameter() 2011-04-03 09:54:12 +02:00
Julien BLACHE 7927707bdb Rework ANTLR3 integration into the build system 2011-04-02 09:52:19 +02:00
Julien BLACHE e23f02c7c0 Replace AVL tree in DAAP by a static hash using gperf 2011-04-02 09:52:19 +02:00
Julien BLACHE cbb1669ee1 Replace AVL tree in DACP by a static hash using gperf 2011-04-02 09:52:19 +02:00
Julien BLACHE 7e35068d46 Move RSP query hash table inside RSP2SQL 2011-04-02 09:52:19 +02:00
Julien BLACHE cc0555d986 Replace AVL tree in RSP query by a static hash using gperf 2011-04-02 09:52:19 +02:00
Julien BLACHE b8758a2aa2 Move DAAP query hash table inside DAAP2SQL 2011-04-02 09:52:19 +02:00
Julien BLACHE 303a3329eb Replace AVL tree in DAAP query by a static hash using gperf 2011-04-02 09:52:19 +02:00
Julien BLACHE ac95530585 Check for gperf, add support to the build system 2011-04-02 09:52:18 +02:00
Julien BLACHE ac73ee0ce5 Enable and handle JPEG artwork in DACP 2011-04-01 22:04:09 +02:00
Julien BLACHE 204c9681ca Enable and handle JPEG artwork in DAAP 2011-04-01 22:02:51 +02:00
Julien BLACHE c7209ab699 Add support for JPEG as a valid artwork output format
Reduce CPU usage by avoiding unneeded JPEG -> PNG conversions; it appears
all the clients we care about support JPEG as well as PNG.
2011-03-30 21:50:29 +02:00
Julien BLACHE 5cf5cac9c2 Fix misuse of RAOP_CONNECTED in session state test 2011-03-27 17:04:24 +02:00
Julien BLACHE 5bad343278 Rename RAOP callbacks for consistency 2011-03-26 11:45:17 +01:00
Julien BLACHE c2579dc0a6 Bring raop_send_req_flush() prototype in line with others 2011-03-26 11:45:17 +01:00
Julien BLACHE 0d58903913 Add missing header 2011-03-26 11:45:17 +01:00
Julien BLACHE e5b4c1146e Handle database upgrade v11 -> v12 2011-03-24 19:23:08 +01:00
Julien BLACHE 9759eeba71 Remove database upgrade for schema version before 10 (v0.12) 2011-03-21 18:48:00 +01:00
Kai Elwert cb9dc5ad7c Add COLLATE DAAP to all char-type fields
As a consequence, we can remove the explicit COLLATE DAAP from sort
clauses, index definitions and queries.
2011-03-21 18:48:00 +01:00
Julien BLACHE f5b167080b Use title_sort for DAAP sort headers 2011-03-21 18:48:00 +01:00
Kai Elwert 4dce6390ea Switch to using db_query_fetch_string_sort() in daap_reply_browse() 2011-03-21 18:48:00 +01:00
Kai Elwert e226c38d4f Add db_query_fetch_string_sort() to fetch string+sortstring results 2011-03-21 18:48:00 +01:00
Kai Elwert d8bf5eedce db_build_query_browse() query changes ("DISTINCT %s, %s", field, field) 2011-03-21 18:48:00 +01:00
Kai Elwert bf86cf45bd Always include sort tags in songlist 2011-03-21 18:47:59 +01:00
Kai Elwert 9e5015ffc8 Switch sort clauses to *_sort fields 2011-03-21 18:47:59 +01:00
Julien BLACHE 91a5250143 Reindent md_map_id3, no code changes 2011-03-21 18:47:59 +01:00
Kai Elwert aa3829854b Pick up ID3 sort tags 2011-03-21 18:47:59 +01:00
Kai Elwert 3162028c41 Handle sort tags in fixup_tags()
Ensure the sort tags are filled and normalized.
2011-03-21 18:47:59 +01:00
Kai Elwert 373c5584af Add sort tags to the database 2011-03-21 18:47:59 +01:00
Raivo Hool 3a71d7b15d Add netinet/in.h, needed on FreeBSD 2011-03-21 18:46:28 +01:00
Julien BLACHE c66496176e Fix debug message loglevel 2011-03-21 18:41:38 +01:00
J. Aaron Pendergrass a13ea85267 Default to MPEG4 video/audio for unknown file types
ffmpeg has issues with DRM-afflicted files, leading to the files being
tagged with the unknown file type. This allows streaming those DRM-afflicted
files to iTunes.
2011-03-20 12:48:48 +01:00
J. Aaron Pendergrass 1e1952a5ef Better fixup_tags() handling for TV shows 2011-03-20 12:48:14 +01:00
Julien BLACHE 0d0877de9c Honour IPv6 config option in player/RAOP 2011-03-20 12:20:07 +01:00
Julien BLACHE 69fe64c277 Honour IPv6 config option for HTTP services 2011-03-20 12:19:39 +01:00
Julien BLACHE f4d6287f17 Add IPv6 configuration option
Disabled in the default config file, but enabled by default if not specified,
for backward compatibility.
2011-03-20 12:10:51 +01:00
Julien BLACHE 1f2a1e65c0 Fixup URL files scanning
Do not proceed and scan the file with ffmpeg on error, bail out. Doing so,
don't free strings allocated inside the mfi as we'll call free_mfi() anyway.

Reported by Kai Elwert.
2011-03-18 21:19:51 +01:00
Julien BLACHE bcbda9bc4e Browse records for IPv6 addresses regardless of the underlying protocol 2011-03-15 19:20:38 +01:00
Julien BLACHE d8b7980fe4 Do not ask mDNS for IPv6 addresses if RAOP can't use IPv6 2011-03-15 19:20:38 +01:00
Julien BLACHE ec7c3d108c Let player know about IPv6 status in RAOP 2011-03-15 19:20:38 +01:00
Julien BLACHE 2c1755f025 Don't start record browser if address family not requested 2011-03-15 19:20:38 +01:00
Julien BLACHE d0fa636643 Properly take ownership of new device address
Added addresses are transferred from dev to the existing rd. Set the
address to NULL in dev to avoid free()ing it in device_free() a few lines
down the road.
2011-03-15 19:20:38 +01:00
Julien BLACHE 4868a3946f Remote pairing wants IPv4 only from mDNS
The pairing process only listens on IPv4 at the moment.
2011-03-10 21:08:45 +01:00
Julien BLACHE e08c42b3c0 Player wants IPv4/IPv6/IPv6LL from mDNS for _raop._tcp 2011-03-10 21:08:25 +01:00
Julien BLACHE 6cd59a1240 Introduce mDNS browser flags for address type selection
Allow each user to specify the address types that should be returned
through the mDNS browse callback.
2011-03-10 21:08:25 +01:00
Julien BLACHE 4f59533ccb Perform manual hostname resolution by browsing mDNS RRs
The service resolver delivers a single IP address that doesn't always suit
our needs. To get all the addresses advertised, we have to look at the RRs
through the record browser; we can then apply our filters and extract the
addresses that fit.
2011-03-10 21:08:25 +01:00
Julien BLACHE 2f2582800e evhttp: Handle IPv6 scoped addresses 2011-03-10 21:08:24 +01:00
Julien BLACHE 09a981807b Avoid leaking addr on error 2011-03-10 21:08:24 +01:00
Julien BLACHE eeb5a7974d Trim metadata strings on files INSERT/UPDATE 2011-03-08 18:55:51 +01:00
Julien BLACHE 69396f3da0 Kill bogus comments 2011-03-07 19:51:43 +01:00
Julien BLACHE 652fa9371f Add terminal \r\n sequence for RAOP volume control on 802.11g ApEx
The 802.11g ApEx seems to require a terminal \r\n sequence, otherwise it
just ignores the setting.
2011-03-04 21:20:07 +01:00
Julien BLACHE 83d966df09 Fix typo in RAOP debug message 2011-03-04 20:47:36 +01:00
Julien BLACHE 13e2b12f9e Make proper use of IN6_ARE_ADDR_EQUAL()
Pass pointers to sin6_addr instead of passing sin6_addr.s6_addr32 which
isn't portable and isn't the proper way to use the macro anyway.
2011-02-24 19:51:37 +01:00
Raivo Hool 1a11efec58 Use sys/endian.h on FreeBSD 2011-02-23 20:44:49 +01:00
Raivo Hool 86a90fe81f Fix conversion to per-command lock & condition for FreeBSD
Leftover from commit 7f79ca5709
2011-02-23 19:09:26 +01:00
Julien BLACHE f1ab254b47 Silence non-const vs. const warning with FFmpeg 0.6 2011-02-23 19:01:59 +01:00
Julien BLACHE cbc3605425 Use avcodec_decode_video2() when available (FFmpeg 0.6) 2011-02-23 19:01:46 +01:00
Julien BLACHE 396edc9ad8 Use av_guess_format() when available (FFmpeg 0.6) 2011-02-23 19:00:59 +01:00
Julien BLACHE 67daf3259a Use avcodec_decode_audio3() when available (FFmpeg 0.6) 2011-02-23 18:26:42 +01:00