Scott Lamb
95523c3522
ToHex shouldn't require padding between bytes.
...
This was getting obnoxious for SHA-1s, and particularly so when serving them
as etags.
2016-01-13 06:51:23 -08:00
Scott Lamb
29696688b5
Small Uuid class wrapping libuuid.
...
This will be used to generate the names of sample files,
as well as camera ids.
2016-01-12 09:46:21 -08:00
Scott Lamb
85b7027803
Logic for generating .mp4 virtual files.
...
This is still pretty rough. For example, there's no test coverage of virtual
files based on multiple recordings. The etag and last modified code are stubs.
And various other conditions aren't tested at all. But it does appear to work
in a test that does a round-trip from a .mp4 file, so it should be a decent
starting point.
2016-01-11 00:17:56 -08:00
Scott Lamb
798f1db039
h264.cc: handle both kinds of ffmpeg extradata.
2016-01-10 21:28:07 -08:00
Scott Lamb
29054d42a0
A few types of FileSlice useful for mp4 building.
2016-01-09 23:26:02 -08:00
Scott Lamb
eed2a69f7a
Work around libevent bug 306 in evbuffer_add_file.
...
See <https://github.com/libevent/libevent/issues/306 > for details.
2016-01-09 22:51:27 -08:00
Scott Lamb
bb7fb95b57
Helper for composing a VirtualFile from "slices".
2016-01-09 22:15:22 -08:00
Scott Lamb
c89907d785
Nit: fix typo in reserve.
2016-01-09 21:42:00 -08:00
Scott Lamb
1ca6e2a665
Bit less string copying in H.264 code.
2016-01-09 21:41:12 -08:00
Scott Lamb
15b1ee54a6
Compute the full AVCSampleEntry (avc1 box).
...
This code isn't pretty exactly---particularly the hardcoded lengths---but it
does work. I'll have a different mechanism for calculating the length and
nesting structure forthe more dynamic parts of the moov atom. This way is
convenient when generating a single string of mostly static data.
2016-01-09 21:13:05 -08:00
Scott Lamb
48d0473a4c
Small helper for writing sample files safely.
...
Handles partial writes + checksumming.
2016-01-09 17:16:55 -08:00
Scott Lamb
30e0f73ae0
First portion of .mp4 generation logic.
2016-01-09 12:02:36 -08:00
Scott Lamb
c294d751b6
Add logic to create an AVCDecoderConfiguration.
2016-01-08 21:44:19 -08:00
Scott Lamb
dca9642c51
Remove unused/untested ffmpeg-test.cc.
...
This was a half-done thing added by mistake.
2016-01-08 21:40:59 -08:00
Scott Lamb
d00c0b2f12
Add ReadFileOrDie test util function.
...
This fixes a compilation error; I'd left it out of the previous commit adding
a sqlite-test.cc method which depends on it.
2016-01-08 21:39:42 -08:00
Scott Lamb
9af7eb8c14
Add small sqlite3 wrapper + start of schema.
2016-01-07 22:59:34 -08:00
Scott Lamb
a46df2c2e5
Minor File interface changes.
...
These are intended to make the sample file writing easier.
2016-01-06 23:38:46 -08:00
Scott Lamb
7b45f48027
Add (openssl-based) SHA-1 hashing.
2016-01-06 23:27:44 -08:00
Scott Lamb
60988f0646
Add sample index codec; fix schema doc.
2016-01-05 11:01:36 -08:00
Scott Lamb
23ba5e0049
Add util functions for binary encoding/decoding.
...
These will be used by the new sample index format.
2016-01-05 08:29:12 -08:00
Scott Lamb
cc0adc327b
Rough draft of schema design doc.
2016-01-04 23:52:05 -08:00
Scott Lamb
320c4afa94
Fix incorrect path, commandline in README.md.
...
From Dolf Starreveld <dolf@starreveld.com>.
2016-01-04 22:06:55 -08:00
Scott Lamb
7968952295
Add a Filesystem interface for testability.
...
Not immediately adding any tests that take advantage of it.
The new storage schema should handle ENOSPC correctly, and this will aid in
testing it.
2016-01-02 10:51:04 -08:00
Scott Lamb
c9eda8ac15
Initial commit, with basic functionality.
2016-01-01 22:06:47 -08:00