Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metadata for video frame number streams? #63

Open
chkothe opened this issue Apr 25, 2023 · 2 comments
Open

Metadata for video frame number streams? #63

chkothe opened this issue Apr 25, 2023 · 2 comments

Comments

@chkothe
Copy link
Contributor

chkothe commented Apr 25, 2023

Hey, is there existing practice for how streams holding video frame numbers may be annotated in terms of stream type and metadata? (I know some folks have been writing such integrations quite a while ago, e.g. @mgrivich). Also cc @cboulay (I saw that blackrock integration).

Off the top of my head, I think if nothing else the relative path to the actual video file should be written into the stream metadata (if the video is in a known relative location to the XDF), or otherwise at least the filename without any path information. I'd keep absolute paths out of the spec for obvious reasons.

In terms of stream type, one may be tempted to use the VideoCompressed type and allow in lieu of the <encoding> tag a different tag that indicates that the video is external to the XDF (e.g., <external>). Or we might invent a new tag like VideoExternal, which may avoid a failure mode in XDF/LSL pplications that expect VideoCompressed to contain the actual compressed video but then just find a frame stamp in it (after all, that sort of disambiguation is what stream types are therefore).

@cboulay
Copy link
Collaborator

cboulay commented Apr 28, 2023

I have no strong preference.
If I had to pick, I think I prefer VideoExternal over VideoCompressed.

Other lesser options:

  • FrameCounts
  • FrameIndices

@mgrivich
Copy link

This is what my old VideoStream app uses:

lsl_streaminfo info = lsl_create_streaminfo("VideoStream_0","VideoStream_0",1,requestedFrameRate,cft_int32,"");
lsl_xml_ptr desc = lsl_get_desc(info);
lsl_xml_ptr chn = lsl_append_child(desc, "channels");
lsl_append_child_value(chn, "name","frame");
lsl_append_child_value(chn,"unit","number");

lsl_xml_ptr sync = lsl_append_child(desc, "synchronization");
lsl_append_child_value(sync, "can_drop_samples", "true");

I don't see any need for you to keep to this. I'm not sure that anyone uses that app anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants