ejurgensen
3e80e5c517
[transcode] Don't pass error to player on eof + some comments and cleaning
2015-10-22 22:09:19 +02:00
ejurgensen
e20d2c544d
[transcode] Comments and raise MAX_BAD_PACKETS to 5
2015-10-22 21:01:43 +02:00
ejurgensen
058b2fb0d6
[transcode] Improve decoding to allow for decoder special cases, like decoders not processing
...
entire packets, rejecting packets and not returning frames. Should fix issue with network
streams not opening.
2015-10-21 23:53:21 +02:00
ejurgensen
2a610812a5
Refactor transcode.c so it can actually transcode + use new capability to support mp3 streaming.
...
Also includes the skeleton for perhaps supporting video in the future. Adds more fine-grained
ffmpeg/libav compability checks. Dependency on libavresample/libswresample exchanged with
dependency on libavfilter, which seems more versatile.
2015-10-09 23:58:27 +02:00
chme
e1147c00a1
[player] Refactor player to better fit the queue refactor
2015-10-04 07:59:58 +02:00
ejurgensen
68912efa1f
Enable resuming playback from saved position for certain media kinds (eg audiobooks)
2015-08-04 22:33:32 +02:00
chme
659f9c09bb
Use enum values for data_kind and media_kind
2015-04-23 11:34:44 +02:00
ejurgensen
99cda05dab
Remove player metadata event timer (use the existing instead)
2015-04-11 20:30:31 +02:00
ejurgensen
e72447954a
Some cleaning up of ICY artwork retrieval
2015-04-09 22:22:42 +02:00
ejurgensen
56ece92209
Remember to actually request ICY metadata in transcode.c
2015-04-02 00:09:12 +02:00
ejurgensen
e49c941a00
Add a worker thread to support async tasks from the player thread
...
(and maybe others later)
2015-03-31 23:05:24 +02:00
ejurgensen
a529d78880
Don't crash on no metadata...
2015-03-29 20:16:56 +02:00
ejurgensen
b8d8df132b
Support for remote m3u playlists (ref pr #79 )
2015-03-20 23:40:42 +01:00
ejurgensen
6221e24f1b
Support for live ICY metadata for streams (incl. artwork)
2015-03-14 21:42:53 +01:00
ejurgensen
2879458e98
Fix for issue #62 (slow internet streams), credit @chme
2015-01-02 23:24:44 +01:00
ejurgensen
a69619a5a7
Implement is_remote() and change how transcode_needed() is used
...
transcode_needed() was getting called needlessly in http_daapd.c,
because 1) once it is determined that a given codec needs transcoding
for a given client there is no reason to call and check again, 2)
transcoding is irrelevant for remotes. Also some cleaning up of
user_agent_filter().
2014-12-28 23:37:12 +01:00
chme
7889d92a81
Identify "android" user-agent as a remote client in transcode_needed()
...
(similar to the check in user_agent_filter())
2014-12-28 09:37:19 +01:00
ejurgensen
88fcfa061d
Add compability with ffmpeg's libswresample
2014-10-02 22:48:50 +02:00
ejurgensen
cf091e8d8b
Adjust daapcache so it serves User-Agent to httpd_daap's reply handlers
2014-08-23 00:02:01 +02:00
ejurgensen
17ffdc56ad
Fix bug where streams with sample rate < 44100 stop too early (with libav 10+)
...
- avresample_convert should be passed max samples to convert, not
number of samples in input (which for low sample rates is lower
than output)
2014-07-06 23:31:20 +02:00
ejurgensen
2247fadbfa
Some preprocessor conditions for compability on OpenWrt
2014-06-16 23:31:44 +02:00
ejurgensen
687f349927
Let configure check libevent version and include according to version
2014-03-13 23:33:35 +01:00
ejurgensen
7ed6cc98c3
Add support for Spotify (squashed commit), and:
...
- Try to not return items which a client can't play
- Remove inotify subscription to IN_MODIFY and IN_CREATE
- Fix crash on unknown codec type in transcode.c
- Probably added some new bugs...
2014-03-11 23:20:29 +01:00
ejurgensen
7997377deb
Adjust for libav 10 API
...
With libav 10 the API is (again...) changed, adjust for that and
add the appropriate version conditions
2014-02-17 23:05:24 +01:00
Justin Maggard
f9a76aeb1a
Add User-Agent detection for iTunes video playback on OSX
...
iTunes on OSX has a different User-Agent when playing back video
files. Detect this so we can deterimine his codec support.
2014-02-05 17:34:27 -08:00
ejurgensen
785383861b
ffmpeg/libav conditions for CodecID and AVCODEC_MAX_AUDIO_FRAME_SIZE (thanks @freultwah)
2014-01-27 21:24:08 +01:00
ejurgensen
5d6d7c7f82
Only allocate transcode resample buffer once, but make it large
2014-01-19 23:27:39 +01:00
ejurgensen
c2c072eb58
Plug bad mem leak if using libavcodec 54.35 (libav9) or above
2014-01-19 23:09:40 +01:00
ejurgensen
efd4d56de5
Fix a few missing libav conditions
2014-01-06 21:41:30 +01:00
ejurgensen
edaa8fe4f2
Add libav version conditions
2014-01-02 22:49:18 +01:00
ejurgensen
21584fa1ff
Minor adjustment of log message in transcode.c
2013-12-30 23:47:41 +01:00
ejurgensen
8663641e84
Account for no channel_layout (resample) + add free decode frame
2013-12-30 23:16:30 +01:00
ejurgensen
3a8936cd26
Change to libav 9 resampling (avresample)
...
Some of the previous libav stuff removed, re-add later
2013-12-30 13:03:53 +01:00
ejurgensen
73b2d08400
Rework of transcode.c for libav 9. Resampling is broken in this commit.
2013-12-30 00:40:16 +01:00
ejurgensen
0fd65b285d
Fix some ffmpeg/libav compiler conditions
2013-11-25 19:43:17 +01:00
ejurgensen
dea8d02c76
Downgrade log message severity
2013-11-23 11:04:10 +01:00
ejurgensen
3471b6c147
Cleaning up deprecated ffmpeg/libav
2013-09-07 23:39:22 +02:00
ejurgensen
c1c171e21f
Include for av_rescale_q was missing
...
- and has been for a while, it seems
2013-09-04 22:33:47 +02:00
ejurgensen
fa965dee75
Changed SAMPLE_FMT_S16 for ffmpeg 0.11
2013-05-24 20:33:26 +02:00
Julien BLACHE
ed20d3f7de
libav 0.7: use av_get_bytes_per_sample() instead of av_get_bits_per_sample_fmt()
2011-09-10 12:48:14 +02:00
Julien BLACHE
dbe22c2c02
libav 0.7: use avformat_open_input() instead of av_open_input_file()
2011-09-10 12:48:14 +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
ec5ace7dc9
Reset hurry_up to 0 after we acquired a frame with known PTS
2011-06-02 22:06:44 +02:00
Julien BLACHE
67daf3259a
Use avcodec_decode_audio3() when available (FFmpeg 0.6)
2011-02-23 18:26:42 +01:00
Julien BLACHE
75fb755db7
Assign ms to target_pts to ensure full 64bit computation of target_pts
...
Clang produced interesting results without this (or casting ms to int64_t),
as the seek target got mis-computed and fell short of the requested seek
target in ms (ex. wanted 18569 ms -> got 555 ms).
2010-09-13 22:06:53 +02:00
Julien BLACHE
115ded61d0
Move code around, no functional changes
...
Assign start_time right at the start, making the target_pts computation more
obvious wrt start_time and showing the symmetry of the target_pts and got_pts
computations.
2010-09-13 22:06:52 +02:00
Julien BLACHE
d1af41f0e7
Fix got_pts computation wrt start_time
...
Substract start_time from got_pts after actually getting got_pts, and then
rescale the result.
2010-09-13 22:06:12 +02:00
Julien BLACHE
17daace67f
Add seek support to transcode
2010-05-02 11:21:08 +02:00