Giter Site home page Giter Site logo

syncpop's People

Watchers

 avatar  avatar  avatar  avatar

syncpop's Issues

Add silence detector

Main usage for apop will be to turn it on in the morning and never turn it off.

During lunch or some break on the production, the crew would set their audio output to 0, but apop will still be recording. A cron job should remove these null sequences, but still not break later concatentation nor cameralolopop records....

"silcence would be set per threshold, ie -60db"

cpop clean up old files

In testing of cpop writing it's files, it does a good job most of the time in not leaving unclosed sync files.

test 1:
while recording, unplug/plug the RS cable.
This causes the audio device to disappear, and reappear.
The sync file is closed (ie it's renamed from 'new' to its final form). This is good.
Now the question becomes, if the recorder is recording, should we go back to recording? Probably. Right now, we don't of course. This is an enhancement/improvement ot our current processing.

test 2:
while recording, unplug the camera (yikes).
Interesting, we end up not closing a sync file, ie we end up with a *.new file in our directory.
These files should be 'closed' so they can be processed on apop. Afterall, they are probably fine up to the point the camera turned off. A side note, interestingly, the Alexa camera ends up breaking the SxS card. While prior recordings are readable, you can no longer write to this card, plus your 'current' recording is lost. BAD behavior on part of the alexa!

Apop database of connected Cpop's

Need a method of organizing and displaying information about all CPOP's connected to a given APOP.

Plus most importantly, a way for a user to assign/edit a pretty-name to a given CPOP, for instance instead of a macaddr in the ALE, we have "cam A" or whatever they decide to call a given CPOP.

So I think, a call to list all attached CPOP's, and then a call to set user values for a given CPOP. This does get back to the question of how to 'delete/detach' a CPOP, and what does that mean to do so?

Handle problem of CPOP having clp data not yet transferred to APOP but moving to new APOP

There is a problem which can occur if CPOP had not yet rsync to it's APOP prior to moving to a new APOP. There are two possiblities, one the clp data will not match the new APOP server (which it shouldn't anyways), and the data will be lost. Second, by accident the timing will match and the CLP data will get matched to the wrong video.

A reasonable simple workaround is to record with the CLP data which APOP it belongs to, and then only rsync to the CLP data for the right APOP when on its network. This also solves the "lost" data problem. Namely clp data will stay on a CPOP until it is reconnected to the APOP it was originally connected to.

m3u8 playback

Can't get playback to work on V21 of syncpop iOS app. Tried also under OSX, no luck.

Of course ffplay seems very happy to play it, just not iOS/OSX.

Apop system info

We need to add some 'user' information to apop which is stored per apop (ie editable information which is controlled by the user)

Editable information on an given Apop should include at the least the following (others?)

Client Name, ie Fotokem, Technicolor, etc
Project Name, ie Superman, From here to Eternity, etc

Another item is, I guess we need a way to edit the hostname? So we can have more then 1 system on a network and still get to them all, by simple zeroconf names? Nah, let's just move to a zeroconf+macaddr name for our apopnames. That makes more sense. Then it's easier for what addr needs to go into the cpop settings.....

Add watchdog timer support to both APOP and CPOP

I believe both the mk802/A10 and the Atom intel both have watchdog timer support. We should enable them, ie set a HW interrupt if not responded to before timer runs out, hw reboots itself.

Looking at APOP, looks like the kernel already has support compiled in. CPOP (Romans kernel, I don't think it had it turned on, even though this doc does reference support for it on A10 http://linux-sunxi.org/A10/TIMER

Playlist call is too slow when > dozens of segments

Let's add a "recordings" call, so we don't have to use the playlist call to determine all the individual recordings. Playlist is too slow when we have just a few recordings which happen to be very long, ie hours or days per recording. This is probably the normal use case, ie turn the recorder on, and don't turn it off.

Add support for reading/writing date/time to battery backed HW on CPOP

We need to add support for proper time values when a CPOP is not in range of its ptpd server, and say it get's shut down and restarted without re-establishing a ptp timestamp (ie since ARM's are stupid and boot up with their clock set to 00)

To do this, we've added the HW to cpop for a battery backed timeclock over USB, ie see the device located on ftdi_sio 1-1:1.0: FTDI USB, it's an i2c clock. I've attached details about the clock to this note. It's a Maxim DS1307, 64x8 Serial i2c Real Time clock.

Need a way to switch cpop to another apop server

We need a mechanism which handles the following:

  1. A brand new installed cpop, ability to attach to some APOP

  2. An existing attached CPOP/apop needs to move to a different APOP. The method of moving needs to handle the following cases
    a) planned move, ie allow for detach from apop first then attach to new apop
    b) unplanned, ie forget to detach from existing apop, but still allow for a switch to a new cpop

Gee, no real decent thoughts on this. I don't think we will have access to the USB port, ie to plug in a new config. What about a method of if not an ability to connect to an APOP, go into ad-hoc network mode, putting up a html-config on a zero-conf name+macaddr and let a user config it, then retry to attach to an APOP??? Only thought is okay this works great if not connected (or can't connect). But what about if you are connected and need to move to another APOP which happens to be in the same wifi-vicinty as where you are now? Maybe as part of the boot-process, ie upon reboot, we first go to adhoc mode for a short time, then switch to something to connect to, if we find something to connect to fine, if not go back to ad-hoc mode?? thing I don't like about this is does it delay our ability to use a CPOP....yes is my first thoughts since we don't allow for a quick ptp sync...? (random comment: wonder if there is a mode ot wifi operation which allows for both connected and out-of-band commucnations/controls?)

Update rsync documentation on apop

Right now we have a simple script example to show how to rsync from apop.

Now that apop also creates 'edited' audio clips, we need a sample script for that as well (or docs on it on the apop server).

#ENDLIST needs to be added to completed recordings

While recording, the index.m3u8 is left open (ie no endlist), however at the end of a recording, ie when stop is pressed, the m3u8 needs to be ended, ie with a #ENDLIST tag.

This is necessary for proper non-streaming playback under iOS, namely, it's necessary so that the right controls are displayed to the user (fwd, bwd, play), as well as proper time positioning.

ALE rewrite

upload ALE from camera, have audiolollipop fill in missing fields (audio timecode).

web-interface that can be used from via web-browser as well as iOS app.

ALE should use LTC from audiolollipop

currently the "Sound TC" field in the ALE is set to the same timecode as the LTC received from CLP.

the concatenated/cut .wav file should have a BWF header with timecode offset. The BWF timecode should be from CLP (camera-timecode)

Add ptp error checking to ltc data upon upload to apop

I don't know where we might be recording our ptp sync information, in relation to our ltc start/stop values.

Basic issue is to record our confidence on our ptp in relation to the timestampes of ltc/rs. So we can possibly adjust our ltc/rs values for drift if/when cpop is disconnected from the network.

Minmally, I'd want the ability to determine how far off we were, but ideally, I'd love a means to both report the error, plus correct the recorded ltc/rs values back into time alignment from our master clock.

Let's assume we have Real-time clocks on all appliances on the network (ie cpop on mk802 will have a RTC which does not reset back to 0:00:00 upon power loss).

Convert lollipop/audiolollipop to syncpop

Name change for visible portions ofthe code to syncpop, need to change the following:

-- hostname defaults, ie zeroconf name to syncpop.local
-- web interface header and title if present
-- rest calls can say the way they are
-- any docs (what little we curently have)
-- anything else which is 'user facing'

A few more details here...

So where users see names, let's move to syncpop, apop, and cpop (get rid of lollipop, audiolollipop, and cameralollipop).

Also, let's remove the ability to change the SSID of a machine, and instead settle on fixed hostnames and SSID's. th the following rule used:
apopAABBCCDDEE.local or hostname apopAABBCCDDEE where AABBCCDDEE is the macaddr of the wifi device in the system (and of course cpopAABBCCDDEEFF for the cpop device. We can keep a default simple password for now, which we should still allow a user to change via REST/web.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.