|
1 | 1 | **NOTICE:** This software (or technical data) was produced for the U.S. Government under contract, and is subject to the |
2 | 2 | Rights in Data-General Clause 52.227-14, Alt. IV (DEC 2007). Copyright 2023 The MITRE Corporation. All Rights Reserved. |
3 | 3 |
|
| 4 | +# OpenMPF 7.2.x |
| 5 | + |
| 6 | +<h2>7.2.0: May 2023</h2> |
| 7 | + |
| 8 | +<h3>Documentation</h3> |
| 9 | + |
| 10 | +- Created a new [TiesDb Guide](TiesDb-Guide/index.html). |
| 11 | +- Updated the [Component Descriptor Reference](Component-Descriptor-Reference/index.html) with `outputChangedCounter`. |
| 12 | +- Updated the [REST API](REST-API/index.html) with a new `[POST] /rest/jobs/tiesdbrepost` endpoint. |
| 13 | +- Updated the REST API `[POST] /rest/jobs` response with `tiesDbCheckStatus` and `outputObjectUri`. |
| 14 | + |
| 15 | +<h3>TiesDb Re-Post</h3> |
| 16 | + |
| 17 | +- Added a new `[POST] /rest/jobs/tiesdbrepost` endpoint that accepts an array of job ids as an input and will attempt to |
| 18 | + re-post the job assertions (records) to TiesDb for each one. |
| 19 | +- Added a "TiesDb" column to the Job Status page. If there is a problem posting a record to the TiesDb server the column |
| 20 | + will contain an "ERROR" button. Clicking on it will provide a description of the error and a button that can be used |
| 21 | + to re-post the associated job records. |
| 22 | + |
| 23 | +<h3>TiesDb Checking</h3> |
| 24 | + |
| 25 | +- If the `TIES_DB_URL` job property or `ties.db.url` system property is set when submitting a job creation request, |
| 26 | + then the Workflow Manager will attempt to check TiesDb for existing job results before running the job again. |
| 27 | +- The Workflow Manager will attempt to use the most-recently-created job results, preferring jobs that completed without |
| 28 | + errors or warnings, and preferring jobs that completed with warnings over completed with errors. |
| 29 | +- To prevent this check, set `SKIP_TIES_DB_CHECK=true`. That will force the job to run and attempt to post the new |
| 30 | + job results to TiesDb. |
| 31 | +- When using TiesDb, we strongly recommend providing both the `MEDIA_HASH` and `MIME_TYPE` in the `media.metadata` map |
| 32 | + in the job request. This will enable the Workflow Manager to skip media inspection. When using S3 object storage, this |
| 33 | + means that the Workflow Manager will not need to download the media before checking TiesDb for existing job records. |
| 34 | +- The `[POST] /rest/jobs` response now contains a `tiesDbCheckStatus` and `outputObjectUri` field. `tiesDbCheckStatus` |
| 35 | + will be set to one of the following values: |
| 36 | + - `NOT_REQUESTED` |
| 37 | + - `NO_TIES_DB_URL_IN_JOB` |
| 38 | + - `MEDIA_HASHES_ABSENT` |
| 39 | + - `MEDIA_MIME_TYPES_ABSENT` |
| 40 | + - `NO_MATCH` |
| 41 | + - `FOUND_MATCH` |
| 42 | +- When there is a `FOUND_MATCH`, the `outputObjectUri` will be set to the URI of the old TiesDb record if S3 copy is |
| 43 | + not enabled. |
| 44 | +- By default, the `ties.db.s3.copy.enabled` system property is set to `true`. This means that the Workflow Manager will |
| 45 | + attempt to copy all of the artifacts, markup, and derivative media associated with the job in TiesDb from the S3 |
| 46 | + locations associated with the old job to the new S3 location specified in the new job. A new JSON output object will |
| 47 | + be generated. To disable this behavior set the system property, or `TIES_DB_S3_COPY_ENABLED`, to `false`. Then the |
| 48 | + Workflow Manager will simply provide a link to the old JSON as the result of the new job. |
| 49 | +- If there is a problem copying between S3 locations, the "TiesDb" column to the Job Status page will show a |
| 50 | + "COPY ERROR" button. Clicking on it will provide a description of the error. |
| 51 | + |
| 52 | +<h3>TiesDb Linked Media</h3> |
| 53 | + |
| 54 | +- Added support for the `LINKED_MEDIA_HASH` `media.mediaProperty` in the job creation request. When specified, |
| 55 | + the value of the `LINKED_MEDIA_HASH` will be used instead of the actual media hash when creating a record in TiesDb, |
| 56 | + and also when looking for existing records in TiesDb. |
| 57 | +- This feature can be used to submit a transcoded (or thumbnail) version of an image to process instead of the source |
| 58 | + image. For example, the source image may be in a format not supported by OpenMPF. In this case, the value of the |
| 59 | + `LINKED_MEDIA_HASH` can be set to the source image, but the rest of the job creation request would specify |
| 60 | + the `media.path` and `media.mediaMetadata` for the transcoded version of that image. |
| 61 | + |
| 62 | +<h3>Output Changed Counter</h3> |
| 63 | + |
| 64 | +- Added the `output.changed.counter` system property to the Workflow Manager and `outputChangedCounter` field to each |
| 65 | + component's `descriptor.json`. These values are used when calculating the hash for a job when its record is posted to |
| 66 | + TiesDb, and also when checking TiesDb for existing records when a new job is submitted. |
| 67 | +- If the Workflow Manager is updated for any reason that should invalidate pre-existing job results, such as a |
| 68 | + change to the fields in the JSON output object, or significant improvements to track merging, for example, then the |
| 69 | + value of `output.changed.counter` should be incremented by one. This will ensure that records in TiesDb will not be |
| 70 | + used so that all future jobs will need to be (re)run at least once until the counter is incremented again. |
| 71 | +- The same is true for each component. If a component is updated for any reason that should invalidate |
| 72 | + pre-existing job results, such as changes to input or output properties, or substantial improvements to the algorithm, |
| 73 | + then the value of `outputChangedCounter` should be incremented by one. |
| 74 | + |
| 75 | +<h3>Changes to JSON Output Object</h3> |
| 76 | + |
| 77 | +- New JSON output objects will include `tiesDbSourceJobId` and `tiesDbSourceMediaPath` when the Workflow Manager can use |
| 78 | + previous job results stored in TiesDB. Note that the Workflow Manager will not generate a new JSON output object |
| 79 | + unless `S3_RESULTS_BUCKET` is set to a valid value, S3 access and secret keys are provided, and |
| 80 | + `TIES_DB_S3_COPY_ENABLED=true`. |
| 81 | + |
| 82 | +<h3>ffprobe for Media Inspection</h3> |
| 83 | + |
| 84 | +- The Workflow Manager media inspection behavior now uses `ffprobe` with `-print_format json` to return more precise |
| 85 | + `FPS` values for the `media.mediaMetadata` in the JSON output object. For example, the previous version of the |
| 86 | + Workflow Manager would return `29.97`, where the new version will return `29.97002997002997`. In multi-hour-long |
| 87 | + vidoes this can prevent cases where the last few frames were being ignored. |
| 88 | +- The previous version of the Workflow Manager was using both `ffmpeg` and OpenCV to determine the number of frames in |
| 89 | + a video. We removed the OpenCV frame counter in this version because the `ffprobe` approach is more accurate. |
| 90 | + The `ffprobe` command replaces the old `ffmpeg` command. |
| 91 | + |
| 92 | +<h3>Web User Interface</h3> |
| 93 | + |
| 94 | +- Updated the Job Status page to be more efficient. Searching a database of hundreds of thousands of jobs takes a long |
| 95 | + time. By limiting the search to one page of results at a time the UI is more responsive. |
| 96 | +- Removed timeout and bootout. The user session will no longer automatically end due to time out, or due to the same |
| 97 | + user logging in from a different host or browser. These behaviors were deemed too disruptive by end users. |
| 98 | +- Updated the Job Status page to include a "TiesDb" column that reports TiesDb status, such as when posting records |
| 99 | + to TiesDb and when retrieving existing records. |
| 100 | + |
| 101 | +<h3>Features</h3> |
| 102 | + |
| 103 | +- [[#1438](https://github.com/openmpf/openmpf/issues/1438)] Create a REST endpoint that will attempt to re-post to TiesDb |
| 104 | +- [[#1613](https://github.com/openmpf/openmpf/issues/1613)] Check TiesDb before running a job |
| 105 | +- [[#1650](https://github.com/openmpf/openmpf/issues/1650)] Create TiesDb records for thumbnail jobs under the parent media |
| 106 | + |
| 107 | +<h3>Updates</h3> |
| 108 | + |
| 109 | +- [[#1342](https://github.com/openmpf/openmpf/issues/1342)] Use ffprobe to get FPS during media inspection |
| 110 | +- [[#1564](https://github.com/openmpf/openmpf/issues/1564)] Use ffprobe's JSON output instead of regexes during media inspection |
| 111 | +- [[#1601](https://github.com/openmpf/openmpf/issues/1601)] Update the Workflow Manager jobs table to be more efficient |
| 112 | +- [[#1611](https://github.com/openmpf/openmpf/issues/1611)] Remove Workflow Manager timeout and bootout behavior |
| 113 | + |
4 | 114 | # OpenMPF 7.1.x |
5 | 115 |
|
| 116 | +<h2>7.1.12: March 2023</h2> |
| 117 | + |
| 118 | +<h3>Bug Fixes</h3> |
| 119 | + |
| 120 | +- [[#1667](https://github.com/openmpf/openmpf/issues/1667)] Handle Webp files with extra data at the end that cause components to crash |
| 121 | + |
| 122 | +<h2>7.1.10: March 2023</h2> |
| 123 | + |
| 124 | +<h3>Updates</h3> |
| 125 | + |
| 126 | +- [[#1662](https://github.com/openmpf/openmpf/issues/1662)] Monitor StorageBackend |
| 127 | + |
| 128 | +<h2>7.1.9: February 2023</h2> |
| 129 | + |
| 130 | +<h3>Bug Fixes</h3> |
| 131 | + |
| 132 | +- [[#1675](https://github.com/openmpf/openmpf/issues/1675)] Prevent upgrade of cudnn in yolo server dockerfile |
| 133 | + |
| 134 | +<h2>7.1.8: February 2023</h2> |
| 135 | + |
| 136 | +<h3>Bug Fixes</h3> |
| 137 | + |
| 138 | +- [[#1649](https://github.com/openmpf/openmpf/issues/1649)] Install specific version of libcudnn8 in Docker build |
| 139 | + |
| 140 | +<h2>7.1.7: February 2023</h2> |
| 141 | + |
| 142 | +<h3>Updates</h3> |
| 143 | + |
| 144 | +- [[#1674](https://github.com/openmpf/openmpf/issues/1674)] Update `SPEAKER_ID` logic, set `LONG_SPEAKER_ID=0` |
| 145 | + |
| 146 | +<h2>7.1.5: January 2023</h2> |
| 147 | + |
| 148 | +<h3>Features</h3> |
| 149 | + |
| 150 | +- [[#1542](https://github.com/openmpf/openmpf/issues/1542)] Update Azure Speech Detection component to select transcription language based on feed-forward track |
| 151 | +- [[#1543](https://github.com/openmpf/openmpf/issues/1543)] Update audio transcoder to accept subsegments |
| 152 | +- [[#1605](https://github.com/openmpf/openmpf/issues/1605)] Update Azure Translation to use detected language from upstream |
| 153 | + |
6 | 154 | <h2>7.1.1: December 2022</h2> |
7 | 155 |
|
8 | 156 | <h3>Bug Fixes</h3> |
|
0 commit comments