mediabus-0.2.0.0: src/Data/MediaBus/Transcoder.hs
module Data.MediaBus.Transcoder
( Transcoder(..)
, transcodeStreamC'
) where
import Conduit
import Data.MediaBus.Stream
import Data.Kind
import Control.Parallel.Strategies ( NFData )
class Transcoder from to where
type TranscodingSeqNum from to s :: Constraint
type TranscodingSeqNum from to s = ()
type TranscodingTicks from to t :: Constraint
type TranscodingTicks from to t = ()
transcode :: (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)
transcodeStreamC' = mapFramesC' transcode