# MediaFilterProperties

### object

#### firstQuality
- **object** [FirstQuality](https://docs.mediakind.com/api-reference/media-api/schemas/firstquality) Optional  
This parameter defines the initial quality level when playback starts. This is the first bitrate in the ladder.  
If a value is set that does not match the ladder, the closest value will be used. Setting a high value  
may increase the time it takes to start playback, but ensures that initial video quality is high.

#### bitrate
- **integer** Required  
Denotes the target video bitrate to be used when starting playback of an HLS manifest.  
The video representation with the bitrate closest to the defined bitrate will be presented first among the available representations in the HLS manifest.

#### presentationTimeRange
- **object** [PresentationTimeRange](https://docs.mediakind.com/api-reference/media-api/schemas/presentationtimerange) Optional  
This parameter is used to cut an asset into a smaller asset by specifying a start and end time.

### Properties:
- **endTime**  
  - **string** Optional
  - **format:** date-time  
  For live content only (including live events that have finished).
  Indicates the end of the presentation window, like `endTimestamp` but as an explicit UTC time.

- **endTimestamp**  
  - **integer** Optional
  - **>=0**  
  For both VOD and live content.
  Indicates the end of the presentation window, in units of timescale. Given a timescale of "1", a value of "N" set here will constrain the  
  video manifest to contain exactly "N" seconds of content. This value is relative to the actual start of the content, not the startTimestamp.

**Examples:**  
  - timescale=1, startTimestamp=0, endTimestamp=10: The first 10 seconds of content will be included in the output.  
  - timescale=1, startTimestamp=10, endTimestamp=70: The 60 seconds of content starting at 10 seconds will be included in the output.  
  - timescale=10000000, startTimestamp=0, endTimestamp=100000000: The first 10 seconds of content will be included in the output.

- **forceEndTimestamp**  
  - **boolean** Optional  
  A validation parameter.  
  When set, requires that the filter endTimestamp be set. This might be useful to limit the duration of a locator associated with a long-running live event, once the live event has ended and the video manifest is closed.

- **liveBackoffDuration**  
  - **integer** Optional  
  For live content only (including live events that have finished).
  Truncates content from the head of a live video manifest by the specified duration.
  
- **presentationWindowDuration**  
  - **integer** Optional  
  For live content only (including live events that have finished).  
  Indicates the duration of the presentation window, in units of timescale. A presentation window is the depth of content  
  present in the live manifest.

- **startTime**  
  - **string** Optional  
  - **format:** date-time  
  For live content only (including live events that have finished).
  Indicates the start of the presentation window, like `startTimestamp` but as an explicit UTC time.

- **startTimestamp**  
  - **integer** Optional  
  - **>=0**  
  For both VOD and live content.

- **timescale**  
  - **integer** Optional  
  - **1 to 1000000000**
  - **Defaults to 10000000**  
  Defines the unit of time for all the values in this object. The value is expressed in ticks per second.

- **tracks**  
  - **list of objects** [FilterTrackSelection](https://docs.mediakind.com/api-reference/media-api/schemas/filtertrackselection) Optional   
  Defines the tracks to include in the output. If multiple FilterTrackSelection objects are provided, their configurations will be OR'd together.

- **trackSelections**  
  - **list of objects** [FilterTrackPropertyCondition](https://docs.mediakind.com/api-reference/media-api/schemas/filtertrackpropertycondition) Required  
  Defines the tracks to include in the output. Multiple entries here will be AND'd together.
  
```json
[
    {"property": "Type", "operation": "Equal", "value": "Audio"},
    {"property": "Bitrate", "operation": "Equal", "value": "3000000-5000000"},
    {"property": "Language", "operation": "NotEqual", "value": "en"}
]
```

### Properties
- **operation**
  - **enum** Required  
  Set to either 'Equal' or 'NotEqual'. Tracks matching this predicate will be included.

- **property**
  - **enum** Required  
  The property to match against. Supported properties include:
    - Bitrate
    - FourCC
    - Language
    - Name
    - Type
    - Unknown

- **value**
  - **string** Required  
  The value to match against. Values are not case-sensitive.
