Commit graph

6286 commits

Author SHA1 Message Date
Aurélien Zanelli
2071c13936 vc1parse: fix malformed sequence layer header and STRUCT_C
This commit fix several issues with sequence layer header forging on
update_caps():
- 0x00000004 unsigned integer is before STRUCT_C.

- Set reserved bits of STRUCT_C to their values for simple/main
  profiles in sequence layer header format and ASF header format.

- Sequence layer shall be represented as a sequence of 32 bits unsigned
  integers and shall be serialized in little-endian byte order except
  for STRUCT_C which shall be serialized in big-endian byte-order.

See SMPTE 421M Annex L for more details about sequence layer format.

https://bugzilla.gnome.org/show_bug.cgi?id=736474
2014-09-12 16:10:50 +03:00
Aurélien Zanelli
77b850c08d tsdemux: fix trivial coding style issue
https://bugzilla.gnome.org/show_bug.cgi?id=736531
2014-09-12 11:31:59 +02:00
Aurélien Zanelli
6d767a09d8 tsdemux: fix overflow of packet_length field of PESHeader
packet_length is defined as a guint16 in the PESHeader structure. This
definition match the specification. But since we add 6 bytes to the
packet_length value (length of start_code + stream_id + packet_length),
we can overflow the guint16 when the value in the PES header is greater
than 65529.
So use a guint32 instead of a guint16 to avoid overflow.

https://bugzilla.gnome.org/show_bug.cgi?id=736490
2014-09-12 11:27:52 +02:00
Belozorov Semen
00d0ff6c8e mpegpsmux: fix memory leak when converting H.264 avc to byte-stream format
Fix memory leak for input stream with caps "video/x-h264,stream-format=avc".

https://bugzilla.gnome.org/show_bug.cgi?id=736426
2014-09-11 14:28:23 +01:00
Tim-Philipp Müller
8990a61221 aiffmux: allocate byte writer on stack 2014-09-10 19:27:27 +01:00
Tim-Philipp Müller
c08c99b894 asfmux: allocate byte readers on the stack 2014-09-10 19:19:32 +01:00
Jesper Larsen
ff444dbf6d tsdemux: clear mutex resources in dispose
https://bugzilla.gnome.org/show_bug.cgi?id=736390
2014-09-10 18:53:47 +01:00
Tim-Philipp Müller
7b8bd35d18 Fix up one-element lists in template caps 2014-09-10 17:24:39 +01:00
Thiago Santos
e03e6c1571 Revert "dataurisrc: Remove unnecessary else if condition"
This reverts commit 3024ae9c38.

The *buf can be NULL or not depending if the caller of gst_pad_get_range
function provided or not a buffer.
2014-09-07 01:30:16 -03:00
Vineeth T M
d089c53704 aiffparse: Fix handling of 64 bit floating point data
In gst_aiff_parse_create_caps if and else-if conditions
are duplicated.

https://bugzilla.gnome.org/show_bug.cgi?id=736090
2014-09-05 10:45:57 +03:00
Vineeth T M
3024ae9c38 dataurisrc: Remove unnecessary else if condition
In gst_data_uri_src_create(), buf cannot be NULL, hence
else if (*buf != NULL) will be invalid so removing the
else if condition and adding a check to unreference buf
in else condition, just in case

https://bugzilla.gnome.org/show_bug.cgi?id=735861
2014-09-04 11:31:56 +03:00
Vineeth T M
76e099e5b9 dataurisrc: Make get_uri() threadsafe
https://bugzilla.gnome.org/show_bug.cgi?id=735861
2014-09-02 09:56:41 +03:00
Vineeth T M
114ee3355a zebrastripe: Refactor to remove duplicate code
gst_zebra_stripe_transform_frame_ip_planarY
gst_zebra_stripe_transform_frame_ip_YUY2
gst_zebra_stripe_transform_frame_ip_AYUV
all above 3 functions do the same functionality except for offset and pixel stride.
Hence moving the functionality to a single funtion.

https://bugzilla.gnome.org/show_bug.cgi?id=735032
2014-09-01 10:57:45 -03:00
Tim-Philipp Müller
d8b5675ddc dvbsuboverlay: remove code that can't be reached
If this code could ever be reached, it would leak
memory (CID 1231977), but gst_caps_get_features()
never returns NULL, so that can't happen.
2014-08-29 19:24:52 +01:00
Tim-Philipp Müller
ea7d5027a0 h264parse: fix up handling of input caps corner cases
Do more elaborate validation of the input caps: what fields
are required and/or not allowed. Don't assume AVC3 format
input without codec_data field is byte-stream format. Fix
up some now-unreachable code (CID 1232800).
2014-08-28 20:18:17 +01:00
Sebastian Dröge
25b5da587d rawparse: Reset negotiation state when going back to READY
After going back to READY we can accept new format settings again.
2014-08-28 11:37:56 +03:00
Blake Tregre
105b52e88a rfbsrc: Clamp out of bounds resolutions to prevent segfaults
https://bugzilla.gnome.org/show_bug.cgi?id=726801
2014-08-28 09:53:17 +03:00
Thiago Santos
9b6c8a48b4 h264parse: don't consider unknown stream-format as avc
It should try to use bytestream in these cases that the format
is set to _FORMAT_NONE as it seems that is what the 'else' clause
for bytestream can handle (by defaulting to _FORMAT_BYTESTREAM).
2014-08-25 13:37:57 -03:00
Thiago Santos
52257fe538 tsdemux: remove pads when resetting the element
Otherwise the pads will be there if it is restarted and the stream
can be a completely different one.

https://bugzilla.gnome.org/show_bug.cgi?id=734394
2014-08-19 00:02:33 -03:00
Vineeth T M
8caf5b7360 scenechange: fix crash on startup
gst_video_frame_map() was using the oldinfo GstVideoInfo
before it's been populated, resulting in a crash right
at the start.

https://bugzilla.gnome.org/show_bug.cgi?id=734763
2014-08-14 20:27:00 +01:00
Thibault Saunier
03031037fa tsdemux: Do not tweak segments on reverse playback
We can't compare the first buffer start and the segment start in that
case... playback is going backward!

https://bugzilla.gnome.org/show_bug.cgi?id=734445
2014-08-13 17:46:55 +02:00
Thiago Santos
eee178988a dvbsuboverlay: improve negotiation
Check if downstream supports overlay meta, if possible use it and
if not fallback to no-overlay caps

https://bugzilla.gnome.org/show_bug.cgi?id=733916
2014-08-11 11:35:01 -03:00
Thiago Santos
627b6ac461 dvbsuboverlay: always intersect with the filter in getcaps
Avoids returning unsupported caps to peers

https://bugzilla.gnome.org/show_bug.cgi?id=733916
2014-08-11 11:33:28 -03:00
Sebastian Rasmussen
8ee4e198cc inter: Unref bus after usage
gst_pipeline_get_bus() returns a reference to a bus that needs to
be unreferenced after usage.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734525
2014-08-11 10:02:44 +02:00
Sebastian Rasmussen
5d1fedd18e wrappercamerabinsrc: Unref elements after usage
gst_bin_get_by_name() and gst_bin_get_by_interface() both return
references to elements that need to be unreferenced after usage.

https://bugzilla.gnome.org/show_bug.cgi?id=734524
2014-08-10 14:17:55 +01:00
Sebastian Rasmussen
7731f3b36e interlace: fix caps refcounting
tcaps was unrefed when it shouldn't have been unrefed
in some cases.

https://bugzilla.gnome.org/show_bug.cgi?id=734531
2014-08-10 12:04:38 +01:00
Sebastian Rasmussen
128cbf4f57 dvbsuboverlay: Avoid leaking copy of caps object
gst_pad_get_pad_template_caps() returns a reference which is unreferenced,
so creating a copy using gst_caps_copy() results in a reference leak.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=734528
2014-08-10 11:56:56 +01:00
Sebastian Dröge
54c61efe44 mpegtspacketizer: Store PCR time/byte offsets in 64 bit integers
32 bit integers are going to overflow, especially the PCR offset to
the first PCR will overflow after about 159 seconds. This makes playback
of streams stop at 159 seconds as suddenly the timestamps are starting
again from 0. Now we have a few more years time until it happens again
and 64 bits are too small.
2014-08-05 11:45:55 +02:00
Sebastian Dröge
cb293af93d Revert "mpegtspacketizer: Convert PCR times to GStreamer times before comparing them against 500 * GST_MSECOND"
This reverts commit 9f186c6ab3.

That commit was actually completely wrong, nevermind.
2014-08-05 10:42:28 +02:00
Sebastian Dröge
9f186c6ab3 mpegtspacketizer: Convert PCR times to GStreamer times before comparing them against 500 * GST_MSECOND
Otherwise it will believe to detect PCR gaps already when there's a very small
gap of a few milliseconds, breaking playback of some files.
2014-08-05 10:37:41 +02:00
Thiago Santos
1685c45465 mpegtspacketizer: avoid timestamp overflows
Cause timing to break in the pipeline that can lead to a stall

https://bugzilla.gnome.org/show_bug.cgi?id=733837
2014-08-01 10:37:15 -03:00
Thiago Santos
a70764df5a wrappercamerabinsrc: do not give references to probes
They are kept until the probes are removed but they will never be
removed as the refcount of the element won't get to 0 because the
probes own references (cyclic refs). As the probes should only be
running as long as the element is running there is no need to
secure a ref for them.

Removes 3 leaked refs of wrappercamerabinsrc
2014-07-26 13:27:51 -03:00
Thiago Santos
455baef448 camerabin: use gst_object_ref to make it easier to track refs
Helps debugging
2014-07-26 12:46:01 -03:00
Thiago Santos
34b90db967 wrappercamerabinsrc: unref request pads
Do not forget to unref output-selector requested pads
2014-07-26 12:38:42 -03:00
Thiago Santos
2bfd106ef6 jpegparse: port to baseparse
https://bugzilla.gnome.org/show_bug.cgi?id=728356
2014-07-24 17:07:45 -03:00
Thiago Santos
65676a2f15 wrappercamerabinsrc: only flush buffers if renegotiation is needed
This avoid extra overhead when taking sequential pictures that woudln't
need renegotiation
2014-07-23 13:58:26 -03:00
Thiago Santos
19d5be4c3a camerabin: handle EOS on the pipeline
Make camerabin handle EOS to the pipeline to allow standard pipeline
close where an EOS is sent to the whole pipeline before setting it to NULL.
2014-07-23 13:58:26 -03:00
Mathieu Duponchelle
29dd215649 tsdemux: Do not scan for keyframe when in push mode.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=733490
2014-07-22 15:51:21 +02:00
Mathieu Duponchelle
39d7d438c6 tsdemux: Do not scan for a keyframe in non-accurate mode.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=733490
2014-07-22 15:50:59 +02:00
Thiago Santos
6c9fdb52e1 gdppay: remove obsolete code
Buffers have no caps in 1.0
2014-07-22 08:51:32 -03:00
Thiago Santos
ea7b843244 gdppay: put all sticky events in streamheader
Use the sticky events to compose the streamheader as they are the
ones that are persisted to config new pads linked. Instead of storing
them ourselves rely on the pad storage that already orders it for us

https://bugzilla.gnome.org/show_bug.cgi?id=732596
2014-07-22 08:51:32 -03:00
Sanjay NM
00b33e2068 pnmenc: Port PNM Encoder to use GstVideoEncoder Class
https://bugzilla.gnome.org/show_bug.cgi?id=731943
2014-07-22 06:19:48 -03:00
Sanjay NM
15a2da8ba7 pnmdec: Patch to handle max value
Convert the image values from 0-maxvalue to 0-255 when
'decoding' the pnm image

https://bugzilla.gnome.org/show_bug.cgi?id=731773
2014-07-21 17:23:47 -03:00
Thiago Santos
b39c01baa1 wrappercamerabinsrc: set src to ready when there are no pending buffers
Setting to ready will block waiting for buffers to be reclaimed, so flush
before setting to null to make sure no buffers are pending

https://bugzilla.gnome.org/show_bug.cgi?id=733072
2014-07-17 10:06:09 -03:00
Sebastian Rasmussen
e79e96e59d mxfmux: Avoid taking unnecessary ref
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=733123
2014-07-16 16:47:21 +02:00
Nicolas Dufresne
362951b9ec wrappercamerabinsrc: Fix caps filter caps proxying
The notify signal is triggered when caps is changed. But instead of
proxying the fixed caps, we query for the caps. Hence, when we go to
READY state, we endup setting template caps on the proxied caps
filter instead of NULL, which leads to negoitation failure. Correctly
proxy NULL caps if this is the new caps. Fixes not negotiated error
when running in cheese. Also fix a leak of caps string in one of the
trace.

https://bugzilla.gnome.org/show_bug.cgi?id=732741
2014-07-11 11:05:08 -04:00
Nicolas Dufresne
5e4e572335 camerabin2: Flush downstream after setting src to READY
v4l2src requires all buffers to come back in order to cleanly stop
streaming. Flushing the pipline should force all buffers to come
back.

https://bugzilla.gnome.org/show_bug.cgi?id=732741
2014-07-10 18:34:21 -04:00
Sebastian Rasmussen
1f371ce855 aiffparse: Print invalid fourcc in error message in hex
Previously this was printed as characters which caused later processing
of the error message to sometimes warn about non-UTF-8 characters.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732715
2014-07-04 17:46:58 +01:00
Sebastian Dröge
aa6ee77297 mpegtspacketizer: Don't dereference NULL if we have no PCR yet
Can happen sometimes if the duration is requested before we
received enough data with a PCR.
2014-07-03 14:15:36 +02:00
Jan Schmidt
c103f7134b tsdemux: Add locking around mpegtspacketiser groups.
Otherwise occasionally DURATION queries can crash, if they happen at
the wrong moment.
2014-07-03 21:46:28 +10:00