Commit graph

7562 commits

Author SHA1 Message Date
Aaron Boxer
1414e58dfa jpeg2000parse: fail caps negotiation if caps are NOT fixed 2019-11-05 21:21:51 +00:00
Aaron Boxer
7b3491adf7 jpeg2000parse: use pre_push_frame to reset parser 2019-11-05 21:21:51 +00:00
Aaron Boxer
bfee115d66 jpeg2000parse: parse_event: call base class at end
derived class should do it's work first before calling base
2019-11-05 21:21:51 +00:00
Aaron Boxer
67cffd70ad jpeg2000parse: do hard reset if gst_base_parse_finish_frame fails 2019-11-05 21:21:51 +00:00
Aaron Boxer
a35157debf jpeg2000parse: initialize some variables to make valgrind happy 2019-11-05 21:21:51 +00:00
Aaron Boxer
fae0664824 jpeg2000parse: use GST_INT in caps for profile
Negotiation failed with GST_UINT
2019-11-05 21:21:51 +00:00
Aaron Boxer
1344d9f560 jpeg2000parse: make explicit that codec_format is for src caps 2019-11-05 21:21:51 +00:00
Aaron Boxer
969e30c035 jpeg2000parse: refactor
1. only recalculate src codec format if sink caps change
2. use correct value for "jp2c" magic in J2C box ID
3. only parse J2K magic once, and store result
4. more sanity checks comparing caps to parsed codec
2019-11-05 21:21:51 +00:00
Aaron Boxer
2b6b1a2b04 jpeg2000parse: set parsed to TRUE in src caps 2019-11-05 21:21:51 +00:00
Aaron Boxer
453a65b8e9 jpeg2000parse: only cache caps parameters when caps have in fact changed 2019-11-05 21:21:51 +00:00
Aaron Boxer
ead5dba3ac jpeg2000parse: fix typos in media format 2019-11-05 21:21:51 +00:00
Aaron Boxer
88efbd2344 jpeg2000parse: add reset method
Also add three new struct members, currently unused.
2019-11-05 21:21:51 +00:00
Aaron Boxer
6d3429af34 documentation: fixed a heap o' typos 2019-11-05 09:11:25 -05:00
Vivia Nikolaidou
2386858a91 Add files from gst-rtmp
For master, without autotools.
2019-11-05 13:52:55 +00:00
Olivier Crête
3a9c224ac2 ristsrc: Apply BINDTODEVICE to socket created by udpsrc too 2019-11-04 20:47:23 +00:00
Yeongjin Jeong
732735cab0 h265parse: Fix wrong NALU minimum length check
Fixes a problem where an EOS/EOB NALU placed at the end of
an AU is detected as an other AU and create a buffer that
does not have valid pts.
2019-11-04 14:16:49 +09:00
Yeongjin Jeong
0318458b0e h264parse: Fix wrong NALU minimum length check
Fixes a problem where an EOS/EOB NALU placed at the end of
an AU is detected as an other AU and create a buffer that
does not have valid pts.
2019-11-04 14:16:49 +09:00
Edward Hervey
ef16d7558f mpegtsmux: Add SCTE-35 support
This adds two properties:
* scte-35-pid: If not 0, enables the SCTE-35 support for the current
  program. This will write the proper PMT and send SCTE-35 NULL
  commands (i.e. heartbeats) at a regular interval
* scte-35-null-interval: This specifies the interval at which the
  NULL commands should be sent

Sending SCTE-35 commands is done by creating the appropriate SCTE-35
GstMpegtsSection and then sending them on the muxer. See the
associated example
2019-10-31 12:31:27 +00:00
Edward Hervey
6a9108884c mpegts: Add support for SCTE-35 sections
Not all commands are supported, but the most common ones are.
Both parsing and packetizing is supported
2019-10-31 12:31:27 +00:00
Edward Hervey
5464775aef tsmux: Disable bluray-isms from PMT
We were unconditionally adding top-level descriptors in the PMT which
were only related to bluray support for PS3 (from 10 years ago).

These should be re-added conditionally
2019-10-31 12:31:27 +00:00
Edward Hervey
878edacc05 mpegtspacketizer: Fix off-by-one error
This went un-noticed for 6 years :( The issue is that for short
sections (without subtables and CRC), we would always fail when
checking whether we had enough data or not and then default to the
long section checking.

Use the long section checking would then cause interesting side-effects
for short sections (such as believing they were already seen and therefore
would be dropped/ignored).
2019-10-31 12:31:27 +00:00
Sebastian Dröge
5a9541caff timecodestamper: Add properties to time out cached upstream/LTC timecodes after a while
By default we never time them out and simply continue couting up with
each frame forever.
2019-10-23 16:48:26 +03:00
Sebastian Dröge
fc463b9ebc timecodestamper: Add new auto-resync boolean property
This allows selecting whether we continue updating our last known
upstream timecode whenever a new one arrives or instead only keep the
last known one and from there on count up.
2019-10-23 16:48:26 +03:00
Sebastian Dröge
96aa9b5633 timecodestamper: Add last-known-or-zero mode
This uses the last known upstream timecode (counted up per frame), or
otherwise zero if none was known.

The normal last-known timestamp uses the internal timecode as fallback
if no upstream timecode was ever known.
2019-10-23 16:48:26 +03:00
Sebastian Dröge
b57687a772 timecodestamper: Don't initialize upstream timecode with zero if none was seen
Instead keep it unset and use the internal timecode wherever needed as
fallback.
2019-10-23 16:48:26 +03:00
Sebastian Dröge
faffeaf839 timecodestamper: Update set-tc property documentation with latest version of reality 2019-10-23 16:48:26 +03:00
Sebastian Dröge
651110de09 pnmdec: Return early on ::finish() if we have no actual data to parse
Otherwise we'd be working with a NULL buffer and cause various critical
warnings along the way.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/1104
2019-10-23 11:32:56 +00:00
Tim-Philipp Müller
f218ec2794 Remove autotools build system 2019-10-14 13:54:27 +01:00
Vivia Nikolaidou
f7626c1f2a errorignore: Added convert-error signal
The convert-error signal is emitted whenever we get a GstFlowReturn
other than GST_FLOW_OK. The handler can then decide what to convert that
into - for instance, return the same GstFlowReturn to not convert it.
The default handler will act according to the ignore-error,
ignore-notlinked, ignore-notnegotiated and convert-to properties. If a
handler is connected, these properties are ignored.
2019-09-24 15:44:25 +03:00
Matthew Waters
67e4684932 build: fix werror build with newer gcc
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstbin.h:27,
                 from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:35,
                 from ../gst/rtp/gstrtpsink.h:23,
                 from ../gst/rtp/gstrtpsink.c:49:
In function ‘gst_rtp_sink_start’,
    inlined from ‘gst_rtp_sink_change_state’ at ../gst/rtp/gstrtpsink.c:509:11:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstelement.h:422:18: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  422 |   gchar *__txt = _gst_element_error_printf text;                        \
../gst/rtp/gstrtpsink.c:476:3: note: in expansion of macro ‘GST_ELEMENT_ERROR’
  476 |   GST_ELEMENT_ERROR (self, RESOURCE, NOT_FOUND,
      |   ^~~~~~~~~~~~~~~~~
../gst/rtp/gstrtpsink.c: In function ‘gst_rtp_sink_change_state’:
../gst/rtp/gstrtpsink.c:477:37: note: format string is defined here
  477 |       ("Could not resolve hostname '%s'", remote_addr),
      |                                     ^~

In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstbin.h:27,
                 from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:35,
                 from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/rtp/gstrtpdefs.h:27,
                 from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/rtp/rtp.h:25,
                 from ../gst/rist/gstristsink.c:72:
In function ‘gst_rist_sink_setup_rtcp_socket’,
    inlined from ‘gst_rist_sink_start’ at ../gst/rist/gstristsink.c:658:10,
    inlined from ‘gst_rist_sink_change_state’ at ../gst/rist/gstristsink.c:801:13:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstelement.h:422:18: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  422 |   gchar *__txt = _gst_element_error_printf text;                        \
../gst/rist/gstristsink.c:595:3: note: in expansion of macro ‘GST_ELEMENT_ERROR’
  595 |   GST_ELEMENT_ERROR (sink, RESOURCE, NOT_FOUND,
      |   ^~~~~~~~~~~~~~~~~
../gst/rist/gstristsink.c: In function ‘gst_rist_sink_change_state’:
../gst/rist/gstristsink.c:596:37: note: format string is defined here
  596 |       ("Could not resolve hostname '%s'", remote_addr),
      |                                     ^~
2019-09-24 10:29:44 +10:00
Marc Leeman
f1aefb77e6 rtpmanagerbad: allow creation of elements at initialisation 2019-09-20 15:35:09 +00:00
Nicolas Dufresne
06d7a5ca3c ristsrc: Fix comment about odd/even ports
It is the RTP port that is even, and the RTCP port being +1 (hence odd).
2019-09-18 16:27:35 -04:00
VaL Doroshchuk
daa47b8dc1 GstViewfinderBin: Fix typo in videoscale's name element
If user's video sink has been changed, it is unable to fetch
videoscale element by name and link to the video sink.
2019-09-16 08:24:42 +00:00
Saunier Thibault
7a66b16d97 Import GstTranscoder 2019-08-28 13:02:13 +00:00
Olivier Crête
963dda3482 tsdemux: Make latency configurable
Allows for "low latency" mpeg-ts mode which is not standard, but somewhat common.
For this to work the sender has to put timestamps at a higher frequency than the spec requires.
2019-08-27 12:09:57 -04:00
Guillaume Desmottes
403cffeace h265parse: fix colorimetry in src caps if sink caps has no structure
We do want to include the colorimetry in the src caps if the sink caps
doesn't have any structure associated.
2019-08-27 06:06:01 +00:00
Guillaume Desmottes
e0d9722a1b h264parse: fix colorimetry in src caps if sink caps has no structure
We do want to include the colorimetry in the src caps if the sink caps
doesn't have any structure associated.
2019-08-27 06:06:01 +00:00
Aaron Boxer
40212aaf00 h265parse: add support for SEI registered user data 2019-08-26 18:14:17 -04:00
Aaron Boxer
b7558bd190 h264parse: use gstvideoparseutils to handle user data 2019-08-26 18:14:17 -04:00
Aaron Boxer
d5946fc804 mpegvideoparse: use gstvideoparseutils to handle user data 2019-08-26 18:14:17 -04:00
Aaron Boxer
22ec7fbbc2 videoparseutils: add new parser class 2019-08-26 18:14:17 -04:00
Mathieu Duponchelle
42adb02a10 docstrings: port ulinks to markdown links 2019-08-23 20:14:12 +02:00
Jan Schmidt
eaf918df03 tsdemux: Limit the maximum PES payload size
PES packets with size 0 are unbounded, and
could therefore overflow the 32-bit size
accumulator.

Add a 32MB limit, which is larger than
any PES packet should ever get. If one does,
then output a 32MB chunk and continue.
2019-08-21 18:07:02 +00:00
Matthew Waters
062ca5e55b h264parse: don't critical on VUI parameters > 2^31
A guint32 greater than 2^31 would be interpreted as negative by
gst_util_uint64_scale_int() and critical. Use the 64-bit integer version
of the function instead.
2019-08-20 18:12:56 +10:00
Aaron Boxer
a427b36f79 tsdemux: do not error if buffer size is invalid due to DISCONT
Don't signal a pipeline error when processing incomplete
j2pk PES packets that are too small. That can happen normally
during a DISCONT and shouldn't shut down the whole pipeline
2019-08-16 10:26:04 -04:00
Mathieu Duponchelle
61a7707eca atscmux: fix AC-3 stream id
According to ATSC A/52, Annex A, section 4.2:

The value of stream_id in the PES header shall be 0xBD
(indicating private_stream_1)
2019-08-13 21:36:06 +00:00
OleksandrKvl
f5a3d7b497 pcapparse: fix DISCONT flag setting
DISCONT flag should be set only for first packet.
Fixes #1047.
2019-08-13 18:54:54 +03:00
Sebastian Dröge
b0470e2c98 mxfdemux: Also allow picture essence element type 0x05 for VC-3
It's found like this in various files out there even if it does not
conform to SMPTE 2019-4.
2019-08-12 18:19:46 +00:00
Olivier Crête
f175b05c1d rist: Fix documentation 2019-08-09 17:45:51 +00:00
Olivier Crête
9b53ee76fd rist: Document stats-internal unit 2019-08-09 17:45:51 +00:00