schema_version: 0.3
type: producer
identifier: pixbuf
title: GDK-PixBuf
version: 2
copyright: Meltytech, LLC
creator: Dan Dennedy
license: LGPLv2.1
language: en
tags:
  - Video
description: >
  A still graphics to video generator using gdk-pixbuf
notes: >
  Pixbuf has builtin scaling. It will rescale the originally rendered title to 
  whatever the consumer requests. Therefore, it will lose its aspect ratio if 
  so requested, and it is up to the consumer to request a proper width and 
  height that maintains the image aspect.
  Environment variable MLT_PIXBUF_PRODUCER_CACHE could be used to to override
  /increase the number of cached converted images for simultaneous use.

parameters:
  - identifier: resource
    title: File
    type: string
    description: >
        The name of a graphics file loadable by a gdk-pixbuf loader. 
        See the output of gdk-pixbuf-query-loaders.
        Definitely png, jpeg, tiff, pnm, and xpm will work.
        
        If "%" in filename, the filename is used with sprintf to generate a
        filename from a counter for multi-file/flipbook animation. The file 
        sequence ends when numeric discontinuity >100.
        
        If the file sequence does not begin within the count of 100 you
        can pass the begin property like a query string parameter, for
        example: anim-%04d.png?begin=1000.
        
        If filename contains "/.all.", suffix with an extension to load all 
        pictures with matching extension from a directory.
        
        If filename contains the string "<svg", then pixbuf tries to load the 
        filename as inline SVG XML, which is convenient for melt commands.

        If filename extension is .csv (format is: picture_filename;ttl), then pixbuf
        reads pictures and corresponding ttl from it, which is convenient
        for generating a slideshow with different image duration; in this case main ttl
        property is ignored.
    readonly: no
    argument: yes
    required: yes
    mutable: no
    widget: fileopen
    
  - identifier: begin
    title: Begin
    type: integer
    description: When using an image sequence, this sets the starting number.
    readonly: no
    minimum: 0
    mutable: no
    widget: spinner
    
  - identifier: ttl
    title: Time-to-live
    type: integer
    description: How long (in frames) to repeat each picture in file sequences.
    readonly: no
    default: 25
    minimum: 0
    mutable: yes
    widget: spinner
    
  - identifier: meta.media.width
    title: Real width
    type: integer
    description: The original, unscaled width of the rendered image.
    readonly: yes
    
  - identifier: meta.media.height
    title: Real height
    type: integer
    description: The original, unscaled height of the rendered image.
    readonly: yes
    
  - identifier: width
    title: Width
    type: integer
    description: The last requested scaled image width.
    readonly: yes
    
  - identifier: height
    title: Height
    type: integer
    description: The last requested scaled image height.
    readonly: yes

  - identifier: force_reload
    type: integer
    description: >
      Reload the file instead of using its cached image. This property
      automatically resets itself once it has been set 1 and processed.
    minimum: 0
    maximum: 1
    mutable: yes

  - identifier: disable_exif
    title: Disable auto-rotation
    type: boolean
    default: 0
    widget: checkbox

  - identifier: force_aspect_ratio
    title: Sample aspect ratio
    type: float
    description: Optionally override a (mis)detected aspect ratio
    mutable: yes

  - identifier: loop
    title: Loop sequence of images indefinitely
    description: when 1 (default) loop sequences of images, when 0, play them only once
    type: boolean
    default: 1
    widget: checkbox

  - identifier: autolength
    title: Automatically compute length
    description: Whether to automatically compute the length and out point for an image sequence.
    type: boolean
    default: 0
    widget: checkbox
