Sebastian Dröge
f74524b58d
videodecoder: Also negotiate with downstream if needed before handling a GAP event
2015-05-08 15:07:56 +02:00
Sebastian Dröge
21b5741251
videodecoder: Try to be smarter when clipping buffers without duration/framerate to the segment
...
2 second frame duration is rather unlikely... but if we don't clip
away buffers that far before the segment we can cause the pipeline to
lockup. This can happen if audio is properly clipped, and thus the
audio sink does not preroll yet but the video sink prerolls because
we already outputted a buffer here... and then queues run full.
In the worst case we will clip one buffer too many here now if no
framerate is given, no buffer duration is given and the actual
framerate is less than 0.5fps.
Fixes seeking on HLS/DASH streams, when seeking into the middle of
fragments and having no framerate/buffer duration.
2015-05-06 12:42:33 +02:00
Guillaume Desmottes
f90bb8140d
navigation: fix structure leak if subclass doesn't implement send_event()
...
The send_event() implementation is supposed to consume @structure.
https://bugzilla.gnome.org/show_bug.cgi?id=748903
2015-05-05 13:54:08 -03:00
Sebastian Dröge
1a2c590cd2
rtpbasedepayload: Add some debug output
2015-05-05 13:16:05 +02:00
Aurélien Zanelli
c52adc8fcc
video: add NV61 format support
...
https://bugzilla.gnome.org/show_bug.cgi?id=746466
2015-05-04 20:37:59 +01:00
Jan Schmidt
62bdb117ac
video: check colorimetry and chroma_site equality in gst_video_info_is_equal()
...
Add VideoInfo accessors for colorimetry and chroma_site and use them
when checking the equality of two GstVideoInfo
2015-05-04 13:16:27 +10:00
Jan Schmidt
14fafc74a3
video-color: Add gst_video_colorimetry_is_equal()
...
Add a function for comparing the equality of 2 colorimetry
structures.
2015-05-04 13:16:27 +10:00
Sreerenj Balachandran
6af56187e8
pbutils: Use more strict profile checking for hevc
...
Use the profile_idc value to set the profile string in caps.
Don't use compatibility flags for this purpose.
https://bugzilla.gnome.org/show_bug.cgi?id=747613
2015-04-30 21:42:34 +02:00
Ravi Kiran K N
955dc5258f
video-converter: Remove unused macro
...
Remove unused macro GET_TMP_LINE
https://bugzilla.gnome.org/show_bug.cgi?id=748687
2015-04-30 20:24:32 +01:00
Tim-Philipp Müller
44e571c5e9
navigation: sprinkle some since markers and add new API to .def file
...
https://bugzilla.gnome.org/show_bug.cgi?id=747245
2015-04-29 15:30:26 +01:00
Edward Hervey
01e2a2152d
video: Add a new "event" navigation message type
...
This will be useful for elements that wish to post unhandled navigation
events on the bus to give the application a chance to do something with
it
https://bugzilla.gnome.org/show_bug.cgi?id=747245
2015-04-29 15:47:49 +02:00
Wim Taymans
b3db5883e1
video-info: expose InterlaceMode conversion to/from string
...
Expose the methods used to convert a GstVideoInterlaceMode to and
from a string.
2015-04-28 12:01:02 +02:00
Sebastian Dröge
9e480d11a2
audio: Change the remaining "samples" in the ::delay() vfunc docs to "frames"
...
https://bugzilla.gnome.org/show_bug.cgi?id=748289
2015-04-27 10:08:17 +02:00
Sebastian Dröge
531b9ba951
audio: The delay vfunc returns the number of frames, not samples
...
https://bugzilla.gnome.org/show_bug.cgi?id=748289
2015-04-26 21:08:14 +02:00
Tim-Philipp Müller
c680e324bc
Remove obsolete Android build cruft
...
This is not needed any longer.
2015-04-26 18:42:34 +01:00
Guillaume Desmottes
2b0b08b74c
xmptag: fix invalid reads in GST_DEBUG statement
...
Don't try to print a string that is not NUL-terminated. This
log line does not really seem useful so let's just drop it.
https://bugzilla.gnome.org/show_bug.cgi?id=748413
2015-04-24 17:32:51 +01:00
Wonchul Lee
5dffb8a311
audiodecoder: Add sink and src query virtual method
...
API: GstAudioDecoderClass::src_query()
API: GstAudioDecoderClass::sink_query()
https://bugzilla.gnome.org/show_bug.cgi?id=747293
2015-04-23 19:29:20 +01:00
Ravi Kiran K N
0ff9b1e276
video-converter: n_lines member should be a guint not a boolean
...
https://bugzilla.gnome.org/show_bug.cgi?id=748348
2015-04-23 13:30:45 +01:00
Wim Taymans
0588c9a53f
video-scaler: fix YUY2 scaling some more
...
Take into account the different steps between Y and UV when calculating
the line size for vertical resampling or else we might not resample
enough pixels and leave bad lines.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=747790
2015-04-21 13:31:44 +02:00
Wim Taymans
8f82ee70f9
video-scaler: scale enough pixels in YUY2 (and friends) mode
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=747790
2015-04-21 13:16:29 +02:00
Ravi Kiran K N
e78d44ac0b
video-converter: Remove unused variables
...
Remove unused variables n_taps, max_taps in setup_scale()
https://bugzilla.gnome.org/show_bug.cgi?id=748021
2015-04-17 19:12:00 +01:00
Thiago Santos
befafccf35
video: add missing part of documentation text
2015-04-17 14:17:44 -03:00
Guillaume Desmottes
d7d8fc5652
discoverer: fix GstToc leak when parsing toc messages
...
gst_message_parse_toc() returns a reffed GstToc which is owned by the
GstDiscovererInfo. But we have to make sure we unref its previous value before
setting the new one.
https://bugzilla.gnome.org/show_bug.cgi?id=747103
2015-04-17 14:49:01 +01:00
Wim Taymans
7c059b4530
allocators: make GstFdAllocator non-abstract
...
Make the GstFdAllocator non-abstract because it is perfectly possible
to make memory from a generic fd. Mark the memory as simply "fd".
2015-04-17 09:31:40 +02:00
Sebastian Dröge
6539d1da29
videodecoder: Break instead of return if default negotiation on GAP events fails
...
Otherwise we're going to leak the event.
2015-04-11 19:52:50 +02:00
Ilya Konstantinov
d668b511d1
appsrc: docs grammar fixes
...
https://bugzilla.gnome.org/show_bug.cgi?id=747516
2015-04-09 20:39:42 +01:00
Vincent Penquerc'h
5cb40d7320
audiobasesink: fix ring buffer leak on open failure
2015-04-09 13:00:58 +01:00
Vincent Penquerc'h
4e6b917ba3
audiobasesrc: fix ring buffer leak on open failure
2015-04-09 13:00:57 +01:00
Sebastian Dröge
a21795260f
audiodecoder: Don't post error messages while holding the stream lock
2015-04-08 20:49:39 -07:00
Sebastian Dröge
9196c3dcca
audiodecoder: Don't get and parse the current srcpad caps
...
We only get here if we don't have any srcpad caps, and we're going
to override the GstAudioInfo a few lines below anyway without ever
using it if for whatever reason we get caps here.
2015-04-08 20:49:39 -07:00
Sebastian Dröge
f268f2be92
videodecoder: Try to invent default caps instead of setting none at all when getting a GAP event before CAPS
...
Otherwise we would forward the GAP event without ever providing any caps,
which then would make decodebin expose a srcpad without any caps set. That's
confusing for applications and can lead to all kinds of interesting bugs.
Instead do the same as already is done in GstAudioDecoder, and try to invent
caps based on the sinkpad caps and the caps allowed by downstream and the
srcpad template caps.
https://bugzilla.gnome.org/show_bug.cgi?id=747190
2015-04-08 20:49:39 -07:00
Tim-Philipp Müller
dfc34c5841
rtp: rtcpbuffer: fix typo in enum
...
and in docs. Spotted by Rob Swain.
2015-04-07 16:44:20 +01:00
Sebastian Dröge
0c72d0acdf
{audio,video}decoder: Forward SEGMENT_DONE events immediately and drain decoders
...
Otherwise we're going to wait with draining until the next data comes, which
is a bit suboptimal and might take a long time... or maybe never happens.
2015-04-06 19:20:51 -07:00
Tim-Philipp Müller
99929b7ffa
tag: exiftag: don't try to convert utf-8 to latin1 if string is ASCII already
...
Bypass g_convert/iconv if there's nothing to convert. That way,
conversion won't fail on systems where iconv doesn't support
converting utf-8 to latin1 and there's nothing to convert.
https://bugzilla.gnome.org/show_bug.cgi?id=723252
2015-04-03 21:03:50 +01:00
Vincent Penquerc'h
2954813b86
audio,video: use gst_segment_is_equal instead of memcmp
...
memcmp will blindly compare the reserved fields, as well as any
padding the compiler may choose to sprinkle in GstSegment.
Fixes valgrind complaints in unit tests, as well as some found via
https://bugzilla.gnome.org/show_bug.cgi?id=738216
2015-04-03 12:09:41 +01:00
Edward Hervey
3eb35c77cc
introspection: Don't use g-ir-scanner cache at compile time
...
It pollutes user directories and we don't need to cache it
https://bugzilla.gnome.org/show_bug.cgi?id=747095
2015-03-31 11:21:43 +02:00
Vincent Penquerc'h
e2a9f0ef4e
id3v2: ignore RVA2 tags with more than 64 peak bits
...
The spec for this does not say nor imply how this should be
interpreted. The previous code would try to shift by 64 bits,
which is undefined.
Coverity 1195119
https://bugzilla.gnome.org/show_bug.cgi?id=727955
2015-03-30 12:33:06 +01:00
Nicola Murino
f23736d52f
appsrc: handle a sample not having caps or a buffer more gracefully
...
https://bugzilla.gnome.org/show_bug.cgi?id=746908
2015-03-28 12:00:38 +00:00
Nicolas Dufresne
b7facbaf22
basedepay: Handle initial gaps and no clock-base
...
When generating segment, we can't assume the first buffer is actually
the first expected one. If it's not, we need to adjust the segment to
start a bit before.
Additionally, we if don't know when the stream is suppose to have
started (no clock-base in caps), it means we need to keep everything in
running time and only rely on jitterbuffer to synchronize.
https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-27 19:03:41 -04:00
Song Bing
992101f82a
videoencoder: Keep sticky events around when doing a soft reset
...
The current code will first discard all frames, and then tries to copy
all sticky events from the (now discarded) frames. Let's change the order.
https://bugzilla.gnome.org/show_bug.cgi?id=746865
2015-03-27 09:46:28 +01:00
David Schleef
8b0329c45d
riff: Add FLLR tag
2015-03-26 18:03:12 -07:00
Nicolas Dufresne
802ad73103
basedepayload: Fix generated segment
...
This fixes playback position in RTSP.
https://bugzilla.gnome.org/show_bug.cgi?id=635701
2015-03-26 17:43:47 -04:00
Luis de Bethencourt
90d428a553
Revert "fdmemory: freed pointer will always be 0"
...
This reverts commit 7fbcefb753
.
2015-03-24 10:46:44 +00:00
Luis de Bethencourt
7fbcefb753
fdmemory: freed pointer will always be 0
2015-03-24 10:20:05 +00:00
Wim Taymans
9f0b9eeb58
video-convert: fix clamping for 16 bits alpha mult
2015-03-19 13:31:21 +01:00
Tim-Philipp Müller
5d456c7adc
video-frame: fix height/width assertions
...
As commit 274984e8
states:
When doing CROP META it is expected that the width and/or height
in the GstVideoMeta is bigger or equal to the caps negotiated size.
https://bugzilla.gnome.org/show_bug.cgi?id=741030
2015-03-18 20:40:42 +00:00
Wim Taymans
3205e90e83
fdmemory: make a base class for allocating fd-backed memory
...
Make a base class that can help with allocating fd-backed memory.
Make dmabuf extend from the base class.
We can now make methods to check if memory has an fd and get the fd for
all the different types of fd-backed memory.
2015-03-18 15:12:03 +01:00
Wim Taymans
e6cb520036
fdmemory: add flags to control behaviour
...
Add some flags to the GstFdMemory to control how memory is mapped and
unmapped.
2015-03-15 17:27:33 +01:00
Wim Taymans
4e6fba8604
fdmemory: add fd backed GstMemory to separate file
...
Make a separate file for the code to handle the fd backed memory.
This would make it possible later to add other allocators also using
fd backed memory.
2015-03-15 15:26:28 +01:00
Arun Raghavan
592fc9cdba
audioringbuffer: Log with the ringbuffer object where possible
2015-03-13 23:24:58 +05:30
Nicolas Dufresne
274984e83b
video-frame: Relax width/height assertion
...
When doing CROP META it is exepcted that the width and/or height in the
GstVideoMeta is bigger or equal to the caps negotiated size.
2015-03-13 10:30:43 +00:00
Nicolas Dufresne
c5824f1b43
videopool: Choose the biggest buffer size
...
We should respect what has been negotiated.
2015-03-13 10:29:00 +00:00
Jan Schmidt
3d60fb654b
docs: Add new video functions and objects. Cleanup a little.
...
Add GstVideoChroma, GstVideoDither, GstVideoScaler and friends to the docs.
Remove and clean up a few obsolete/deleted refs and typos
2015-03-13 01:08:25 +11:00
Wim Taymans
3cd2eb5847
video-converter: fix border handling of YUY2 and friends
...
Don't draw the border in groups of 4 pixels for YUY2 but instead in
groups of 2 with alternating U and V. This avoids a crash on odd width
borders.
2015-03-11 09:48:20 +01:00
Wim Taymans
757669481c
video-converter: force yuv conversion for border
...
Make sure we always do yuv conversion for the border.
2015-03-11 09:47:23 +01:00
Wim Taymans
dd5fa311a1
video-format: fix A422 subsampling description
2015-03-10 17:29:51 +01:00
Wim Taymans
0d333d8d44
video-converter: add table based matrix8 implementation
...
Based on patch from Mozzhuhin Andrey <nopscmn at gmail.com>
Add a table based matrix8 multiplication implementation. The algorithm
does not do any clipping so we need to make sure we never call this on
input that might need to be clipped. In general, this algorithm is
2 times faster than the orc optimized one and would be chosen for all
RGB -> YUV conversions and some YUV->YUV and RGB->RGB conversions.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732186
2015-03-10 15:22:17 +01:00
Sebastian Dröge
06fd6f2f63
video: Add support for 10 bit planar AYUV formats
2015-03-10 10:31:28 +01:00
Tim-Philipp Müller
c53ba4beeb
Fix double semicolons
2015-03-10 09:27:08 +00:00
Wim Taymans
62ff9b8bca
video-info: validate parsed colorimetry
...
Validate the parsed colorimetry and reset to defaults when we get RGB
with a matrix or YUV without a matrix.
2015-03-09 16:28:02 +01:00
Wim Taymans
6ee67a8aa1
video-converter: detect identity matrix
...
Do nothing if we have an identity matrix conversion.
2015-03-09 16:02:17 +01:00
Wim Taymans
cf572ae2cb
video-info: use default colorimetry on error
...
When we fail to parse the colorimetry property, fall back to the default
colorimetry for the format and dimension instead of leaving things
undefined.
2015-03-09 16:02:17 +01:00
Luis de Bethencourt
fedc1dba1a
videoencoder: unused value
...
Value set in ret is immediately overwritten in the next line outside of the if
block. Run reset but don't store return.
CID #1226470
2015-03-09 11:25:47 +00:00
Wim Taymans
8296cdbfd5
video-converter: only convert to/from rgb when needed
...
Only use the YUV->RGB matrix when we have YUV as input and only use the
matrix when we need to make YUV output.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745780
2015-03-09 12:16:56 +01:00
Sebastian Dröge
8f13a31bae
rtpbuffer: Link to an explanation why the seqnum comparison function does the right thing even for wraparounds
2015-03-09 11:12:46 +01:00
Mark Nauwelaerts
f134072c66
videodecoder: only return EOS upon clipping if applicable
...
See also https://bugzilla.gnome.org/show_bug.cgi?id=709224
2015-03-07 20:12:23 +01:00
Mark Nauwelaerts
eeeb2eab82
audiodecoder: only return EOS upon clipping if applicable
...
See also https://bugzilla.gnome.org/show_bug.cgi?id=709224
2015-03-07 20:10:31 +01:00
Sebastian Dröge
13a93575e1
video: Update orc generated C files
2015-03-07 16:49:07 +01:00
Wim Taymans
7b6278b7e4
video-converter: add transfer full annotation for config
2015-03-06 12:54:56 +01:00
Ravi Kiran K N
6bd458abc1
video-converter: correct right-border location for YUY2, YVYU, UYVY
...
Remove 'r_border /= 2' in convert_fill_border(). It doesn't
take the right border to correct location.
https://bugzilla.gnome.org/show_bug.cgi?id=745719
2015-03-06 12:27:18 +01:00
Wim Taymans
31a3e6c9f1
video-converter: avoid scaler when size is unchanged
2015-03-05 09:52:18 +01:00
Wim Taymans
6602861d00
video-scaler: add horizontal 2tap u16 orc function
...
Add slightly faster u16 horizontal resampler orc function.
2015-03-04 16:45:35 +01:00
Wim Taymans
e0a192d3dd
video-converter: don't reuse the input line when adding borders
...
When we need to add borders, we need a writable input line, so
don't reuse the source memory directly.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745207
2015-03-04 12:29:45 +01:00
Arun Raghavan
557c2c9be1
audiobasesink: Reset audio clock if necessary
...
When the ringbuffer is deactivated and then acquired, if the audio clock
provided by the sink gets reset to zero, we need to add an offset to the
clock to make sure that subsequent samples are written out at the right
times. While we need to leave this to derived classes to take care of
when they provide their own clock (since that clock may or may not be
reset to zero), we can do this ourselves if we know the provided clock
is our own (which does reset to zero on a re-acquire).
2015-03-03 23:26:54 +05:30
Wim Taymans
4643d34a7a
video-converter: avoid making scalers for outsize == 0
2015-03-02 16:42:23 +01:00
Wim Taymans
b2a7ac2766
video-converter: v-resample enough pixels
...
When we are using the fast linear resampler, use the ->inc to calculate
the first and last pixel we need so that we can do vertical resampling
on the right amount of pixels.
2015-03-02 16:33:09 +01:00
Wim Taymans
0062dadc35
video-orc: fix unpack functions for RGB/RGB15 on BE
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745337
2015-03-02 15:07:34 +01:00
Wim Taymans
d1a9eacb75
video-format: more fixes for big endian
2015-03-02 13:27:23 +01:00
Wim Taymans
569ca5770c
video-format: add big-endian versions of RGB/BGR 15/16 pack/unpack
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745337
2015-03-02 12:27:24 +01:00
Olivier Crête
6046421ecc
pbutils: description: Make static strings static
...
Otherwise, they're not guaranteed to still be valid when leaving the scope.
https://bugzilla.gnome.org/show_bug.cgi?id=673976
2015-02-27 15:08:50 -05:00
Luis de Bethencourt
7175417f7e
video-converter: remove check for below zero for unsigned int
...
CLAMP checks both if value is '< 0' and '> max'. Value will never be a negative
number since it in an unsigned integer. Removing that check and only checking
if it is bigger than max and setting it appropriately.
CID #1271606
2015-02-26 14:48:51 +00:00
Wim Taymans
621292e754
video-converter: we can use the scaler without scalers to copy
2015-02-25 17:00:34 +01:00
Wim Taymans
e1715f7728
video-converter: only make a scaler when we are scaling
...
Only make a scaler when we are actually doing any scaling. Without
scalers, the scale function will simply do a copy.
2015-02-25 16:50:02 +01:00
Wim Taymans
330fb44a6f
video-scaler: add support for copy
...
When no scalers are given, simply do a copy of the requested area.
2015-02-25 16:49:20 +01:00
Wim Taymans
3046935e03
video-converter: activate scaler fastpath depending on method
...
Only activate the scaler fastpath for x2 up and downscale when the
scaler method is respectively nearest and linear because that is what
those fastpaths really implement.
2015-02-25 16:15:52 +01:00
Wim Taymans
9e8799924b
video-scaler: add scaler optimization
...
If we are vertically downscaling, it is better to first downscale and
then do the horizontal scaling in most cases.
2015-02-25 15:33:26 +01:00
Wim Taymans
4d8c277656
video-scaler: remove unused case
2015-02-25 15:32:57 +01:00
Wim Taymans
495873298c
video-converter: don't overwrite border alpha
...
Let border alpha and image alpha be independent.
2015-02-25 11:39:20 +01:00
Wim Taymans
c4f071546d
video-converter: use 1.0 as default alpha
2015-02-24 17:33:57 +01:00
Wim Taymans
5077a5e3af
video-converter: add alpha handling
...
Add support for alpha. Make it possible to copy, set and multiply the
alpha value of a frame during conversion.
Set the border alpha to 0xff by default.
Go over some of the fastpaths and add alpha handling.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=745006
2015-02-24 17:29:18 +01:00
Wim Taymans
5744b7995c
video-converter: fix chroma subsampling
...
Also adjust the output line number with the offset.
2015-02-24 17:29:18 +01:00
Wim Taymans
cb5ec197da
video-converter: disable fastpath when scaling and gamma
...
Disable the fastpath when scaling and doing gamma remap.
2015-02-24 17:29:18 +01:00
Wim Taymans
bf916a244d
video-converter: don't do gamma on alpha channel
...
The alpha channel is not supposed to be gamma encoded.
2015-02-24 17:29:18 +01:00
Tim-Philipp Müller
0b0c667e57
video-converter: minor docs fix
2015-02-24 12:38:10 +00:00
Jan Schmidt
b3053925ac
audiodecoder: Don't send pending events before decode
...
Make sure to update the output segment to track the segment
we're decoding in, but don't actually push it downstream until
after buffers are decoded.
https://bugzilla.gnome.org/show_bug.cgi?id=744806
2015-02-24 01:36:44 +11:00
Jan Schmidt
af26201429
videodecoder: Add drain() vfunc
...
drain() is a new vfunc which does what finish() does, while
explicitly requiring the decoder be able to continue processing
data afterward.
https://bugzilla.gnome.org/show_bug.cgi?id=734617
2015-02-24 01:36:44 +11:00
Mark Nauwelaerts
ccee86a7dd
Revert "videodecoder: drain current segment upon new one to ensure correct flow return"
...
This reverts commit cc1b4eaf9e
.
See https://bugzilla.gnome.org/show_bug.cgi?id=734617
2015-02-22 16:59:08 +01:00
Mark Nauwelaerts
c321b6bd81
Revert "audiodecoder: drain current segment upon new one to ensure correct flow return"
...
This reverts commit 696b8cdc40
.
See https://bugzilla.gnome.org/show_bug.cgi?id=734617
2015-02-22 16:58:33 +01:00
Mark Nauwelaerts
cc1b4eaf9e
videodecoder: drain current segment upon new one to ensure correct flow return
...
See also https://bugzilla.gnome.org/show_bug.cgi?id=709224
2015-02-22 13:23:44 +01:00
Mark Nauwelaerts
696b8cdc40
audiodecoder: drain current segment upon new one to ensure correct flow return
...
See also https://bugzilla.gnome.org/show_bug.cgi?id=709224
2015-02-22 13:23:44 +01:00