GStreamer jpeg and textoverlay questions

cancel
Showing results for 
Search instead for 
Did you mean: 

GStreamer jpeg and textoverlay questions

Jump to solution
3,331 Views
Contributor IV

Hello,

I am trying to add a jpeg/png graphic as well as text to a pipeline that I have made in GStreamer that will be running on a Wandboard-Quad built with Yocto Dora branch. 

In order to display jpeg/png images, I can use the pipeline:  gst-launch filesrc location=file.jpg ! jpegdec ! imagefreeze ! mfw_isink.  This pipeline does display the image, as long as the resolution is divisible by 8 pixels.  Otherwise the pipeline will fail with the error message 'source fmt error'.  This 8-bit aligned rule may be problematic for my final design.  What would it take to change this to support any resolution?  Does this issue lie with jpegdec or isink? 

In a related question, when I am displaying this graphic, it fills the entire screen, regardless of its actual size.  I have tried the pipeline gst-launch filesrc location=file.jpg ! jpegdec ! imagefreeze ! mfw_isink disp-width=320 disp-height=240, but the image still filled the screen.  Can anyone suggest a different pipeline that would allow me to reduce the size of the image?

Shifting topics slightly, I am having trouble adding textoverlay and timeoverlay elements to my Yocto build.  These elements are part of the gst-plugins-base package, but they seemed to have been removed for some reason.  I have tried to add them back in but have not been successful.  The most logical solution to me was to add the line gst-plugins-base-textoverlay to my recipe, however Yocto was not able to find textoverlay in the RPM.  So I added the line directly the RPM, which not only did not add what I want but also crashed gstreamer when I play video.  Lastly I tried adding Pango to my build, which I believe is related to textoverlay.  Pango was installed successfully, but still no luck with textoverlay.  Can anyone suggest a way of adding textoverlay to my Yocto build? 

As an aside, if anyone is having issues using mfw_isink to play multiple videos and is getting the following warning:

Can not open dll, libgstfsl-0.10.so: cannot open shared object file:

No such file or directory.

  Caught SIGSEGV accessing address (nil)

......

The solution is to make a symlink to the correct library by doing ln -s libgstfsl-0.10.so.0 libgstfsl-0.10.so.  I was stuck on that for longer than I would like to admit.

Thanks,

Josh

1 Solution
115 Views
Specialist I

For 3, can you try the cairotextoverlay element? http://www.freedesktop.org/software/gstreamer-sdk/data/docs/latest/gst-plugins-good-plugins-0.10/gst...

Is there a error log when sinking the HD video?

View solution in original post

0 Kudos
7 Replies
115 Views
Contributor I

Hi Josh,

I am using sato to build the image.

I have included PACKAGECONFIG_append = " pango" in my bbappend .

The contents of bbappend are as follows

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

SRC_URI_append_mxs = " file://gstplaybin-enable-native-video.patch"

SRC_URI_append_mx5 = " file://gstplaybin-enable-native-video.patch"

SRC_URI_append_mx6 = " file://gstplaybin-enable-native-video.patch"

PACKAGECONFIG_append = " pango"

PACKAGE_ARCH_mxs = "${MACHINE_SOCARCH}"

PACKAGE_ARCH_mx5 = "${MACHINE_SOCARCH}"

PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}"

I also included gst-plugins-base-pango in my local.conf file .

The library libgstpango.so is not built.

Where I am doing wrong

0 Kudos
115 Views
Contributor III

Yocto dora branch doesn't enbale pango plugin by default, so you must add it for compilation with a bbappend gst-plugins-base file. There you add this line:

PACKAGECONFIG_append = " pango"

Now the pango (overlay plugins) will be compiled. And to include it in your image or make recipe depend on it, you must add this package name:

gst-plugins-base-pango

115 Views
Contributor III

for my build, I created the following file and added to it, using Janis' suggestion

$ cat gstreamer1.0-plugins-base_%.bbappend
PACKAGECONFIG_append = " pango"

Thanks!

0 Kudos
115 Views
Specialist I

1. The 8-bit rule is an IPU restriction, nothing related to SW (as far as I know)

2. you mean disp-* parameters do not work?

3. how are you adding the textoverlay element?

4. the issue regarding multiple isink instances it is a known issue as seen here https://bugzilla.yoctoproject.org/show_bug.cgi?id=3781

115 Views
Contributor IV

1.)  Oh well, I guess that isn't a huge issue.

2.)  Whoops, I was doing ... ! "mfw_isink disp-width=n disp-height=m".  I realized that should not be in quotes.

3.)  I tried adding it to local.conf as "gst-plugins-base-textoverlay" but bitbake was not able to find it.  I was able to install pango and pangomm, but neither of these seemed to provide textoverlay.

New question, what are the maximum limitations of using mfw_isink to play an HD video from a file plus having jpeg graphics?  I was able to run two graphics with an SD video, but the same test fails when I use a 720p and a 1080p clip. 

Thanks for the help

0 Kudos
116 Views
Specialist I

For 3, can you try the cairotextoverlay element? http://www.freedesktop.org/software/gstreamer-sdk/data/docs/latest/gst-plugins-good-plugins-0.10/gst...

Is there a error log when sinking the HD video?

View solution in original post

0 Kudos
115 Views
Contributor IV

Ah, that works!  However, it kills my CPU usage.  I go from around 8% with a 1080p video and mfw_isink to 65% with the same video and cairotextoverlay, and the video is very jumpy. 

0 Kudos