gpmf-0.2.1.0
Copyright(c) Dustin Sallings 2020
LicenseBSD3
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010

GoPro.GPMF

Description

A low-level parser for GPMF telemetry data.

Synopsis

Documentation

parseGPMF :: ByteString -> Either String [(FourCC, [Value])] Source #

Parse GPMF data from a telemetry stream. A successful return value contains a list of FourCC tagged value lists.

Note that the input is the telemetry stream itself, not the container that contains it.

data Value Source #

Instances

Instances details
Generic Value Source # 
Instance details

Defined in GoPro.GPMF

Associated Types

type Rep Value :: Type -> Type #

Methods

from :: Value -> Rep Value x #

to :: Rep Value x -> Value #

Show Value Source # 
Instance details

Defined in GoPro.GPMF

Methods

showsPrec :: Int -> Value -> ShowS #

show :: Value -> String #

showList :: [Value] -> ShowS #

type Rep Value Source # 
Instance details

Defined in GoPro.GPMF

type Rep Value = D1 ('MetaData "Value" "GoPro.GPMF" "gpmf-0.2.1.0-DcTVJn947GVAKC6dSdnzeS" 'False) ((((C1 ('MetaCons "GInt8" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int8])) :+: C1 ('MetaCons "GUint8" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word8]))) :+: (C1 ('MetaCons "GString" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)) :+: C1 ('MetaCons "GDouble" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double)))) :+: ((C1 ('MetaCons "GFloat" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Float])) :+: C1 ('MetaCons "GFourCC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FourCC))) :+: (C1 ('MetaCons "GUUID" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word8])) :+: (C1 ('MetaCons "GInt64" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int64])) :+: C1 ('MetaCons "GUint64" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word64])))))) :+: (((C1 ('MetaCons "GInt32" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int32])) :+: C1 ('MetaCons "GUint32" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word32]))) :+: (C1 ('MetaCons "GQ32" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word32])) :+: (C1 ('MetaCons "GQ64" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word64])) :+: C1 ('MetaCons "GInt16" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Int16]))))) :+: ((C1 ('MetaCons "GUint16" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Word16])) :+: C1 ('MetaCons "GTimestamp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 UTCTime))) :+: (C1 ('MetaCons "GComplex" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Value])) :+: (C1 ('MetaCons "GNested" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FourCC, [Value]))) :+: C1 ('MetaCons "GUnknown" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Char, Int, Int, [[Word8]]))))))))

newtype FourCC Source #

Constructors

FourCC (Char, Char, Char, Char) 

Instances

Instances details
IsString FourCC Source # 
Instance details

Defined in GoPro.GPMF

Methods

fromString :: String -> FourCC #

Generic FourCC Source # 
Instance details

Defined in GoPro.GPMF

Associated Types

type Rep FourCC :: Type -> Type #

Methods

from :: FourCC -> Rep FourCC x #

to :: Rep FourCC x -> FourCC #

Show FourCC Source # 
Instance details

Defined in GoPro.GPMF

Eq FourCC Source # 
Instance details

Defined in GoPro.GPMF

Methods

(==) :: FourCC -> FourCC -> Bool #

(/=) :: FourCC -> FourCC -> Bool #

type Rep FourCC Source # 
Instance details

Defined in GoPro.GPMF

type Rep FourCC = D1 ('MetaData "FourCC" "GoPro.GPMF" "gpmf-0.2.1.0-DcTVJn947GVAKC6dSdnzeS" 'True) (C1 ('MetaCons "FourCC" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Char, Char, Char, Char))))