-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Multimedia streaming on top of Conduit
--
-- Please see README.md
@package mediabus
@version 0.2.0.0
module Data.MediaBus.SourceId
class SetSourceId a (GetSourceId a) ~ a => HasSourceIdT a where type GetSourceId a type SetSourceId a b where {
type family GetSourceId a;
type family SetSourceId a b;
}
-- | Things that can be uniquely identified by a looking at a (much
-- simpler) representation, the identity.
newtype SourceId i
MkSourceId :: i -> SourceId i
type SrcId32 = SourceId Word32
type SrcId64 = SourceId Word64
sourceId :: forall i_afim i_akN8. Iso (SourceId i_afim) (SourceId i_akN8) i_afim i_akN8
instance GHC.Show.Show i => GHC.Show.Show (Data.MediaBus.SourceId.SourceId i)
instance GHC.Generics.Generic (Data.MediaBus.SourceId.SourceId i)
instance GHC.Classes.Ord i => GHC.Classes.Ord (Data.MediaBus.SourceId.SourceId i)
instance Data.Default.Class.Default i => Data.Default.Class.Default (Data.MediaBus.SourceId.SourceId i)
instance Test.QuickCheck.Arbitrary.Arbitrary i => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.SourceId.SourceId i)
instance GHC.Classes.Eq i => GHC.Classes.Eq (Data.MediaBus.SourceId.SourceId i)
instance Control.DeepSeq.NFData i => Control.DeepSeq.NFData (Data.MediaBus.SourceId.SourceId i)
module Data.MediaBus.Series
data Series a b
Next :: !b -> Series a b
Start :: !a -> Series a b
type Series' a = Series a a
_Next :: forall a_aovX b_aovY b_aoTK. Prism (Series a_aovX b_aoTK) (Series a_aovX b_aovY) b_aoTK b_aovY
_Start :: forall a_aovX b_aovY a_aoTP. Prism (Series a_aoTP b_aovY) (Series a_aovX b_aovY) a_aoTP a_aovX
class AsSeries s a b | s -> a, s -> b
seriesStart' :: AsSeries s a b => Prism' s a
seriesNext' :: AsSeries s a b => Prism' s b
class (SetSeriesStart s (GetSeriesStart s) ~ s) => AsSeriesStart s where type GetSeriesStart s type SetSeriesStart s t where {
type family GetSeriesStart s;
type family SetSeriesStart s t;
}
seriesStart :: AsSeriesStart s => Prism s (SetSeriesStart s n) (GetSeriesStart s) n
class (SetSeriesNext s (GetSeriesNext s) ~ s) => AsSeriesNext s where type GetSeriesNext s type SetSeriesNext s t where {
type family GetSeriesNext s;
type family SetSeriesNext s t;
}
seriesNext :: AsSeriesNext s => Prism s (SetSeriesNext s n) (GetSeriesNext s) n
newtype StartingFrom a
MkStartingFrom :: a -> StartingFrom a
startingFromValue :: forall a_aoTZ a_ap9u. Iso (StartingFrom a_aoTZ) (StartingFrom a_ap9u) a_aoTZ a_ap9u
toNextsC' :: Monad m => Conduit (Series a b) m b
toStartsC' :: Monad m => Conduit (Series a b) m a
monotoneSeriesC :: Monad m => m a -> (i -> m b) -> Conduit i m (Series a b)
instance GHC.Show.Show a => GHC.Show.Show (Data.MediaBus.Series.StartingFrom a)
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Series.StartingFrom a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.MediaBus.Series.StartingFrom a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.MediaBus.Series.StartingFrom a)
instance Data.MediaBus.Series.AsSeries (Data.MediaBus.Series.Series a b) a b
instance Data.MediaBus.Series.AsSeriesNext (Data.MediaBus.Series.Series a b)
instance Data.MediaBus.Series.AsSeriesStart (Data.MediaBus.Series.Series a b)
instance GHC.Base.Functor (Data.MediaBus.Series.Series a)
instance Data.Bifunctor.Bifunctor Data.MediaBus.Series.Series
instance GHC.Generics.Generic (Data.MediaBus.Series.Series a b)
instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Data.MediaBus.Series.Series a b)
instance Data.MediaBus.Series.AsSeries (Data.Either.Either a b) a b
instance Data.MediaBus.Series.AsSeriesStart (Data.Either.Either a b)
instance Data.MediaBus.Series.AsSeriesNext (Data.Either.Either a b)
instance (Control.DeepSeq.NFData a, Control.DeepSeq.NFData b) => Control.DeepSeq.NFData (Data.MediaBus.Series.Series a b)
instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.MediaBus.Series.Series a b)
instance (GHC.Classes.Ord a, GHC.Classes.Ord b) => GHC.Classes.Ord (Data.MediaBus.Series.Series a b)
instance (Test.QuickCheck.Arbitrary.Arbitrary a, Test.QuickCheck.Arbitrary.Arbitrary b) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Series.Series a b)
module Data.MediaBus.Payload
class (SetPayload a (GetPayload a) ~ a) => HasPayload a where type GetPayload a type SetPayload a b where {
type family GetPayload a;
type family SetPayload a b;
}
payload :: HasPayload a => Traversal a (SetPayload a b) (GetPayload a) b
module Data.MediaBus.OrderedBy
data OrderedBy a
MkOrderedBy :: (a -> a -> Ordering) -> a -> OrderedBy a
instance GHC.Classes.Eq (Data.MediaBus.OrderedBy.OrderedBy a)
instance GHC.Classes.Ord (Data.MediaBus.OrderedBy.OrderedBy a)
module Data.MediaBus.Monotone
-- | Class of numbers that are monotone increasing (or decreasing) and have
-- a relative order, that is not necessarily transitive.
--
-- For example, for a series of Word8 values: 0 64 128 192 0
-- 64 128 ... could be interpreted as a monotone series of
-- consecutive increasing values, that wrap around after 255. But note
-- that the Ord instance is not sufficient to express that
-- 0 is after 192, since 0 < 192.
class LocalOrd a where x `succeeds` y = (x - y) < ((maxBound - minBound) `div` 2)
succeeds :: LocalOrd a => a -> a -> Bool
succeeds :: (LocalOrd a, Bounded a, Integral a) => a -> a -> Bool
instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word8
instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word16
instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word32
instance Data.MediaBus.Monotone.LocalOrd GHC.Word.Word64
instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int8
instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int16
instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int32
instance Data.MediaBus.Monotone.LocalOrd GHC.Int.Int64
instance Data.MediaBus.Monotone.LocalOrd GHC.Types.Int
module Data.MediaBus.Sequence
newtype SeqNum s
MkSeqNum :: s -> SeqNum s
type SeqNum8 = SeqNum Word8
type SeqNum16 = SeqNum Word16
type SeqNum32 = SeqNum Word32
type SeqNum64 = SeqNum Word64
class SetSeqNum t (GetSeqNum t) ~ t => HasSeqNumT t where type GetSeqNum t type SetSeqNum t s where {
type family GetSeqNum t;
type family SetSeqNum t s;
}
class HasSeqNumT t => HasSeqNum t
seqNum :: HasSeqNum t => Lens t (SetSeqNum t s) (GetSeqNum t) s
fromSeqNum :: forall s_au3a s_auyy. Iso (SeqNum s_au3a) (SeqNum s_auyy) s_au3a s_auyy
synchronizeToSeqNum :: (HasSeqNum a, Monad m, Integral i) => i -> Conduit a m (SetSeqNum a i)
instance (GHC.Real.Real a, GHC.Num.Num a, GHC.Classes.Eq a, Data.MediaBus.Monotone.LocalOrd a) => GHC.Real.Real (Data.MediaBus.Sequence.SeqNum a)
instance (GHC.Real.Integral a, GHC.Enum.Enum a, GHC.Real.Real a, GHC.Classes.Eq a, Data.MediaBus.Monotone.LocalOrd a) => GHC.Real.Integral (Data.MediaBus.Sequence.SeqNum a)
instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Sequence.SeqNum s)
instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Sequence.SeqNum s)
instance GHC.Show.Show s => GHC.Show.Show (Data.MediaBus.Sequence.SeqNum s)
instance (GHC.Classes.Eq a, Data.MediaBus.Monotone.LocalOrd a) => GHC.Classes.Ord (Data.MediaBus.Sequence.SeqNum a)
instance System.Random.Random s => System.Random.Random (Data.MediaBus.Sequence.SeqNum s)
instance GHC.Generics.Generic (Data.MediaBus.Sequence.SeqNum s)
instance Data.Default.Class.Default s => Data.Default.Class.Default (Data.MediaBus.Sequence.SeqNum s)
instance Test.QuickCheck.Arbitrary.Arbitrary s => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Sequence.SeqNum s)
instance Data.MediaBus.Monotone.LocalOrd s => Data.MediaBus.Monotone.LocalOrd (Data.MediaBus.Sequence.SeqNum s)
instance GHC.Enum.Enum s => GHC.Enum.Enum (Data.MediaBus.Sequence.SeqNum s)
instance GHC.Enum.Bounded s => GHC.Enum.Bounded (Data.MediaBus.Sequence.SeqNum s)
instance GHC.Classes.Eq s => GHC.Classes.Eq (Data.MediaBus.Sequence.SeqNum s)
instance GHC.Num.Num s => GHC.Num.Num (Data.MediaBus.Sequence.SeqNum s)
instance (Data.MediaBus.Sequence.HasSeqNumT a, Data.MediaBus.Sequence.HasSeqNumT b, Data.MediaBus.Sequence.GetSeqNum a ~ Data.MediaBus.Sequence.GetSeqNum b) => Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Series.Series a b)
instance (Data.MediaBus.Sequence.HasSeqNum a, Data.MediaBus.Sequence.HasSeqNum b, Data.MediaBus.Sequence.GetSeqNum a ~ Data.MediaBus.Sequence.GetSeqNum b) => Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Series.Series a b)
instance Control.DeepSeq.NFData s => Control.DeepSeq.NFData (Data.MediaBus.Sequence.SeqNum s)
module Data.MediaBus.Ticks
-- | Types with a duration (e.g. audio samples).
class HasDuration a where getDuration !x = from nominalDiffTime # (getDurationTicks x :: Ticks 1000000000000 Integer) getDurationTicks !x = nominalDiffTime # getDuration x
getDuration :: HasDuration a => a -> NominalDiffTime
getDurationTicks :: (HasDuration a, Integral i, KnownNat r) => a -> Ticks r i
class SetTimestamp t (GetTimestamp t) ~ t => HasTimestampT t where type GetTimestamp t type SetTimestamp t s where {
type family GetTimestamp t;
type family SetTimestamp t s;
}
class HasTimestampT t => HasTimestamp t where timestamp' = timestamp
timestamp :: HasTimestamp t => Lens t (SetTimestamp t s) (GetTimestamp t) s
timestamp' :: HasTimestamp t => Lens' t (GetTimestamp t)
newtype Ticks (rate :: Nat) w
MkTicks :: w -> Ticks w
type Ticks32 r = Ticks r Word32
type Ticks64 r = Ticks r Word64
type Ticks32At8000 = Ticks32 8000
type Ticks32At16000 = Ticks32 16000
type Ticks32At48000 = Ticks32 48000
type Ticks64At8000 = Ticks64 8000
type Ticks64At16000 = Ticks64 16000
type Ticks64At48000 = Ticks64 48000
mkTicks :: forall proxy rate baseType. proxy '(rate, baseType) -> baseType -> Ticks rate baseType
at8kHzU32 :: Proxy '(8000, Word32)
at16kHzU32 :: Proxy '(16000, Word32)
at48kHzU32 :: Proxy '(48000, Word32)
at16kHzU64 :: Proxy '(16000, Word64)
at48kHzU64 :: Proxy '(48000, Word64)
nominalDiffTime :: forall r w. (Integral w, KnownNat r) => Iso' (Ticks r w) NominalDiffTime
convertTicks :: (Integral w, Integral w', KnownNat r, KnownNat r') => Ticks r w -> Ticks r' w'
deriveFrameTimestamp :: (Monad m, KnownNat r, Integral t, HasDuration a, HasTimestamp a) => Ticks r t -> Conduit a m (SetTimestamp a (Ticks r t))
data StaticTicks
[MkStaticTicks] :: Nat -> Rate -> StaticTicks
class KnownStaticTicks (s :: StaticTicks)
staticTicksVal :: (KnownStaticTicks s, KnownNat r) => proxy s -> Ticks r Integer
data Rate
MkRate :: Nat -> Rate
type (:@) ticks rate = MkStaticTicks ticks (MkRate rate)
class (KnownStaticTicks (GetStaticDuration s), SetStaticDuration s (GetStaticDuration s) ~ s) => HasStaticDuration (s :: k) where type SetStaticDuration s (pt :: StaticTicks) :: k' type GetStaticDuration s :: StaticTicks where {
type family SetStaticDuration s (pt :: StaticTicks) :: k';
type family GetStaticDuration s :: StaticTicks;
}
toStaticDurationProxy :: (HasStaticDuration s) => proxy s -> Proxy (GetStaticDuration s)
getStaticDuration :: forall proxy s. HasStaticDuration s => proxy s -> NominalDiffTime
getStaticTicks :: forall proxy s r t i. (KnownNat r, KnownNat t, HasStaticDuration s, GetStaticDuration s ~ (t :@ r), Integral i) => proxy s -> Ticks r i
getStaticRate :: forall proxy s r t. (KnownNat r, KnownNat t, HasStaticDuration s, GetStaticDuration s ~ (t :@ r)) => proxy s -> Integer
ticksFromStaticDuration :: forall proxy rate ticks i. (KnownNat rate, KnownNat ticks, Integral i) => proxy (ticks :@ rate) -> Ticks rate i
rateFromStaticDuration :: forall proxy rate ticks. (KnownNat rate, KnownNat ticks) => proxy (ticks :@ rate) -> Integer
instance System.Random.Random w => System.Random.Random (Data.MediaBus.Ticks.Ticks rate w)
instance GHC.Generics.Generic (Data.MediaBus.Ticks.Ticks rate w)
instance Data.Default.Class.Default w => Data.Default.Class.Default (Data.MediaBus.Ticks.Ticks rate w)
instance Test.QuickCheck.Arbitrary.Arbitrary w => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Ticks.Ticks rate w)
instance GHC.Num.Num w => GHC.Num.Num (Data.MediaBus.Ticks.Ticks rate w)
instance Data.MediaBus.Monotone.LocalOrd w => Data.MediaBus.Monotone.LocalOrd (Data.MediaBus.Ticks.Ticks rate w)
instance GHC.Enum.Enum w => GHC.Enum.Enum (Data.MediaBus.Ticks.Ticks rate w)
instance (Data.MediaBus.Monotone.LocalOrd w, GHC.Real.Integral w) => GHC.Real.Integral (Data.MediaBus.Ticks.Ticks rate w)
instance (Data.MediaBus.Monotone.LocalOrd w, GHC.Real.Real w) => GHC.Real.Real (Data.MediaBus.Ticks.Ticks rate w)
instance GHC.Classes.Eq w => GHC.Classes.Eq (Data.MediaBus.Ticks.Ticks rate w)
instance Control.DeepSeq.NFData w => Control.DeepSeq.NFData (Data.MediaBus.Ticks.Ticks rate w)
instance (GHC.TypeLits.KnownNat r, GHC.Real.Integral w, GHC.Show.Show w) => GHC.Show.Show (Data.MediaBus.Ticks.Ticks r w)
instance (GHC.Classes.Eq w, Data.MediaBus.Monotone.LocalOrd w) => GHC.Classes.Ord (Data.MediaBus.Ticks.Ticks rate w)
instance Data.MediaBus.Ticks.HasDuration a => Data.MediaBus.Ticks.HasDuration (GHC.Base.Maybe a)
instance (Data.MediaBus.Ticks.HasTimestampT a, Data.MediaBus.Ticks.HasTimestampT b, Data.MediaBus.Ticks.GetTimestamp a ~ Data.MediaBus.Ticks.GetTimestamp b) => Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Series.Series a b)
instance (Data.MediaBus.Ticks.HasTimestamp a, Data.MediaBus.Ticks.HasTimestamp b, Data.MediaBus.Ticks.GetTimestamp a ~ Data.MediaBus.Ticks.GetTimestamp b) => Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Series.Series a b)
instance (GHC.TypeLits.KnownNat r, GHC.TypeLits.KnownNat t) => Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks (t Data.MediaBus.Ticks.:@ r)
instance (GHC.TypeLits.KnownNat d, GHC.TypeLits.KnownNat r) => Data.MediaBus.Ticks.KnownStaticTicks ('Data.MediaBus.Ticks.MkStaticTicks d ('Data.MediaBus.Ticks.MkRate r))
module Data.MediaBus.Segment
-- | Class of types that support splitting of from the front a packet
-- containing roughly a certain duration.
class CanSegment a
-- | Try to split the packet into the a part which has at most the given
-- duration and a rest. If not possible, e.g. because the input data is
-- already shorter than the given duration, return Nothing.
splitAfterDuration :: (CanSegment a, HasStaticDuration d) => proxy d -> a -> Maybe (Segment d a, a)
-- | A segment is some content with a fixed (type level) duration.
newtype Segment (duration :: StaticTicks) c
MkSegment :: c -> Segment c
segmentContent :: forall duration_aB5w c_aB5x duration_aBmD c_aBmE. Iso (Segment duration_aB5w c_aB5x) (Segment duration_aBmD c_aBmE) c_aB5x c_aBmE
instance Data.MediaBus.Ticks.KnownStaticTicks d => Data.MediaBus.Ticks.HasStaticDuration * (Data.MediaBus.Segment.Segment d x)
instance Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks d => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Segment.Segment d x)
instance GHC.Classes.Eq c => GHC.Classes.Eq (Data.MediaBus.Segment.Segment duration c)
instance GHC.Base.Functor (Data.MediaBus.Segment.Segment duration)
instance Test.QuickCheck.Arbitrary.Arbitrary c => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Segment.Segment duration c)
instance Data.Default.Class.Default c => Data.Default.Class.Default (Data.MediaBus.Segment.Segment duration c)
instance Control.DeepSeq.NFData c => Control.DeepSeq.NFData (Data.MediaBus.Segment.Segment duration c)
instance (Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks d, GHC.Show.Show c) => GHC.Show.Show (Data.MediaBus.Segment.Segment d c)
module Data.MediaBus.Stream
class (SetPayload a (GetPayload a) ~ a) => HasPayload a where type GetPayload a type SetPayload a b where {
type family GetPayload a;
type family SetPayload a b;
}
payload :: HasPayload a => Traversal a (SetPayload a b) (GetPayload a) b
data FrameCtx i s t p
MkFrameCtx :: !i -> !t -> !s -> !p -> FrameCtx i s t p
frameCtxSourceId :: forall i_aCbd s_aCbe t_aCbf p_aCbg i_aCka. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCka s_aCbe t_aCbf p_aCbg) i_aCbd i_aCka
frameCtxSeqNumRef :: forall i_aCbd s_aCbe t_aCbf p_aCbg s_aCk9. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCbd s_aCk9 t_aCbf p_aCbg) s_aCbe s_aCk9
frameCtxTimestampRef :: forall i_aCbd s_aCbe t_aCbf p_aCbg t_aCkb. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCbd s_aCbe t_aCkb p_aCbg) t_aCbf t_aCkb
frameCtxInit :: forall i_aCbd s_aCbe t_aCbf p_aCbg p_aCk8. Lens (FrameCtx i_aCbd s_aCbe t_aCbf p_aCbg) (FrameCtx i_aCbd s_aCbe t_aCbf p_aCk8) p_aCbg p_aCk8
-- | A Frame can be anything that has a start time and is exactly
-- one time unit long, it can respresent anything ranging from an audio
-- buffer with 20ms of audio to a single pulse coded audio sample, of
-- course it could also be a video frame or a chat message.
data Frame s t c
MkFrame :: !t -> !s -> !c -> Frame s t c
frameSeqNum :: forall s_aCkJ t_aCkK c_aCkL s_aCBv. Lens (Frame s_aCkJ t_aCkK c_aCkL) (Frame s_aCBv t_aCkK c_aCkL) s_aCkJ s_aCBv
frameTimestamp :: forall s_aCkJ t_aCkK c_aCkL t_aCBw. Lens (Frame s_aCkJ t_aCkK c_aCkL) (Frame s_aCkJ t_aCBw c_aCkL) t_aCkK t_aCBw
framePayload :: forall s_aCkJ t_aCkK c_aCkL c_aCBu. Lens (Frame s_aCkJ t_aCkK c_aCkL) (Frame s_aCkJ t_aCkK c_aCBu) c_aCkL c_aCBu
newtype Stream i s t p c
MkStream :: Streamish i s t p c -> Stream i s t p c
stream :: forall i_aCBY s_aCBZ t_aCC0 p_aCC1 c_aCC2 i_aCZQ s_aCZR t_aCZS p_aCZT c_aCZU. Iso (Stream i_aCBY s_aCBZ t_aCC0 p_aCC1 c_aCC2) (Stream i_aCZQ s_aCZR t_aCZS p_aCZT c_aCZU) (Streamish i_aCBY s_aCBZ t_aCC0 p_aCC1 c_aCC2) (Streamish i_aCZQ s_aCZR t_aCZS p_aCZT c_aCZU)
yieldStreamish :: Monad m => Streamish i s t p c -> Conduit a m (Stream i s t p c)
yieldStreamish' :: (NFData i, NFData s, NFData t, NFData c, NFData p, Monad m) => Streamish i s t p c -> Conduit a m (Stream i s t p c)
yieldNextFrame :: Monad m => Frame s t c -> Conduit a m (Stream i s t p c)
yieldNextFrame' :: (NFData i, NFData s, NFData t, NFData c, NFData p, Monad m) => Frame s t c -> Conduit a m (Stream i s t p c)
yieldStartFrameCtx :: Monad m => FrameCtx i s t p -> Conduit a m (Stream i s t p c)
yieldStartFrameCtx' :: (NFData i, NFData s, NFData t, NFData c, NFData p, NFData (FrameCtx i s t p), Monad m) => FrameCtx i s t p -> Conduit a m (Stream i s t p c)
toFramesC :: Monad m => Conduit (Stream i s t p c) m (Frame s t c)
overStreamC :: Monad m => Conduit (Series (FrameCtx i s t p) (Frame s t c)) m (Series (FrameCtx i' s' t' p') (Frame s' t' c')) -> Conduit (Stream i s t p c) m (Stream i' s' t' p' c')
mapFramesC :: Monad m => (Frame s t c -> m (Frame s t c')) -> Conduit (Stream i s t p c) m (Stream i s t p c')
mapFramesC' :: (NFData i, NFData s, NFData t, NFData c', Monad m) => (Frame s t c -> Frame s t c') -> Conduit (Stream i s t p c) m (Stream i s t p c')
mapSeqNumC :: Monad m => (s -> s') -> Conduit (Stream i s t p c) m (Stream i s' t p c)
mapTicksC :: Monad m => (t -> t') -> Conduit (Stream i s t p c) m (Stream i s t' p c)
mapTicksC' :: (NFData t, Monad m) => (t -> t') -> Conduit (Stream i s t p c) m (Stream i s t' p c)
mapPayloadMC :: Monad m => (c -> m c') -> Conduit (Stream i s t p c) m (Stream i s t p c')
mapPayloadMC' :: (NFData (Stream i s t p c'), Monad m) => (c -> m c') -> Conduit (Stream i s t p c) m (Stream i s t p c')
mapPayloadC' :: (NFData c', Monad m) => (c -> c') -> Conduit (Stream i s t p c) m (Stream i s t p c')
convertTicksC' :: forall proxy0 proxy1 m r t r' t' i s c p. (NFData t, NFData t', KnownNat r, KnownNat r', Integral t, Integral t', Monad m, NFData t') => proxy0 '(r, t) -> proxy1 '(r', t') -> Conduit (Stream i s (Ticks r t) p c) m (Stream i s (Ticks r' t') p c)
foldStream :: (Monoid o, Monad m) => (Stream i s t p c -> o) -> Sink (Stream i s t p c) m o
foldStreamM :: (Monoid o, Monad m) => (Stream i s t p c -> m o) -> Sink (Stream i s t p c) m o
concatStreamContents :: (Monoid c, Monad m) => Sink (Stream i s t p c) m c
instance Data.MediaBus.Payload.HasPayload (Data.MediaBus.Stream.Stream i s t p c)
instance Data.MediaBus.Ticks.HasDuration c => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Stream.Stream i s t p c)
instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Stream.Stream i s t p c)
instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Stream.Stream i s t p c)
instance Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Stream.Stream i s t p c)
instance Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Stream.Stream i s t p c)
instance (Data.Default.Class.Default c, Data.Default.Class.Default s, Data.Default.Class.Default t) => Data.Default.Class.Default (Data.MediaBus.Stream.Stream i s t p c)
instance (GHC.Show.Show i, GHC.Show.Show s, GHC.Show.Show t, GHC.Show.Show c, GHC.Show.Show p) => GHC.Show.Show (Data.MediaBus.Stream.Stream i s t p c)
instance GHC.Generics.Generic (Data.MediaBus.Stream.Stream i s t p c)
instance (Test.QuickCheck.Arbitrary.Arbitrary c, Test.QuickCheck.Arbitrary.Arbitrary p, Test.QuickCheck.Arbitrary.Arbitrary t, Test.QuickCheck.Arbitrary.Arbitrary s, Test.QuickCheck.Arbitrary.Arbitrary i) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Stream.Stream i s t p c)
instance (GHC.Classes.Eq c, GHC.Classes.Eq i, GHC.Classes.Eq t, GHC.Classes.Eq s, GHC.Classes.Eq p) => GHC.Classes.Eq (Data.MediaBus.Stream.Stream i s t p c)
instance (GHC.Classes.Ord c, GHC.Classes.Ord i, GHC.Classes.Ord t, GHC.Classes.Ord s, GHC.Classes.Ord p) => GHC.Classes.Ord (Data.MediaBus.Stream.Stream i s t p c)
instance Data.MediaBus.Payload.HasPayload (Data.MediaBus.Stream.Frame s t c)
instance Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Stream.Frame s t c)
instance Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Stream.Frame s t c)
instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Stream.Frame s t c)
instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Stream.Frame s t c)
instance Data.MediaBus.Ticks.HasDuration c => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Stream.Frame s t c)
instance (Test.QuickCheck.Arbitrary.Arbitrary c, Test.QuickCheck.Arbitrary.Arbitrary s, Test.QuickCheck.Arbitrary.Arbitrary t) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Stream.Frame s t c)
instance (Data.Default.Class.Default s, Data.Default.Class.Default t, Data.Default.Class.Default c) => Data.Default.Class.Default (Data.MediaBus.Stream.Frame s t c)
instance (GHC.Show.Show s, GHC.Show.Show t, GHC.Show.Show v) => GHC.Show.Show (Data.MediaBus.Stream.Frame s t v)
instance (Control.DeepSeq.NFData i, Control.DeepSeq.NFData s, Control.DeepSeq.NFData t, Control.DeepSeq.NFData c, Control.DeepSeq.NFData p) => Control.DeepSeq.NFData (Data.MediaBus.Stream.Stream i s t p c)
instance GHC.Generics.Generic (Data.MediaBus.Stream.Frame s t c)
instance (GHC.Classes.Ord c, GHC.Classes.Ord s, GHC.Classes.Ord t) => GHC.Classes.Ord (Data.MediaBus.Stream.Frame s t c)
instance (GHC.Classes.Eq c, GHC.Classes.Eq s, GHC.Classes.Eq t) => GHC.Classes.Eq (Data.MediaBus.Stream.Frame s t c)
instance GHC.Base.Functor (Data.MediaBus.Stream.Frame s t)
instance Data.MediaBus.Ticks.HasTimestampT (Data.MediaBus.Stream.FrameCtx i s t p)
instance Data.MediaBus.Ticks.HasTimestamp (Data.MediaBus.Stream.FrameCtx i s t p)
instance Data.MediaBus.Sequence.HasSeqNumT (Data.MediaBus.Stream.FrameCtx i s t p)
instance Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Stream.FrameCtx i s t p)
instance Data.MediaBus.Sequence.HasSeqNum (Data.MediaBus.Stream.FrameCtx i s t p)
instance (Test.QuickCheck.Arbitrary.Arbitrary i, Test.QuickCheck.Arbitrary.Arbitrary s, Test.QuickCheck.Arbitrary.Arbitrary t, Test.QuickCheck.Arbitrary.Arbitrary p) => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Stream.FrameCtx i s t p)
instance (Data.Default.Class.Default i, Data.Default.Class.Default s, Data.Default.Class.Default t, Data.Default.Class.Default p) => Data.Default.Class.Default (Data.MediaBus.Stream.FrameCtx i s t p)
instance (GHC.Show.Show i, GHC.Show.Show s, GHC.Show.Show t, GHC.Show.Show p) => GHC.Show.Show (Data.MediaBus.Stream.FrameCtx i s t p)
instance (Control.DeepSeq.NFData c, Control.DeepSeq.NFData s, Control.DeepSeq.NFData t) => Control.DeepSeq.NFData (Data.MediaBus.Stream.Frame s t c)
instance GHC.Generics.Generic (Data.MediaBus.Stream.FrameCtx i s t p)
instance (GHC.Classes.Ord p, GHC.Classes.Ord s, GHC.Classes.Ord t, GHC.Classes.Ord i) => GHC.Classes.Ord (Data.MediaBus.Stream.FrameCtx i s t p)
instance (GHC.Classes.Eq p, GHC.Classes.Eq s, GHC.Classes.Eq t, GHC.Classes.Eq i) => GHC.Classes.Eq (Data.MediaBus.Stream.FrameCtx i s t p)
instance (Control.DeepSeq.NFData i, Control.DeepSeq.NFData s, Control.DeepSeq.NFData t, Control.DeepSeq.NFData p) => Control.DeepSeq.NFData (Data.MediaBus.Stream.FrameCtx i s t p)
module Data.MediaBus.Reorder
reorderFramesBySeqNumC :: (Default s, Default i, Default t, Default p, Num s, Ord s, Monad m) => Int -> Conduit (Stream i s t p c) m (Stream i s t p c)
reorderFramesByC :: (Monad m, Ord rank, Default i, Default t, Default s, Default p, Default rank) => Lens' (Stream i s t p c) rank -> (rank -> rank) -> Int -> Conduit (Stream i s t p c) m (Stream i s t p c)
module Data.MediaBus.Transcoder
class Transcoder from to where type TranscodingSeqNum from to s :: Constraint type TranscodingTicks from to t :: Constraint type TranscodingSeqNum from to s = () type TranscodingTicks from to t = () where {
type family TranscodingSeqNum from to s :: Constraint;
type family TranscodingTicks from to t :: Constraint;
type TranscodingSeqNum from to s = ();
type TranscodingTicks from to t = ();
}
transcode :: (Transcoder from to, TranscodingSeqNum from to s, TranscodingTicks from to t) => Frame s t from -> Frame s t to
transcodeStreamC' :: (NFData to, NFData p, NFData i, NFData s, NFData t, NFData p, Monad m, Transcoder from to, TranscodingSeqNum from to s, TranscodingTicks from to t) => Conduit (Stream i s t p from) m (Stream i s t p to)
module Data.MediaBus.StreamSegment
-- | The packetizer recombines incoming packets into Segments of the
-- given size. The sequence numbers will be offsetted by the number extra
-- frames generated.
segmentC :: (Num s, Monad m, HasDuration c, CanSegment c, Monoid c, Default i, KnownNat r, Integral t, HasStaticDuration d) => Conduit (Stream i s (Ticks r t) p c) m (Stream i s (Ticks r t) p (Segment d c))
segmentC' :: (Num s, Monad m, HasDuration c, CanSegment c, Monoid c, Default i, KnownNat r, Integral t, HasStaticDuration d) => proxy d -> Conduit (Stream i s (Ticks r t) p c) m (Stream i s (Ticks r t) p (Segment d c))
module Data.MediaBus.Discontinous
data Discontinous a
Missing :: Discontinous a
Got :: !a -> Discontinous a
_Missing :: forall a_aOX8. Prism' (Discontinous a_aOX8) ()
_Got :: forall a_aOX8 a_aPpw. Prism (Discontinous a_aPpw) (Discontinous a_aOX8) a_aPpw a_aOX8
concealMissing :: (NFData c, Monad m) => c -> Conduit (Stream i s t p (Discontinous c)) m (Stream i s t p c)
instance Data.MediaBus.Ticks.HasDuration a => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Discontinous.Discontinous a)
instance Data.MediaBus.Payload.HasPayload a => Data.MediaBus.Payload.HasPayload (Data.MediaBus.Discontinous.Discontinous a)
instance GHC.Generics.Generic (Data.MediaBus.Discontinous.Discontinous a)
instance GHC.Show.Show a => GHC.Show.Show (Data.MediaBus.Discontinous.Discontinous a)
instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.MediaBus.Discontinous.Discontinous a)
instance Data.Default.Class.Default (Data.MediaBus.Discontinous.Discontinous a)
module Data.MediaBus.Conduit
annotateTypeC :: proxy a -> Conduit a m a -> Conduit a m a
annotateTypeCIn :: proxy a -> Conduit a m b -> Conduit a m b
annotateTypeCOut :: proxy b -> Conduit a m b -> Conduit a m b
annotateTypeSink :: proxy a -> Sink a m r -> Sink a m r
annotateTypeSource :: proxy a -> Source m a -> Source m a
exitAfterC :: Monad m => Int -> Conduit a m a
traceShowC :: (Show a, Monad m) => Double -> String -> Conduit a m a
traceShowSink :: (Show a, Monad m) => Double -> String -> Consumer a m [a]
module Data.MediaBus.Clock
-- | Clocks can generate reference times, and they can convert these to
-- tickss. Tickss are mere integrals
class (Default (ClockTimeDiff c), Ord (ClockTimeDiff c), Eq (ClockTimeDiff c), Num (ClockTimeDiff c), Show (ClockTime c), Eq (ClockTime c), Show (ClockTimeDiff c), LocalOrd (ClockTimeDiff c)) => IsClock c where data ClockTime c data ClockTimeDiff c type MonadClock c (m :: Type -> Type) :: Constraint where {
data family ClockTime c;
data family ClockTimeDiff c;
type family MonadClock c (m :: Type -> Type) :: Constraint;
}
now :: (IsClock c, MonadClock c m) => m (ClockTime c)
timeAsTimeDiff :: IsClock c => ClockTime c -> ClockTimeDiff c
diffTime :: IsClock c => ClockTime c -> ClockTime c -> ClockTimeDiff c
timeAddTimeDiff :: IsClock c => ClockTime c -> ClockTimeDiff c -> ClockTime c
timeSince :: (IsClock c, MonadClock c m, Monad m) => ClockTime c -> m (ClockTimeDiff c)
data UtcClock
MkUtcClock :: UtcClock
useUtcClock :: Proxy UtcClock
($sel:_utcClockTimeDiff:MkUtcClockTimeDiff) :: ClockTimeDiff UtcClock -> NominalDiffTime
($sel:_utcClockTime:MkUtcClockTime) :: ClockTime UtcClock -> UTCTime
utcClockTimeDiff :: Lens' (ClockTimeDiff UtcClock) NominalDiffTime
instance GHC.Generics.Generic Data.MediaBus.Clock.UtcClock
instance GHC.Generics.Generic (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance GHC.Num.Num (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance GHC.Classes.Eq (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance GHC.Classes.Ord (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance GHC.Generics.Generic (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock)
instance GHC.Classes.Eq (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock)
instance Control.DeepSeq.NFData Data.MediaBus.Clock.UtcClock
instance Data.MediaBus.Clock.IsClock * Data.MediaBus.Clock.UtcClock
instance Control.DeepSeq.NFData (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock)
instance GHC.Show.Show (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock)
instance GHC.Show.Show (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance Control.DeepSeq.NFData (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance Data.Default.Class.Default (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Clock.ClockTime * Data.MediaBus.Clock.UtcClock)
instance Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
instance Data.MediaBus.Monotone.LocalOrd (Data.MediaBus.Clock.ClockTimeDiff * Data.MediaBus.Clock.UtcClock)
module Data.MediaBus.Transport.Udp
-- | A UDP source that uses MonandResource to make sure the socket
-- is closed.
udpDatagramSource :: (IsClock c, MonadClock c m, MonadResource m, Num s, Default p) => proxy c -> Int -> HostPreference -> Source m (Stream (SourceId (Maybe SockAddr)) (SeqNum s) (ClockTimeDiff c) p ByteString)
module Data.MediaBus.BlankMedia
class CanGenerateBlankMedia a where blankFor dt = blankForTicks (nominalDiffTime # dt :: Ticks 1000000000000 Integer) blankForTicks ticks = blankFor (from nominalDiffTime # ticks)
blankFor :: CanGenerateBlankMedia a => NominalDiffTime -> a
blankForTicks :: (CanGenerateBlankMedia a, Integral i, KnownNat r) => Ticks r i -> a
class CanBeBlank a
blank :: CanBeBlank a => a
instance (Data.MediaBus.Ticks.HasStaticDuration Data.MediaBus.Ticks.StaticTicks d, Data.MediaBus.BlankMedia.CanGenerateBlankMedia a) => Data.MediaBus.BlankMedia.CanBeBlank (Data.MediaBus.Segment.Segment d a)
module Data.MediaBus.Sample
-- | A sample is a discrete value of a continuous signal, periodically
-- sampled at the sampling frequency. This is a full buffer of those
-- things.
newtype SampleBuffer sampleType
MkSampleBuffer :: Vector sampleType -> SampleBuffer sampleType
sampleBufferFromByteString :: Storable a => ByteString -> SampleBuffer a
byteStringFromSampleBuffer :: Storable a => SampleBuffer a -> ByteString
sampleBufferToList :: Storable s => SampleBuffer s -> [s]
sampleBufferFromList :: Storable s => [s] -> SampleBuffer s
sampleVector :: forall sampleType_aUmi sampleType_aUzc. Iso (SampleBuffer sampleType_aUmi) (SampleBuffer sampleType_aUzc) (Vector sampleType_aUmi) (Vector sampleType_aUzc)
createSampleBufferFrom :: (Storable sample') => (forall s. Vector sample -> ST s (MVector s sample')) -> SampleBuffer sample -> SampleBuffer sample'
-- | A type class for media formats, like encodings, sample rate, etc...
class (Storable (GetSampleType s), SetSampleType s (GetSampleType s) ~ s) => HasSampleBuffer s where type SetSampleType s t type GetSampleType s where {
type family SetSampleType s t;
type family GetSampleType s;
}
sampleCount :: HasSampleBuffer s => s -> Int
eachSample :: (HasSampleBuffer s, Storable t) => Traversal s (SetSampleType s t) (GetSampleType s) t
sampleBuffer :: (HasSampleBuffer s, Storable t) => Lens s (SetSampleType s t) (SampleBuffer (GetSampleType s)) (SampleBuffer t)
type GetSampleBuffer s = SampleBuffer (GetSampleType s)
mutateSamples :: Storable a => (forall s. MVector s a -> ST s ()) -> SampleBuffer a -> SampleBuffer a
-- | Unsafe because results can be returned, which might contain the
-- thawn vector.
unsafeMutateSamples :: Storable a => (forall s. MVector s a -> ST s r) -> SampleBuffer a -> (r, SampleBuffer a)
instance (Data.MediaBus.BlankMedia.CanBeBlank sa, Foreign.Storable.Storable sa, Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * sa)) => Data.MediaBus.BlankMedia.CanGenerateBlankMedia (Data.MediaBus.Sample.SampleBuffer sa)
instance Foreign.Storable.Storable sampleType => Data.Default.Class.Default (Data.MediaBus.Sample.SampleBuffer sampleType)
instance (Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * sampleType), Foreign.Storable.Storable sampleType) => Data.MediaBus.Ticks.HasDuration (Data.MediaBus.Sample.SampleBuffer sampleType)
instance (Foreign.Storable.Storable a, Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * a)) => Data.MediaBus.Segment.CanSegment (Data.MediaBus.Sample.SampleBuffer a)
instance Foreign.Storable.Storable s => GHC.Exts.IsList (Data.MediaBus.Sample.SampleBuffer s)
instance Foreign.Storable.Storable a => Data.MediaBus.Sample.HasSampleBuffer (Data.MediaBus.Sample.SampleBuffer a)
instance GHC.Generics.Generic (Data.MediaBus.Sample.SampleBuffer sampleType)
instance Foreign.Storable.Storable sampleType => GHC.Base.Monoid (Data.MediaBus.Sample.SampleBuffer sampleType)
instance (GHC.Classes.Eq sampleType, Foreign.Storable.Storable sampleType) => GHC.Classes.Eq (Data.MediaBus.Sample.SampleBuffer sampleType)
instance Control.DeepSeq.NFData sampleType => Control.DeepSeq.NFData (Data.MediaBus.Sample.SampleBuffer sampleType)
instance (Foreign.Storable.Storable sampleType, Data.Typeable.Internal.Typeable * sampleType, GHC.Show.Show sampleType) => GHC.Show.Show (Data.MediaBus.Sample.SampleBuffer sampleType)
module Data.MediaBus.Audio.Channels
data ChannelLayout
SingleChannel :: ChannelLayout
ChannelPair :: ChannelLayout
data ChannelPair a
MkChannelPair :: a -> a -> ChannelPair a
leftSample :: forall a_aWql. Lens' (ChannelPair a_aWql) a_aWql
rightSample :: forall a_aWql. Lens' (ChannelPair a_aWql) a_aWql
class HasChannelLayout c
channelLayout :: HasChannelLayout c => c -> ChannelLayout
instance Data.MediaBus.Audio.Channels.HasChannelLayout a => Data.MediaBus.Audio.Channels.HasChannelLayout (Data.MediaBus.Audio.Channels.ChannelPair a)
instance Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * a) => Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * (Data.MediaBus.Audio.Channels.ChannelPair a))
instance Foreign.Storable.Storable s => Foreign.Storable.Storable (Data.MediaBus.Audio.Channels.ChannelPair s)
instance GHC.Generics.Generic (Data.MediaBus.Audio.Channels.ChannelPair a)
instance GHC.Classes.Ord a => GHC.Classes.Ord (Data.MediaBus.Audio.Channels.ChannelPair a)
instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.MediaBus.Audio.Channels.ChannelPair a)
instance GHC.Show.Show a => GHC.Show.Show (Data.MediaBus.Audio.Channels.ChannelPair a)
instance GHC.Generics.Generic Data.MediaBus.Audio.Channels.ChannelLayout
instance GHC.Enum.Enum Data.MediaBus.Audio.Channels.ChannelLayout
instance GHC.Classes.Ord Data.MediaBus.Audio.Channels.ChannelLayout
instance GHC.Classes.Eq Data.MediaBus.Audio.Channels.ChannelLayout
instance GHC.Show.Show Data.MediaBus.Audio.Channels.ChannelLayout
instance Data.MediaBus.BlankMedia.CanBeBlank r => Data.MediaBus.BlankMedia.CanBeBlank (Data.MediaBus.Audio.Channels.ChannelPair r)
instance Control.DeepSeq.NFData Data.MediaBus.Audio.Channels.ChannelLayout
instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.MediaBus.Audio.Channels.ChannelPair a)
instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Audio.Channels.ChannelPair a)
module Data.MediaBus.Audio.Raw
newtype S16 (rate :: Nat)
MkS16 :: Int16 -> S16
s16Sample :: forall rate_a10H3 rate_a10UU. Iso (S16 rate_a10H3) (S16 rate_a10UU) Int16 Int16
class (KnownNat (GetAudioSampleRate a), SetAudioSampleRate a (GetAudioSampleRate a) ~ a, Show a, Storable a, Eq a, Ord a, Arbitrary a) => IsAudioSample a where type GetAudioSampleRate a :: Nat type SetAudioSampleRate a (b :: Nat) where {
type family GetAudioSampleRate a :: Nat;
type family SetAudioSampleRate a (b :: Nat);
}
avgSamples :: IsAudioSample a => a -> a -> a
setAudioSampleRate :: (IsAudioSample a, KnownNat r) => proxy r -> a -> SetAudioSampleRate a r
setAudioSampleRateTo8kHz :: (IsAudioSample x, y ~ SetAudioSampleRate x 8000) => x -> y
setAudioSampleRateTo16kHz :: (IsAudioSample x, y ~ SetAudioSampleRate x 16000) => x -> y
setAudioSampleRateTo48kHz :: (IsAudioSample x, y ~ SetAudioSampleRate x 48000) => x -> y
doubleAudioSampleRate :: forall a b. (IsAudioSample a, b ~ SetAudioSampleRate a (GetAudioSampleRate a + GetAudioSampleRate a), KnownNat (GetAudioSampleRate a + GetAudioSampleRate a)) => a -> b
instance GHC.TypeLits.KnownNat r => Data.MediaBus.Audio.Raw.IsAudioSample (Data.MediaBus.Audio.Raw.S16 r)
instance Data.MediaBus.BlankMedia.CanBeBlank (Data.MediaBus.Audio.Raw.S16 r)
instance Data.MediaBus.Audio.Raw.IsAudioSample a => Data.MediaBus.Audio.Raw.IsAudioSample (Data.MediaBus.Audio.Channels.ChannelPair a)
instance Data.MediaBus.Audio.Channels.HasChannelLayout (Data.MediaBus.Audio.Raw.S16 r)
instance GHC.Generics.Generic (Data.MediaBus.Audio.Raw.S16 rate)
instance Test.QuickCheck.Arbitrary.Arbitrary (Data.MediaBus.Audio.Raw.S16 rate)
instance GHC.Classes.Ord (Data.MediaBus.Audio.Raw.S16 rate)
instance GHC.Classes.Eq (Data.MediaBus.Audio.Raw.S16 rate)
instance GHC.Num.Num (Data.MediaBus.Audio.Raw.S16 rate)
instance Foreign.Storable.Storable (Data.MediaBus.Audio.Raw.S16 rate)
instance Control.DeepSeq.NFData (Data.MediaBus.Audio.Raw.S16 rate)
instance GHC.TypeLits.KnownNat r => Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * (Data.MediaBus.Audio.Raw.S16 r))
instance GHC.Show.Show (Data.MediaBus.Audio.Raw.S16 r)
module Data.MediaBus.Audio.Resample
resample8to16kHz' :: (NFData s, NFData t, NFData p, NFData i, IsAudioSample sa, GetAudioSampleRate sa ~ 8000, Monad m, IsAudioSample (SetAudioSampleRate sa 16000), NFData (SetAudioSampleRate sa 16000)) => sa -> Conduit (Stream i s t p (SampleBuffer sa)) m (Stream i s t p (SampleBuffer (SetAudioSampleRate sa 16000)))
module Data.MediaBus.DebugSink
class HasDebugPlaybackSink s t c
debugPlaybackSink :: (HasDebugPlaybackSink s t c, MonadIO m) => Sink (Frame s t c) m ()
streamDebugPlaybackSink :: (Default i, HasDebugPlaybackSink s t c, MonadIO m) => Sink (Stream i s t p c) m ()
instance Data.MediaBus.DebugSink.HasDebugPlaybackSink s t c => Data.MediaBus.DebugSink.HasDebugPlaybackSink s t (Data.MediaBus.Segment.Segment d c)
instance GHC.TypeLits.KnownNat r => Data.MediaBus.DebugSink.HasDebugPlaybackSink s t (Data.MediaBus.Sample.SampleBuffer (Data.MediaBus.Audio.Raw.S16 r))
module Data.MediaBus.Audio.Alaw
newtype ALaw
MkALaw :: Word8 -> ALaw
alawSample :: Iso' ALaw Word8
instance GHC.Classes.Ord Data.MediaBus.Audio.Alaw.ALaw
instance Data.MediaBus.Ticks.HasDuration (Data.Proxy.Proxy * Data.MediaBus.Audio.Alaw.ALaw)
instance Data.MediaBus.Audio.Channels.HasChannelLayout Data.MediaBus.Audio.Alaw.ALaw
instance Data.MediaBus.Transcoder.Transcoder (Data.MediaBus.Sample.SampleBuffer Data.MediaBus.Audio.Alaw.ALaw) (Data.MediaBus.Sample.SampleBuffer (Data.MediaBus.Audio.Raw.S16 8000))
instance Data.MediaBus.Transcoder.Transcoder (Data.MediaBus.Sample.SampleBuffer (Data.MediaBus.Audio.Raw.S16 8000)) (Data.MediaBus.Sample.SampleBuffer Data.MediaBus.Audio.Alaw.ALaw)
instance Data.MediaBus.Audio.Raw.IsAudioSample Data.MediaBus.Audio.Alaw.ALaw
instance Data.MediaBus.BlankMedia.CanBeBlank Data.MediaBus.Audio.Alaw.ALaw
instance GHC.Generics.Generic Data.MediaBus.Audio.Alaw.ALaw
instance Test.QuickCheck.Arbitrary.Arbitrary Data.MediaBus.Audio.Alaw.ALaw
instance Data.Bits.Bits Data.MediaBus.Audio.Alaw.ALaw
instance GHC.Classes.Eq Data.MediaBus.Audio.Alaw.ALaw
instance GHC.Num.Num Data.MediaBus.Audio.Alaw.ALaw
instance Foreign.Storable.Storable Data.MediaBus.Audio.Alaw.ALaw
instance GHC.Show.Show Data.MediaBus.Audio.Alaw.ALaw
instance Control.DeepSeq.NFData Data.MediaBus.Audio.Alaw.ALaw
module Data.MediaBus.AsyncConduit
withAsyncPolledSource :: (MonadResource m, MonadBaseControl IO m, KnownNat r, Integral t, Integral s, Default c, Default p, HasStaticDuration c, HasDuration c, NFData c, NFData p, NFData s, NFData t, Random i, Random t, Random s, Show c) => Int -> Source m (Stream i s (Ticks r t) p c) -> ((Async (), Source m (Stream i s (Ticks r t) p (Discontinous c))) -> m o) -> m o
data PayloadQ a
mkPayloadQ :: forall m a. (HasStaticDuration a, MonadBaseControl IO m) => Int -> m (PayloadQ a)
payloadQSink :: (NFData a, MonadBaseControl IO m, Show a) => PayloadQ a -> Sink (Stream i s t p a) m ()
payloadQSource :: (Random i, NFData c, NFData p, Default p, HasStaticDuration c, HasDuration c, MonadBaseControl IO m, KnownNat r, Integral t, Integral s, NFData t, NFData s) => PayloadQ c -> Source m (Stream i s (Ticks r t) p (Discontinous c))
module Data.MediaBus