mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2025-11-20 01:50:24 -05:00
reorganize /recordings JSON response
I want to start returning the pixel aspect ratio of each video sample entry. It's silly to duplicate it for each returned recording, so let's instead return a videoSampleEntryId and then put all the information about each VSE once. This change doesn't actually handle pixel aspect ratio server-side yet. Most likely I'll require a new schema version for that, to store it as a new column in the database. Codec-specific logic in the database layer is awkward and I'd like to avoid it. I did a similar schema change to add the rfc6381_codec. I also adjusted ui-src/lib/models/Recording.js in a few ways: * fixed a couple mismatches between its field name and the key defined in the API. Consistency aids understanding. * dropped all the getters in favor of just setting the fields (with type annotations) as described here: https://google.github.io/styleguide/jsguide.html#features-classes-fields * where the wire format used undefined (to save space), translate it to a more natural null or false.
This commit is contained in:
@@ -256,13 +256,14 @@ export default class RecordingsView {
|
||||
*
|
||||
* The data is expected to be an array with recording objects.
|
||||
*
|
||||
* @param {String} recordingsJSON JSON data (array)
|
||||
* @param {object} recordingsJSON JSON data (object)
|
||||
*/
|
||||
set recordingsJSON(recordingsJSON) {
|
||||
this.showLoading = false;
|
||||
// Store as model objects
|
||||
this._recordings = recordingsJSON.map(function(r) {
|
||||
return new Recording(r);
|
||||
this._recordings = recordingsJSON.recordings.map(function(r) {
|
||||
const vse = recordingsJSON.videoSampleEntries[r.videoSampleEntryId];
|
||||
return new Recording(r, vse);
|
||||
});
|
||||
|
||||
const tbody = this._element;
|
||||
|
||||
Reference in New Issue
Block a user