Commit graph

760 commits

Author SHA1 Message Date
Guillaume Desmottes
8e0dc1d89d omxh264enc: raise a warning if AVCIntraPeriod is not supported
Some platforms may not implement OMX_IndexConfigVideoAVCIntraPeriod and
use OMX_IndexParamVideoAvc instead to configure the GOP pattern.
So raise a warning instead of an error if this API is not implemented.

https://bugzilla.gnome.org/show_bug.cgi?id=784379
2017-07-03 10:22:20 -04:00
Guillaume Desmottes
ebeae6d869 omxh264enc: add 'b-frames' property
Add a property to control the number of B-frames produced by the
encoder using the OMX_VIDEO_PARAM_AVCTYPE OMX API.

https://bugzilla.gnome.org/show_bug.cgi?id=784379
2017-07-03 10:22:20 -04:00
Guillaume Desmottes
1fbb8a3fb8 omxh264enc: fix typo in 'set_avc_intra_period'
https://bugzilla.gnome.org/show_bug.cgi?id=784379
2017-07-03 10:22:20 -04:00
Guillaume Desmottes
2be1214cab add 'zynqultrascaleplus' as OMX target
Adding support for the 'Zynq UltraScale+' as a new OMX target.

See https://www.xilinx.com/products/silicon-devices/soc/zynq-ultrascale-mpsoc.html
for details about the platform.

https://bugzilla.gnome.org/show_bug.cgi?id=783097
2017-07-03 10:15:17 -04:00
Julien Isorce
65b3a2769d config: add OMX.mesa.video_decoder.{avc,mpeg2} for Bellagio config
Install libomxil-bellagio0 and make sure mesa has been built with
--enable-omx. Check there is /usr/lib/libomxil-bellagio0/libomx_mesa.so
then run omxregister-bellagio to regenerate $XDG_DATA_HOME/.omxregister

Then omxh264dec and omxmpeg2dec should load.

https://bugzilla.gnome.org/show_bug.cgi?id=782926
2017-06-29 23:40:18 +01:00
Julien Isorce
c692328521 configure.ac: move omx features check after target selection
Does not change anything, except this will be useful for future commits.
Indeed some targets provide a .pc file where to look for the omx headers.

https://bugzilla.gnome.org/show_bug.cgi?id=782800
2017-06-29 23:32:16 +01:00
Guillaume Desmottes
752544841d omxh264dec: remove 'parsed=true' from sink pad
The decoder only requires to receive one frame per buffer which is
already enforced with 'alignment=au'. There is no need to require to
have a parser upstream.

Allow to run "encode ! decode" pipeline without having a parser.

https://bugzilla.gnome.org/show_bug.cgi?id=784344
2017-06-29 15:46:14 -04:00
Guillaume Desmottes
1fa2ea274f omxh264enc: set profile/level using OMX_VIDEO_PARAM_AVCTYPE as well
The OMX specification defines two API to set the AVC profile and level:
using OMX_VIDEO_PARAM_PROFILELEVELTYPE and OMX_VIDEO_PARAM_AVCTYPE.

We were already supporting the former but not the latter. We are now
setting both so implementation don't have to rely on a specific one.

https://bugzilla.gnome.org/show_bug.cgi?id=783862
2017-06-29 15:39:56 -04:00
Guillaume Desmottes
0dbe604209 omxh264enc: factor out update_param_profile_level()
https://bugzilla.gnome.org/show_bug.cgi?id=783862
2017-06-29 15:39:56 -04:00
Guillaume Desmottes
af207f8956 omxh264enc: factor out string to profile/level enum conversion
https://bugzilla.gnome.org/show_bug.cgi?id=783862
2017-06-29 15:39:56 -04:00
Guillaume Desmottes
424776ba5e omxh264enc: use OMX_IndexConfigBrcmVideoIntraPeriod on pi
The OMX_VIDEO_CONFIG_AVCINTRAPERIOD.nPFrames setting isn't of any use on
the raspbery pi. Instead it uses a custom extension to define the I
frame period.

https://bugzilla.gnome.org/show_bug.cgi?id=783829
2017-06-28 17:05:46 -04:00
Guillaume Desmottes
895086e2e2 omxh264enc: factor out set_avc_intra_perdiod()
https://bugzilla.gnome.org/show_bug.cgi?id=783829
2017-06-28 17:05:46 -04:00
Guillaume Desmottes
f79b21f12c meson: define HAVE_VIDEO_EXT if OMX_VideoExt.h is present
Meson build wasn't defining the HAVE_VIDEO_EXT like configure.ac does.

https://bugzilla.gnome.org/show_bug.cgi?id=783346
2017-06-16 13:44:49 +03:00
Graham Leggett
463929af3e omxvideoenc: Improve debug output when setting codec state due to new codec_data fails
https://bugzilla.gnome.org/show_bug.cgi?id=783657
2017-06-12 09:56:20 +03:00
Julien Isorce
1c8f069e42 omx: allow 0 feature
Previously the omx plugin was blacklisted if GST_OMX_CONFIG_DIR
points to an invalid path or if the gstomx.conf contains 0 valid
component.
Problem is that once the plugin is blacklisted, a rescan is not
triggered upon changes of the env var or the gstomx.conf file
despite being setup with gst_plugin_add_dependency.

This also makes it more consistent with other plugins that auto
generate features. For example gst-{ffmeg,libav}, gstreamer-vaapi,
v4l2 video dec.

To clarify the diff, the plugin_init func will return TRUE even if
g_key_file_get_groups returns 0 element and even if
g_key_file_load_from_dirs fails.

https://bugzilla.gnome.org/show_bug.cgi?id=782867
2017-05-21 15:40:11 +01:00
Gurkirpal Singh
29ce1d9152 config: add OMX.st.audio_decoder.mp3.mad for Bellagio config
MP3 Software decoder (libmad based) but useful for testing
and to compare with other targets.

GST_OMX_CONFIG_DIR=$HOME/gst/master/gst-omx/config/bellagio/ \
    gst-launch-1.0 filesrc location=mpthreetest.mp3 ! id3demux ! \
    mpegaudioparse ! omxmp3dec ! audioconvert ! pulsesink

Didn't add 'local' in core-name path compared to other components
in that same gstomx.conf file because OMX.st.audio_decoder.mp3.mad
comes with the Ubuntu package 'libomxil-bellagio0-components-mad'.
All other components listed in this gstomx.conf for Bellagio, are
not provided by any Ubuntu packages. It could explain the 'local',
i.e. requiring to build them from source.

dpkg -L libomxil-bellagio0
    /usr/lib/libomxil-bellagio.so.0

https://bugzilla.gnome.org/show_bug.cgi?id=781786

Signed-off-by: Gurkirpal Singh <gurkirpal204@gmail.com>
Signed-off-by: Julien Isorce <jisorce@oblong.com>
2017-05-21 15:40:11 +01:00
Nicolas Dufresne
e805954f5c Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:39:16 -04:00
Sejun Park
d980af213b omxvideodec: Removed unreachable code
https://bugzilla.gnome.org/show_bug.cgi?id=782416
2017-05-10 11:54:44 +01:00
Guillaume Desmottes
e8590db808 meson: add dep on GModule
libgstomx uses the GModule API and so needs it in its dependencies list.

https://bugzilla.gnome.org/show_bug.cgi?id=782387
2017-05-09 16:31:03 +02:00
Tim-Philipp Müller
0c1217f35b meson: fix config.h generation
"No such input file config.h.meson", but it's not needed anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=782382
2017-05-09 14:29:05 +01:00
Sebastian Dröge
901e252be7 Back to development 2017-05-04 18:59:33 +03:00
Sebastian Dröge
6dd6d0fea2 Release 1.12.0 2017-05-04 15:48:56 +03:00
Sebastian Dröge
538c58e77f Release 1.11.91 2017-04-27 17:53:50 +03:00
Guillaume Desmottes
623d2df5a3 videoenc: use GST_ROUND_UP_N() macro
Makes the code much easier to read and understand.

https://bugzilla.gnome.org/show_bug.cgi?id=781409
2017-04-26 15:37:41 +01:00
Tim-Philipp Müller
cbd375ce71 Automatic update of common submodule
From 60aeef6 to 48a5d85
2017-04-24 20:30:21 +01:00
Tim-Philipp Müller
e5046e6ed4 Automatic update of common submodule
From 39ac2f5 to 60aeef6
2017-04-10 23:51:00 +01:00
Sebastian Dröge
1c76946b03 Release 1.11.90 2017-04-07 16:36:45 +03:00
Sebastian Dröge
812e24b06f omxvideoenc: Fix compiler warning
gstomxvideoenc.c: In function ‘gst_omx_video_enc_fill_buffer’:
  CC       libgstomx_la-gstomxaacdec.lo
gstomxvideoenc.c:1316:27: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 8 has type ‘OMX_U32 {aka long unsigned int}’ [-Wformat=]
     GST_LOG_OBJECT (self, "Matched strides - direct copy %u bytes",
                           ^
         outbuf->omx_buf->nFilledLen);
         ~~~~~~~~~~~~~~~~~~
2017-04-07 14:27:23 +03:00
Gurkirpal Singh
8fd5d04fef meson: fix logic to set HAVE_THEORA
https://bugzilla.gnome.org/show_bug.cgi?id=780392
2017-03-22 12:11:05 +00:00
Jan Schmidt
75d9ec634c omxvideoenc: Add an unimplemented mapping for RGBA formats
Add some pixel formats mappings for 2 RGBA formats. Not yet
implemented in the buffer input code though, so no effect for now.
2017-03-14 03:02:06 +11:00
Jan Schmidt
413f05269c omxvideoenc: Add GST_OMX_HACK_HEIGHT_MULTIPLE_16 for Rpi
The Raspberry Pi encoder produces corrupt output unless
the input height is a multiple of 16. Add a hack that adds
zero padding when needed.
2017-03-14 03:00:49 +11:00
Jan Schmidt
f3a7bce442 omxvideoenc: Add a mapping for OMX_COLOR_FormatYUV420PackedSemiPlanar
The RaspberryPi
2017-03-14 02:42:15 +11:00
Jan Schmidt
c3078dd20c omxvideoenc: Filter out unimplemented formats
Don't announce pixel formats in the caps if they've not been
implemented.
2017-03-14 02:40:24 +11:00
Jan Schmidt
7c829886ca omxvideodec: demote ERROR message
There's no need to warn about failing to negotiate EGL output
 - that can be perfectly normal.
2017-03-14 02:34:36 +11:00
Sebastian Dröge
0af5f07167 meson: Update version 2017-02-24 16:00:29 +02:00
Sebastian Dröge
a41cc1b624 Back to development 2017-02-24 15:38:17 +02:00
Sebastian Dröge
bd0fd3ae06 Release 1.11.2 2017-02-24 15:10:17 +02:00
Tim-Philipp Müller
7f8c2a08da meson: dist meson build files
Ship meson build files in tarballs, so people who use tarballs
in their builds can start playing with meson already.
2017-02-15 18:22:53 +00:00
Vincent Penquerc'h
4e01a6f7b1 omxaacenc: let encoder know about incoming rate/channels
https://bugzilla.gnome.org/show_bug.cgi?id=777223
2017-01-20 13:37:46 -05:00
Matthew Waters
ed5f63c9ef build: add meson build definition
Currently only been tested on the RPi within gst-build.
2017-01-18 15:23:42 +11:00
Matthew Waters
b4f3e4094b examples/testegl: update for libgstgl changes 2017-01-18 15:23:41 +11:00
Sebastian Dröge
f328aa05f1 Back to development 2017-01-12 16:33:09 +02:00
Sebastian Dröge
a207552c1f Release 1.11.1 2017-01-12 16:26:55 +02:00
Vincent Penquerc'h
a02f1e5c9b omxaudioenc: set base class format instead of just source pad caps 2017-01-11 11:38:05 +00:00
Graham Leggett
a1e613dd89 omx*dec: Flush before we stop the srcpad loop
Flushing could otherwise hang if output port queue of pending buffers was empty

https://bugzilla.gnome.org/show_bug.cgi?id=774654
2016-12-19 10:52:16 +02:00
Reynaldo H. Verdejo Pinochet
7925355d72 Fix broken build due to syntax error
Problem was introduced by 8716c23e2b
2016-12-14 13:32:16 -08:00
Graham Leggett
8716c23e2b Prevent early EOS by resetting eos flag once GST_OMX_ACQUIRE_BUFFER_EOS is triggered
https://bugzilla.gnome.org/show_bug.cgi?id=774600
2016-12-13 11:38:38 +02:00
Graham Leggett
5d5fbcd8f6 Add clear debug logging on all the paths out of gst_omx_port_acquire_buffer()
https://bugzilla.gnome.org/show_bug.cgi?id=774600
2016-12-13 11:38:36 +02:00
George Kiagiadakis
05b137a256 Add a signals-premature-eos hack for egl_render
egl_render seems to have a bug and signals EOS before it has finished
pushing out all data; this hack simply makes acquire_buffer() wait
a bit more before signalling EOS, in case egl_render decides to spit
out some more data.

https://bugzilla.gnome.org/show_bug.cgi?id=741856
2016-12-13 11:38:26 +02:00
Graham Leggett
8b01b06af6 Add support for OMX_COLOR_FormatYUV420PackedSemiPlanar and OMX_COLOR_Format24bitBGR888
https://bugzilla.gnome.org/show_bug.cgi?id=775959
2016-12-13 11:18:43 +02:00