Commit graph

31 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
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
Sebastian Dröge
33e083fff6 omxh264enc: Properly accumulate headers and push before the next frame
Fixes output of encoding on RPi, where each header buffer (SPS and PPS)
is in a separate OMX buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=726669
2014-06-29 19:10:19 +02:00
Sebastian Dröge
6617d6f577 omxh264enc: Don't let baseclass finish frames for SPS/PPS buffers
Otherwise we a) send them twice, and b) finish a frame for something
that does not even include a frame.

https://bugzilla.gnome.org/show_bug.cgi?id=726669
2014-06-24 11:11:28 +02:00
Michal Lazo
c832b03b3b fix filemode 2014-03-19 08:53:02 +01:00
Sebastian Dröge
922d036ae7 omxh264enc: Fix compiler warnings 2014-03-16 17:32:05 +01:00
Michal Lazo
e55bf0a4c5 omxh264enc: IDR interval, SPS and PPS headers for rpi
https://bugzilla.gnome.org/show_bug.cgi?id=720031
2014-03-16 17:31:01 +01:00
Tim-Philipp Müller
2cbbab3128 omx: more printf format fixes
Fix printf formats again, so that gst-omx compiles warning-
free on the Raspberry Pi as well. Unfortunately OMX_UINT32
maybe be typedefed to uint32_t or unsigned long, which
doesn't work well with our debugging printf format strings,
so just use %u for those and cast to guint.
2013-04-18 23:10:13 +01:00
Tim-Philipp Müller
0c08d375f4 omx: fix printf formats in debug messages
OMX_U32 is typedefed to an unsigned long,
OMX_TICKS to a 64-bit integer.
2013-04-08 17:02:32 +01:00
Tim-Philipp Müller
f17c8ac55b omx: fix compiler warnings when compiling with -DG_DISABLE_ASSERT
As we do for releases. Fixes 'variable may be used uninitialized'
warnings.
2013-03-22 19:23:46 +00:00
Sebastian Dröge
02335ef953 omx: Only unref caps after usage of its fields 2013-03-14 15:03:02 +01:00
Sebastian Dröge
77f95de529 omxh264enc: If caps specify no profile/level use the component's defaults 2013-03-11 13:49:38 +01:00
Sebastian Dröge
bd53faacc9 omxh264enc: The h264 encoders are supposed to output byte-stream/au 2013-03-11 13:13:22 +01:00
Sebastian Dröge
0b348473fa omxvideoenc: And set it actually on the right port 2013-03-01 12:24:09 +01:00
Sebastian Dröge
eef92abf28 omxvideoenc: Set the coding type in the subclasses to the specific codec 2013-03-01 12:18:08 +01:00
Sebastian Dröge
92c7944499 omxvideoenc: Rename component variable 2013-02-25 09:19:08 +01:00
Sebastian Dröge
5fdb490f1a omx: Port to video base classes from -base 2012-10-22 14:20:41 +02:00
Tim-Philipp Müller
49ba281e8b omx: gst_element_class_set_details_simple() -> set_static_metadata() 2012-10-17 17:57:43 +01:00
Olivier Crête
ff2603a727 Port to Gst 0.11 2012-04-13 12:16:34 -04:00
Jonas Larsson
9c4b926c41 omxh264enc: Add support for resending headers after a forced-keyframe 2011-11-29 12:21:32 +01:00
Sebastian Dröge
1b58fa487e omxh264enc: Detect bytestream stream format and don't put SPS/PPS into the caps for this format 2011-11-15 08:40:07 -08:00
Sebastian Dröge
75c843670f omxvideoenc: Use "video/x-raw-yuv" as sink template caps instead of strict I420 caps 2011-08-10 10:24:48 +02:00
Sebastian Dröge
714ba59b11 omxvideoenc: Don't fail if setting the bitrate or profile is not supported by the component
Also always set/get the profile, even if there are no peer caps.
2011-08-02 15:14:37 +02:00
Sebastian Dröge
27a0cb4c91 omxh264enc: Add support for setting profile/level via caps 2011-07-28 14:14:45 +02:00
Sebastian Dröge
e01eb8c35c omxh264enc: Add H.264 encoder element 2011-07-25 11:32:51 +02:00