gstreamer - omxh264enc / enctune.conf

I’m looking at the gstomx1 source code, and there are several flags in NVX_PARAM_VIDECPROPERTY that are interesting and I’d like to set for use with omxh264enc.

However, through the gstreamer interface, there’s no access to there.

Similar values appear to be available in /etc/enctune.conf, but I can’t seem to set them there, nor does there seem to be an easy way to pick a specific configuration from there.

I don’t particularly care how I set some of these flags, but I’m really trying to avoid having to recompile gstomx1 to set a few flags.

Any thoughts or tips? Thanks!

@XPav
You can modify the /etc/enctune.conf file by pulling it out using adb and then make the necessary changes. You might also need to modify additional files as per your requirement like media_profiles.xml and media_codecs.xml. Then push the changed files back :-
adb push media_profiles.xml /etc/media_profiles.xml adb push media_codecs.xml /etc/media_codecs.xml
adb push enctune.conf /etc/enctune.conf.xml and do a system reboot so that the changes can take effect. adb reboot

Do those really apply to Linux for Tegra?

For L4T the logic should be same in my opinion, we can directly copy-paste files

Running gst-launch-1.0 with omxh264enc under strace shows that it doesn’t even open the file. So, using gstreamer 1.0, the encoder has all these options that just inaccessible.

Now, the gstreamer 0.10 module has all these various option (see below), so I know they’re there!

I attempted to build the 1.0 module from source so I could manually add the options I care about, but the tbz2 module tries to pull various information from a git repo… but no git repo is specified in any of the documentation. Trying to mash the nvidia source ontop of the stock gst-omx didn’t work either.

In order of preference:

  1. Please add all the options that are in the 0.10 module to 1.0
  2. Please provide better directions on how to compile the 1.0 dmx gstreamer module, and I’ll twiddle the bits myself

1.0:

0.10

@XPav
0.1 Gstreamer and 1.0 Gstreamer are 2 different things as you know developed by Gstreamer community. The 1.x series is parallel installable to GStreamer 0.10, but all the apps running on these are not inter-compatible.

  1. Please add all the options that are in the 0.10 module to 1.0
    <<< not owned by nvidia, its open source, if you need any specific info that I can try to find out.

To install gstreamer 1.0 please follow this :-

  1. After target devices boot up, Modify /etc/apt/sources.list file to add universe and multiverse packages
    deb http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe multiverse
    deb-src http://ports.ubuntu.com/ubuntu-ports/ trusty main restricted universe multiverse
    or
    sudo add-apt-repository universe && sudo add-apt-repository multiverse
  2. Install following packages:
    sudo apt-get update && sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libegl1-mesa-dev libgles2-mesa-dev

If you are attempting something else, please let me know.

@Manoj_Gupta

That’s not the problem. I can run either version of gstreamer all day long.

These are the problems:
As distributed by Nvidia, the 0.10 filter has options the 1.0 does not. I need the options.
I’d add them to 1.0, but the source provided seems relies on a non-specified git repo and does not build.
I’d even use 0.10, but 1.0 is far better and fixes other bugs.

Nvidia absolutely modified gst-omx for the Tegra, compare the provided source against the gstreamer git.

@XPav

I assume you have followed the steps mentioned in README.txt to compile the gst-omx source code.
We don’t fetch anything from git because that is complete package. Please mention the steps you have been following to compile the code.

Secondly, additional features for encoders/decoders will be part of next release. If you want you can wait till that time.

@Jitendrak

The gst-omx code compiled according to directions.
The gst-omx1 code does not. README says “enter dir, do ./configure”, but there is no configure in the tbz2. autogen.sh does exist, but that looks for .git.

However, if in the next month or so you update the gstreamer 1.0 binaries and add the insert-spsppsatidr and low-latency options, I will be a happy camper.

Thanks for the note.

Yes those options will be part of next release.

@Jitendrak - have the low-latency options been added yet?

Hello electronique, sorry, there have been no released updates to L4T on the Jetson TK1. The last update was L4T 21.4 which was released in July of 2015. An L4T update is planned but we have not set a release date.