Julien BLACHE
de4d5d0f4c
libav 0.7: Metadata string for disc can be "disc/totaldisc"
...
Pointed out by Raivo Hool; since we don't have a choice of performing or
not performing the metadata conversion, we will get "disc/totaldisc" for
ID3 files.
2011-06-04 12:09:38 +02:00
Julien BLACHE
1bea809078
Make disc parsing code generic, too
2011-06-04 12:08:50 +02:00
Julien BLACHE
a453e0e4ac
libav 0.7: Use AVIO with libavformat >= 53
2011-06-02 22:16:53 +02:00
Julien BLACHE
6aa45c0b0c
libav 0.7: Add AVIO interface to evbuffer, replacing ffmpeg_url_evbuffer
2011-06-02 22:16:53 +02:00
Julien BLACHE
6797e65861
libav 0.7: Silence const vs. non-const warning
2011-06-02 22:16:53 +02:00
Julien BLACHE
74b7c69828
libav 0.7: Metadata string for track can be "track/totaltrack"
2011-06-02 22:16:53 +02:00
Julien BLACHE
57e569aeb5
Make track parsing code generic
2011-06-02 22:16:53 +02:00
Julien BLACHE
3caf3df662
libav 0.7: Add new generic metadata names
2011-06-02 22:16:53 +02:00
Julien BLACHE
b46afdc150
libav 0.7: Calling av_metadata_conv() is no longer needed
2011-06-02 22:16:52 +02:00
Julien BLACHE
b1d31feb53
libav 0.7: Switch from av_get_bits_per_sample_format() to ..._fmt()
2011-06-02 22:16:52 +02:00
Julien BLACHE
ecf064082f
libav 0.7: Use skip_frame instead of hurry_up
2011-06-02 22:16:52 +02:00
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