Commit graph

77 commits

Author SHA1 Message Date
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