Date | Commit message (Collapse) |
|
This helps in case dtas-player is hit with SIGKILL or the system
crashes. This does not fsync(2) as that could introduce delays on
slow filesystems. Users should open the file manually and fsync
themselves if they need to.
|
|
Oops, at least it still works.
|
|
We don't need it since IO#read(bytes, buf) will convert to
ASCII-8BIT anyways. Everywhere else, we ensure path names are
already binary. We do this mainly at the client layer before using
Shellwords to escape the paths.
We also must be careful about parsing output from soxi/avprobe
which can show us metadata in whatever encoding is in the file.
We must still handle data from parsing command output as binary,
as the encoding of file metadata tends to vary.
This also should buy us Syck compatibility for Ruby 1.9.3 users
on Debian systems where Ruby 1.9.3 still uses Syck.
|
|
All files we distribute in the tarball need to have a
copyright/license specified for Savannah.
We don't need the example state file anymore.
|
|
Since ffmpeg/ffprobe are wrappers around their libav-variants,
I haven't had the chance to actually test with "real" ffmpeg,
but the usage is probably similar enough to not matter.
|
|
We may not have these available, so bail.
|
|
While we're at it, add a test for this functionality, too.
|
|
We should be fully-capable of managing any number of options
to try sources in.
|
|
This should better prepare us to make "source ed" into
"source <av|sox> ed" and set per-source priorities.
We also now treat @env consistently for all per-source commands
(such as soxi/avprobe) so we can be sure we're using the same
installation of sox or libav if using a non-standard PATH, or if we
want to set AV_LOG_FORCE_NOCOLOR
|
|
I forgot :err is already handled by Process.spawn, so split out
the functionality into err_str where we want to use it.
Also, add a :no_raise flag which will allow us to better handle
avprobe/soxi calls which can fail and avoid needless exceptions.
|
|
This should allow us to more easily transfer user-configured
environment variables to helper tools (avprobe/soxi).
|
|
Regexps are hard to write sometimes :x
Anyways, we should support using floating-point internally
for users who prefer it.
|
|
We need to tell sox to use and resample to the _player_ format
instead of the source format. Otherwise 48000 Hz audio (common for
video?) sounds very slow when attempting to play back on the default
44100 Hz. It is also likely preferable to choose the audio stream
which matches the player channel count instead of letting sox
automatically invoke the remix effect.
Before this change, playing 6-channel, 48000 Hz source into a sink
expecting stereo, 44100 Hz is rather disturbing...
While we're at it, clarify the spawn code for the sox source, too.
We can drop the test_format_from_file test now, since
it's probably overkill at this point.
|
|
avconv is capable of outputting to the .sox format, greatly
simplifying our life as it enables us to easily apply sox
effects on a per-source file basis.
dtas-sourceedit and the "source" protocol commands will need
to change to support internal priorities (like sink).
|
|
We'll be supporting reading the format from avprobe and ffprobe,
so we should avoid tying ourselves to soxi
|
|
We should've done this at the start, but we didn't.
|
|
This should make porting to different Unix socket types easier, too.
Much of these tests were written before I decided to implement
unix_client originally.
|
|
Oops, I should've noticed this earlier.
|
|
We documented this behavior in dtas-player.txt but failed to
implement it. Now our behavior matches the documentation!
|
|
It was never fully-realized and too crazy/complex to be worth it.
In case we ever need it in the future, git will remember it for us.
|
|
We maintain most everything else, so we should maintain this, too.
|
|
Some effects may be easier to save/store with relative directory
paths, so allow changing this at runtime.
|
|
|