Commit graph

90 commits

Author SHA1 Message Date
Tim-Philipp Müller 41d8a49c52 openh264: fix indentation 2016-04-11 20:04:00 +01:00
Vineeth TM 8cdfb13658 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Sebastian Dröge 9e7454a90a openh264dec: Unref video frames and codec state in all cases 2015-07-02 18:51:44 +02:00
Sebastian Dröge 5109d9930c openh264dec: Uninitializing the decoder can't fail and will always return 0 == cmResultSuccess
... but when we cast cmResultSuccess to a gboolean it will be FALSE, and make
GstVideoDecoder::stop() fail for no reason.
2015-07-02 14:16:05 +02:00
Robert Swain e5c73c8c8c openh264enc: Add complexity property for speed/quality tradeoff 2015-04-17 14:57:14 +02:00
Edward Hervey f31127b9ff open264: Fix GType/gsize usage
gstopenh264enc.cpp:108:7: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
2015-04-07 11:24:30 +02:00
Edward Hervey 29387e85c7 openh264: Detect 1.4 API change
As mentionned in release notes : Added new Sps/Pps strategies for real-time
video (replace the old setting variable 'bEnableSpsPpsIdAddition' with
'eSpsPpsIdStrategy')
2015-04-07 11:24:28 +02:00
Arun Raghavan 561cab9003 openh264: Implement the preset interface
Will be useful when we want to set presets on the encoder via encodebin
or such.
2015-01-22 11:07:49 +05:30
Sebastian Dröge 80e02cbdf9 Constify some static arrays everywhere 2015-01-21 10:18:50 +01:00
Zaheer Abbas Merali 3a4d988a29 Revert "Revert "openh264: fix to work with released versions and master of upstream""
This reverts commit 329f0ccba1.
2015-01-13 11:32:03 -08:00
Zaheer Abbas Merali 21b7ce5504 openh264: remove all trace output to console from encoder 2015-01-13 11:31:21 -08:00
Tim-Philipp Müller 329f0ccba1 Revert "openh264: fix to work with released versions and master of upstream"
This reverts commit 15394aa705.

The latest release (v1.1) does not have pkg-config support
yet, so this plugin won't be built with the latest release.
Cerbero uses the latest release, so this makes cerbero
builds fail, which expect the plugin to be built.

We can re-commit this once there's a release that includes
pkg-config support.
2014-12-12 20:58:49 +00:00
Zaheer Abbas Merali 15394aa705 openh264: fix to work with released versions and master of upstream 2014-12-12 10:05:23 -08:00
Sebastian Dröge 9e700adf83 openh264enc: Use a fixed number of slices by default 2014-11-24 19:21:29 +01:00
Sebastian Dröge c43b9aad66 openh264enc: Add some more encoding properties
Merged from https://github.com/EricssonResearch/openwebrtc-gst-plugins
based on a patchset by Robert Swain <robert.swain@ericsson.com>
2014-11-24 19:16:20 +01:00
Sebastian Dröge 354fa3f2c9 openh264enc: Add new enable-frame-skip property and disable it by default
Otherwise e.g. videotestsrc ! openh264enc ! ... will drop every second frame
because otherwise the target bitrate can't be reached without loosing too
much quality.
2014-11-12 11:54:09 +01:00
Sebastian Dröge 28e44b3392 openh264: Use a MARGINAL rank for the encoder and decoder
They work but for now we prefer others until these are extensively tested.
2014-10-06 16:44:51 +03:00
Nicola Murino 4d8d9b009b openh264enc: make denoise work
https://bugzilla.gnome.org/show_bug.cgi?id=737894
2014-10-06 12:31:29 +03:00
Sebastian Dröge 518d84c148 openh264dec: The codec can only do baseline so simplify the code a bit
and declare this also on the srcpad caps.

With baseline profile there are no B-frames or frame reordering.
2014-10-03 17:23:36 +03:00
Sebastian Dröge bc8e1465dc openh264dec: On ::finish() stop trying if the decoder returned that no output is available 2014-10-03 17:23:36 +03:00
Sebastian Dröge 088cf16bf9 openh264: Run gst-indent over everything 2014-10-03 17:23:36 +03:00
Sebastian Dröge 09f5b9acec openh264: Remove unused codecparsers lib 2014-10-03 17:23:36 +03:00
Sebastian Dröge 68baaf19c3 openh264: Add FIXME comment about missing API in openh264 2014-10-03 17:23:36 +03:00
Sebastian Dröge 0e15f47bdf openh264dec: Try to handle frame reordering
As openh264 has no way to attach any IDs to input frames that we then get on
the output frames, we have to assume that the input has valid PTS. We just
take the frame with the oldest PTS, and if there is no PTS information we take
the one with the oldest DTS.
2014-10-03 17:23:36 +03:00
Sebastian Dröge 8ae2af61ce openh264dec: Don't drop videocodec frames if we can't decode them *yet*
Fixes jittery playback of streams with B frames.
2014-10-03 17:23:36 +03:00
Sebastian Dröge 1dfcdb9ce3 openh264dec: GstVideoDecoder works on frames, not sub-frames (e.g. NALs)
And we can just pass complete AUs to the decoder without problems.
2014-10-03 17:23:36 +03:00
Sebastian Dröge 1eb740a7c3 openh264dec: As we require NAL alignment from upstream we don't need to parse anything 2014-10-03 17:23:36 +03:00
Sebastian Dröge 0a31814ef3 openh264dec: Properly drain codec on ::finish() 2014-10-03 17:23:35 +03:00
Sebastian Dröge 10475b6793 openh264enc: Properly drain the encoder on ::finish() 2014-10-03 17:23:35 +03:00
Sebastian Dröge 8aedcc6bde openh264enc: We always get a single frame as output, not a NAL
No need to accumulate NALs.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 70d4e6b740 openh264enc: Fix up caps and stride handling 2014-10-03 17:23:35 +03:00
Sebastian Dröge f3cabe3cc3 openh264enc: Add support for GstVideoMeta
This will allow upstream elements to work more efficiently.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 2285cbaa45 openh264dec: Add support for GstVideoMeta
This will make operation with various sinks faster for free.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 4475663569 openh264dec: Optimize frame copying a bit 2014-10-03 17:23:35 +03:00
Sebastian Dröge 4c5a504a7b openh264dec: Don't forget to unref the input state 2014-10-03 17:23:35 +03:00
Sebastian Dröge 76b5c1c511 openh264dec: Fix various crashes on ::stop() 2014-10-03 17:23:35 +03:00
Sebastian Dröge bc5c6a0fc9 openh264dec: Remove invalid sprops-parameter-set handling
This only exists on RTP caps, not H264 caps.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 739a10d84e openh264enc: Don't set caps manually
This will break the order of events in GStreamer.
2014-10-03 17:23:35 +03:00
Sebastian Dröge 18e7540263 openh264dec: Fix input state handling and propagation of upstream caps fields 2014-10-03 17:23:35 +03:00
Sebastian Dröge cf4ec9b04e openh264: Add OpenH264 based encoder/decoder elements
These are the openh264 elements released under the BSD-2 license
by Ericsson as part of the OpenWebRTC project.
https://github.com/EricssonResearch/openwebrtc-gst-plugins

https://bugzilla.gnome.org/show_bug.cgi?id=737788
2014-10-03 17:23:35 +03:00