io-media-config { global-options { # NBT Specific , resource manager for ipod io-media mountpoint = /dev/ipod-io-media num-threads = 2 audio-hi-prio = 22 audio-mid-prio = 15 audio-lo-prio = 12 video-hi-prio = 21 video-mid-prio = 14 video-lo-prio = 11 play-status-prio = 14 rip-prio = 9 } module-options { module = "registry" entry { name = "lang:audio:default" # Favourite audio language for media with multiple audio tracks. # An ISO language code, or "" for "unspecified" value = "" } } module-options { module = "cdda_trackplayer" # If skip on error is not "no", it defines the number of milliseconds # to skip on a read error, the percentage to grow it by on each subsequent error, # and the maximum number of skips. skip-on-error = 50,100,12 queue-time = 15000 # Prefetch options. 0 = disable, 1 = resume on high water mark, 2 = resume on low # water mark, 3 = resume on high water mark, pause on low water mark. prefetch = 2 # dts_writer, if not "", specifies a different writer filter for DTS CDs dts_writer = "" resource { name = "TrickPlayVolumeFade" type = long value = 10 optional = yes } # Max retries when reading from CDDA: default value = 0 since devb driver # typically does its own retries resource { filter = "reader" name = "MM_CDDA_READ_MAX_RETRY" type = long value = 0 } # Enable DMA reads from CDDA: value = 0 DMA disabled, value = 1 DMA enabled resource { filter = "reader" name = "MM_CDDA_DMA_CAM_READCD" type = long value = 0 } # Drive specific 'readcd.rsvd3' value to be used when doing DMA reads from CDDA # Note: only applies if DMA is enabled (MM_CDDA_DMA_CAM_READCD), consult CD drive # specs for value resource { filter = "reader" name = "MM_CDDA_DMA_CAM_READCD_RSVD3" type = long value = 0 } # Timeout value in seconds when doing DMA reads from CDDA # Value corresponds to devb driver 'cdrom timeout' values, value = 0 defaults # to devb group 1 timeout. Note: only applies if DMA is enabled (MM_CDDA_DMA_CAM_READCD) resource { filter = "reader" name = "MM_CDDA_DMA_CAM_READCD_TIMEOUT" type = long value = 0 } } module-options { module = "mediafs_2wire" # Amount of time, in milliseconds, to wait until sending a metadata event # to the client if we have not recieved a metadata update from the device. metadata-timeout = 200 # These parameters control the sizing of the prefetching queue for the mediafs graph. queue-pre-hw = 60 queue-pre-lw = 5 queue-time = 500 # Prefetch options. 0 = disable, 1 = resume on high water mark, 2 = resume on low # water mark, 3 = resume on high water mark, pause on low water mark. prefetch = 3 resource { #filter = "audio_writer" filter = "a2i_writer" name = "MM_AUDIO_WRITER_FRAGS_MAX" type = long value = 2 optional = yes } } module-options { module = "mmf_graphbuilder" # Prefetch options. 0 = disable, 1 = resume on high water mark, 2 = resume on low # water mark, 3 = resume on high water mark, pause on low water mark. prefetch = 0 # Graph memory limit in MB. If you want no limit, set to zero or delete the line. maxmem = 0 queue1-size = 49 queue1-pre-hw = 80 queue1-pre-lw = 50 queue1-time = 100 queue1-drain = 0 queue2-size = 8 queue2-pre-hw = 90 queue2-pre-lw = 10 queue2-time = 1000 # parsed-video-queue-size is used to buffer parsed, but encoded video parsed-video-queue-size = 15 # decoded-video-queue-size is used to buffer decoded video frames for writing. decoded-video-queue-size = 6 buffering { # Override some of the buffering parameters for a particular URL pattern url = "http://*" prefetch = 3 queue1-size = 100 queue1-pre-hw = 50 queue1-pre-lw = 10 } buffering { url = "rtsp://*" prefetch = 0 queue1-size = 1 } # pre-buffer can be "none", "stream", "parser", "build", or "start" pre-buffer = none # What to do with the old graph before starting the new one: # "none", "stop", or "destroy" transition = none resource { filter = "a2i_writer" # filter = "audio_writer" # filter can be "streamer", "reader", "parser", "decoder", or "audio_writer" # when a specific filter is to be targeted as soon as it's added to the graph, # or it can be omitted to target the entire graph. name = "TrickPlayVolumeFade" type = long value = 10 optional = yes } resource { filter = "streamer" name = "StreamerStickyError" type = long value = 1 optional = yes } resource { filter = "reader" name = "MM_TMPFILE_STREAMER_SEEKABLE" type = long value = 1 optional = yes } resource { # The parsers implement Audio-Video Sync. Delay. The value is the # amount of time to delay the video with respect to the audio in # microseconds. Negative values are allowed if the video needs to # preceed the audio. filter = "parser" name = "AVSyncDelay" type = long value = 0 optional = yes } resource { name = "StreamerStickyError" type = long value = 0 optional = yes } format { url = "cdda:*" parser = "cdda_parser" strict = yes resource { filter = "reader" name = "MM_CDDA_READ_MAX_RETRY" type = long value = 0 } } format { url = "*.mov" parser = "mp4_parser" decoder = "qnx_raac_decoder" } format { url = "*.mp[a123]" parser = "mpega_parser" decoder = "xing_mpega_decoder" # You can set MMF graph-level parameters here: # graphparam { # name = "foo" # value = "bar" # } } format { url = "*.mp4" parser = "mp4_parser" decoder = "qnx_raac_decoder" } format { url = "*.m4a" parser = "mp4_parser" decoder = "qnx_raac_decoder" } format { url = "*.aac" parser = "aac_parser" decoder = "qnx_raac_decoder" } format { url = "*.wma" parser = "wma9_parser" decoder = "wma9_decoder" } format { url = "*.ogg" parser = "ogg_decoder" } format { url = "*.wav" parser = "wav_parser" } # This would prevent playing anything that doesn't match any of the above: # format { # url = "*" # strict = yes # } } module-options { module = "streamplayer" queue1-size = 150 queue1-pre-hw = 80 queue1-pre-lw = 20 queue1-time = 8000 queue2-size = 50 queue2-pre-hw = 90 queue2-pre-lw = 10 queue2-time = 2000 } module-options { module = "mediafs_2wire_spooler" queue-size = 20 } module-options { module = "spooler" encoding-bitrate = 128000 virtual-bitrate = 0 } module-options { module = "mmf_trackplayer" # If skip on error is not "no", it defines the number of milliseconds # to skip on a read error, the percentage to grow it by on each subsequent error, # and the maximum number of skips. skip-on-error = 200,100,10 } module-options { module = "mmf" audio_writer { url = "snd:*" filter = "a2i_writer" #filter = "audio_writer" } # These still work, if a filter isn't selected by pattern matching: #audio_writer = "audio_writer" audio_writer = "a2i_writer" video_writer = "gf_writer" dlldir = "$MM_INIT" # keepdlls can be: # "none" (unload any DLLs when they aren't in use) # "used" (after a DLL is first used, keep it loaded forever) # "all" (permanently load all DLLs from the specified directory) keepdlls = "none" # If keepdlls is "none" or "used", the "keepdll" element can be used # to load specific DLLs at startup and keep them loaded keepdll { name = "a2i_writer" #name = "audio_writer" #optional = yes } # utf8hook specifies a DLL to perform customized conversions of metadata utf8hook = "" } module-options { module = "aoi" # For each DLL you want to load, specify a "load" element like this: # load { # dll = "/dll/media/somedll.so" # keep = "yes" # } } }