From 410596f875111fab3d666a472c61be8869d7f7ec Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Sat, 2 Mar 2019 23:54:01 -0500 Subject: remove unused code, fixup imports --- src/audio/ytdl.rs | 113 ------------------------------------------------------ 1 file changed, 113 deletions(-) (limited to 'src/audio/ytdl.rs') diff --git a/src/audio/ytdl.rs b/src/audio/ytdl.rs index 8239683..46f0e27 100644 --- a/src/audio/ytdl.rs +++ b/src/audio/ytdl.rs @@ -1,83 +1,21 @@ /// This module is entirely adapted from the relevant code in Serenity. use std::{ - io::{ - Read, - Result as IoResult, - }, process::{ - Child, Command, Stdio, }, }; -use chrono::Duration; use serde_json::Value; use serenity::{ voice::{ - AudioSource, - pcm, VoiceError, } }; use crate::Result; -struct ChildContainer(Child); - -impl Read for ChildContainer { - fn read(&mut self, buffer: &mut [u8]) -> IoResult { - self.0.stdout.as_mut().unwrap().read(buffer) - } -} - -impl Drop for ChildContainer { - fn drop(&mut self) { - if let Err(e) = self.0.kill() { - debug!("Error awaiting child process: {:?}", e); - } - } -} - -pub(crate) trait CodecInfo { - fn ffmpeg_opts() -> &'static[&'static str]; -} - -pub(crate) struct Pcm {} - -#[allow(dead_code)] -pub(crate) struct Opus {} - -impl CodecInfo for Pcm { - #[inline] - fn ffmpeg_opts() -> &'static[&'static str] { - lazy_static! { - static ref OPTS: Vec<&'static str> = vec! [ - "-f", "s16le", - "-acodec", "pcm_s16le", - ]; - } - - &*OPTS - } -} - -impl CodecInfo for Opus { - #[inline] - fn ffmpeg_opts() -> &'static[&'static str] { - lazy_static! { - static ref OPTS: Vec<&'static str> = vec! [ - "-f", "opus", - "-acodec", "libopus", - "-b:a 96k", - ]; - } - - &*OPTS - } -} - pub fn ytdl_url(uri: &str) -> Result { let args = [ "-f", @@ -111,54 +49,3 @@ pub fn ytdl_url(uri: &str) -> Result { None => Err(VoiceError::YouTubeDLUrl(Value::Object(obj)).into()), } } - -pub(crate) fn ffmpeg_dl(uri: &str, start: Option, end: Option, size_limit: Option) -> Result> { - let start = start.unwrap_or(Duration::zero()); - let start_str = format!("{:02}:{:02}:{:02}", start.num_hours(), start.num_minutes() % 60, start.num_seconds() % 60); - - let mut opts = vec! [ - "-ac", - "2", // force stereo -- this may cause issues - "-ar", - "48000", - "-ss", - &start_str, - ] - .into_iter() - .map(|s| s.to_owned()) - .collect::>(); - - if let Some(e) = end { - opts.push("-to".to_owned()); - opts.push(format!("{:02}:{:02}:{:02}", e.num_hours(), e.num_minutes() % 60, e.num_seconds() % 60)); - } - - let codec_opts = T::ffmpeg_opts().into_iter().map(|&s| s.to_owned()).collect::>(); - opts.extend(codec_opts); - - if let Some(limit) = size_limit { - opts.push("-fs".to_owned()); - opts.push(format!("{}", limit)); - } - - opts.push("-".to_owned()); - - debug!("ffmpeg -i \"{}\" {}", uri, opts.join(" ")); - - let command = Command::new("ffmpeg") - .arg("-i") - .arg(uri) - .args(opts) - .stderr(Stdio::piped()) - .stdin(Stdio::null()) - .stdout(Stdio::piped()) - .spawn()?; - - Ok(Box::new(ChildContainer(command))) -} - -pub fn ytdl(uri: &str, start: Option, end: Option) -> Result> { - let youtube_uri = ytdl_url(uri)?; - let command = ffmpeg_dl::(&youtube_uri, start, end, None)?; - Ok(pcm(true, command)) -} -- cgit v1.3.1