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

Building TASM - nvUtils.h #1

Closed
faromero opened this issue Jan 29, 2021 · 10 comments · Fixed by #2
Closed

Building TASM - nvUtils.h #1

faromero opened this issue Jan 29, 2021 · 10 comments · Fixed by #2

Comments

@faromero
Copy link

Hello,
I am interested in trying out your prototype of TASM; I am getting tripped up on the build not finding nvUtils.h in tasm/encoding/include/EncodeAPI.h. Is this header from an NVIDIA library that needs to be installed, or is this a part of your source code that I am missing/am not pointing to properly?

Thanks for your help in advance!

@maureendaum maureendaum linked a pull request Feb 1, 2021 that will close this issue
@maureendaum
Copy link
Collaborator

Thanks for your interest in the project! I apologize that it isn't in a very user-friendly state at the moment, I'm going to put some time into that this week.

It looks like that import is an old external resource that isn't part of more recent NVIDIA distributions, so I removed it. Let me know if you still have trouble building.

Just as a heads up, I introduced some performance bugs when I extracted TASM from LightDB that I haven't resolved yet. If you are interested in using the C++ interface through LightDB, let me know and I'll put together some documentation for how to do that!

@faromero
Copy link
Author

faromero commented Feb 1, 2021

Great, thank you so much for your help! No worries at all about the documentation, I can work with what you have here.

One more question about the build: the compiler complains about these lines, saying it can't convert flags to type GF_ISONaluExtractMode. I am not familiar with the gpac library, but it seems it is because the resulting bit-wise oring is not a "valid enum" value based on the source code for GF_ISONaluExtractMode. Based on this, is it sufficient to just pass the GF_ISOM_NALU_EXTRACT_ANNEXB_FLAG flag since if I am understanding it correctly, it will also apply the GF_ISOM_NALU_EXTRACT_INBAND_PS_FLAG flag? Passing just the GF_ISOM_NALU_EXTRACT_ANNEXB_FLAG flag gets me through the whole build, and I will test some runs next.

Thanks again for all your help with this!

@maureendaum
Copy link
Collaborator

Yes, I think that should be fine! I'll fix that in a new commit.

@maureendaum
Copy link
Collaborator

maureendaum commented Feb 1, 2021

Actually, now that I've tried it on my end, I'm not sure whether that will work. We may have different gpac versions because I don't get that error, and when I drop GF_ISOM_NALU_EXTRACT_INBAND_PS_FLAG, the decoder fails to decode any of the frames for select.

If, when you try to do a selection, you see a line printed like Num-frames-from-decoder: 0, then removing that flag may have broken it. I created a new issue to track this inconsistency: #3

@faromero
Copy link
Author

faromero commented Feb 1, 2021

Makes sense! I apologize for my lack of familiarity with gpac, but if this helps, here is the version I see when I run the binary associated with the gpac build:
gpac - GPAC command line filter engine - version 1.1.0-DEV-rev468-g0dc842d37-master

To run, I was using your example, and it seems that I can import tasm correctly, but it doesn't find the TASM() attribute. I assume this is because some installation of packages escaped me (after make, I did run make install, but perhaps I missed something python-specific). (I can also move this to a different thread if you prefer.)

@maureendaum
Copy link
Collaborator

I'm not 100% sure which gpac version I'm using, but it's definitely older than that. MP4Box is using all the way back from GPAC version 0.5.2-DEV-revVersion. I should probably update to at least 1.0.0.

For the issue importing tasm, I don't think I'm adding the library to the python path. Does it work if you try to run from <build>/python/?

@faromero
Copy link
Author

faromero commented Feb 1, 2021

Regarding gpac: no problem, if this doesn't work out, I can downgrade to something around the version you specified.
Regarding python: I realized I was running this in python3, not python2, and you are correct that I should be running in build/python. I get a symbols error now associated with the TileConfiguration protobuf, but at least means it's trying to correctly access the shared object for the attributes: tasm/_tasm.so: undefined symbol: _ZN7lightdb13serialization17TileConfigurationC1Ev. Likely a protobuf version issue which I am investigating; what version are you using?

@maureendaum
Copy link
Collaborator

That's progress! I'm using Protobuf version: 2.6.1

@maureendaum
Copy link
Collaborator

If you are interested, I put together a Docker file to make it easier to get the right dependencies installed (and I upgraded to python3). It's currently available on the docker branch, and I updated the README with instructions for building it locally while I figure out how to get it on DockerHub.

@faromero
Copy link
Author

faromero commented Feb 2, 2021

I am very interested, thanks for putting that together! I will give it a go.

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

Successfully merging a pull request may close this issue.

2 participants