Commit graph

2028 commits

Author SHA1 Message Date
Sebastian Dröge
0a1d85c233 rtp: Unref events if the parent element disappeared or has no event handler implemented 2011-04-08 15:10:02 +02:00
Ole André Vadla Ravnås
f59b985698 rtp: fix pad callbacks so they handle when parent goes away
1) We need to lock and get a strong ref to the parent, if still there.
2) If it has gone away, we need to handle that gracefully.

This is necessary in order to safely modify a running pipeline. Has been
observed when a streaming thread is doing a buffer_alloc() while an
application thread sends an event on a pad further downstream, and from
within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
while the streaming thread has its buffer_alloc() in progress.
2011-04-08 15:05:23 +02:00
Bastien Nocera
96463bb8df rtp: Remove unused variables
https://bugzilla.gnome.org/show_bug.cgi?id=646924
2011-04-07 10:16:39 +02:00
Sebastian Dröge
a29e55f9c4 video: Fix creation of grayscale caps
The endianness was not set correctly before.

Fixes bug #646923.
2011-04-07 10:06:53 +02:00
Pascal Buhler
1ad98b0d98 rtcpbuffer: Round to next 32bit word, not current 32bit word at end of SDES chunk 2011-04-05 15:27:03 +02:00
David Schleef
5f61df82da video: Fix YUV9 and YVU9 again 2011-04-04 16:01:20 -07:00
Tim-Philipp Müller
f728ee3978 tag: fix compiler warning on OSX
gstvorbistag.c: In function 'gst_tag_list_from_vorbiscomment_buffer':
gstvorbistag.c:371: warning: 'data' may be used uninitialized in this function
2011-04-04 23:41:16 +01:00
Haakon Sporsheim
834a5a478c tag: use gst/math-compat.h header.
https://bugzilla.gnome.org/show_bug.cgi?id=646744
2011-04-04 23:14:23 +01:00
Haakon Sporsheim
f7036eb260 tag: Remove constness to silence MS compiler.
https://bugzilla.gnome.org/show_bug.cgi?id=646744
2011-04-04 23:14:23 +01:00
Haakon Sporsheim
7b142178e4 tag: Explicit cast to GThreadFunc to silence MS compiler.
https://bugzilla.gnome.org/show_bug.cgi?id=646744
2011-04-04 23:14:20 +01:00
Trond Andersen
cec628a414 rtcpbuffer: fix invalid read in validation of padding in rtcp packet 2011-04-04 09:43:06 +02:00
Stian Johansen
0f8edca902 baseaudiosrc: Add src object lock around call to ringbuffer parse caps.
A race was observed between query() and setcaps() where the latter would
change the ringbuffer spec while the former was performing operations
based this data.
2011-04-04 09:35:58 +02:00
Havard Graff
63cfa2a50d baseaudiosrc: protect against ringbuffer disappearing while in a query
Observed a case where the src went to null-state during the query,
hence the spec pointer was no longer valid, and
gst_util_unit64_scale_int crashed (assertion `denom > 0´failed)

Add locking to make sure the ringbuffer can't disappear.
2011-04-04 09:33:33 +02:00
Havard Graff
588ac0ae6f baseaudiosink: don't allow aligning behind the read-segment
Given a large enough drift-tolerance, one could end up in a situation
where one would keep aligning the written buffers behind the current
read-segment position. The result for the reader would be complete
silence, possible preceded by very choppy audio.

By checking the available headroom, one can determine if there is
room to do alignment, or if one should resort to a resync instead to get
the pointers back on track.

Also refactor the alignment-logic out of the render function for cleaner
code.
2011-04-04 09:31:26 +02:00
David Schleef
629cac4cad video: Fix height calculation for YUV9/YVU9 2011-04-01 13:55:56 -07:00
Sebastian Dröge
35064fdc82 vorbistag: Write GST_TAG_IMAGE and GST_TAG_PREVIEW_IMAGE as METADATA_BLOCK_PICTURE
This is the official, standardized way of embedding images into
vorbiscomments now.
2011-04-01 12:54:53 +02:00
Sebastian Dröge
57ff12bb0d vorbistag: Add support for METADATA_BLOCK_PICTURE tags
This is the official, standardized way of embedding pictures
inside vorbiscomments now. Parsing code taken from flacparse
and slightly changed.

Fixes bug #635669.
2011-04-01 12:31:31 +02:00
Sebastian Dröge
a2532fc3f7 vorbistag: Use g_base64_decode_inplace()
Instead of using the GLib base64 decoding functions manually to
do inplace base64 decoding. This makes the code easier to understand.
2011-04-01 12:09:44 +02:00
Mark Nauwelaerts
e73f293ee5 baseaudiosink: arrange for running clock when rendering eos
Commit ba2e500bd9 ensured to provide
a running clock when EOS had finished rendering.  However,
other measures are needed (and were in place before) to ensure a
running clock when EOS still needs rendering (i.e. waiting).

So, specifically, re-introduce eos_rendering removed in aforementioned commit,
this time as a public variable so subclasses can be aware of the situation.

Fixes (part of) #645961.

API: GstBaseAudioSink:eos_rendering
2011-03-31 13:18:53 +02:00
Tim-Philipp Müller
45b6bda76c libs: make sure gobject-introspection scanner calls gst_init()
Cherry-picked from 0.11, since it's the right thing to do (we
now silently rely on various _get_type() working without
gst_init() having been called).
2011-03-30 21:08:29 +01:00
Tim-Philipp Müller
a818fe7381 libs: replace 0.10 with @GST_MAJORMINOR@ in Makefile.am
For easier cherry-picking/merging later.
2011-03-30 20:57:32 +01:00
Thiago Santos
34ba387d0b tagxmpwriter: Adds a new GstTagXmpWriter interface
The GstTagXmpWriter interface is to be implemented on elements that
provide xmp serialization. It allows users to select which
xmp schemas should be used on serialization.

API: GstTagXmpWriter

https://bugzilla.gnome.org/show_bug.cgi?id=645167
2011-03-29 17:11:30 -03:00
Thiago Santos
6cc96a67ec tag: xmp: Add function to list the available schemas
Adds a function to list the available schemas in our xmp lib

https://bugzilla.gnome.org/show_bug.cgi?id=645167
2011-03-29 17:11:30 -03:00
Thiago Santos
78e8b33c38 video: Getting component offsets without dimensions is fine if it is not YUV
This fixes a regression that an assertion would happen if
gst_video_get_component_offset would be called with width or
height as 0.

Calling it with 0 is fine if the format isn't yuv and this
was already being used in some other places of video.c
2011-03-23 12:21:55 -03:00
David Schleef
a08227505f video: Add gst_video_format_new_template_caps() 2011-03-22 12:11:49 -07:00
Fraxinas
0af549ace0 encoding-profile: Fix syntax in Example: Creating a profile
https://bugzilla.gnome.org/show_bug.cgi?id=645437
2011-03-22 10:49:03 +01:00
Thiago Santos
75897c716f tag: xmp: Add missing schema creation
tiff schema entries were being added to the previous
schema (xap) because a new one wasn't being created
for it.
2011-03-21 18:37:36 -03:00
Olivier Crête
103fb67d20 rtpbuffer: Off-by-one error when creating RTP header extensions with a two-byte header 2011-03-17 21:50:24 -04:00
Arun Raghavan
9ffb8859d7 discoverer: Don't wait for subtitle streams to preroll
Subtitle streams being parse can cause the pipeline to wait indefinitely
to PREROLL. This makes subtitle streams got to PAUSED even if no data is
available. This should not be a cause for concern as we don't expect to
get much data for subtitle streams other than language tags from the
container.

https://bugzilla.gnome.org/show_bug.cgi?id=632291
2011-03-08 23:02:18 +05:30
Mark Nauwelaerts
ba2e500bd9 baseaudiosink: start ringbuffer upon going to PLAYING and already EOS
... otherwise we may end up without running clock in PLAYING.

Fixes #636886.
2011-03-04 14:10:30 +01:00
David Schleef
1265a42124 video: Add support for r210 2011-02-25 19:37:07 -08:00
Robert Swain
e0a658a664 gstvideo: Add GST_VIDEO_BUFFER_PROGRESSIVE flag
Maps to GST_BUFFER_FLAG_MEDIA4. The purpose is to explicitly indicate
whether a telecined buffer is progressive or not without having to make
assumptions based on previous buffers.
2011-02-25 15:29:56 +01:00
Arun Raghavan
8fc424bcbf discoverer: Chain dispose() up to parent class 2011-02-22 13:49:12 +01:00
Arun Raghavan
8d2b69384a discoverer: Keep a ref for the async timeout callback
This makes sure we maintain a ref on the discoverer object while the
async timeout callback is alive to prevent a potential crash if the
object is freed while the callback is pending.

https://bugzilla.gnome.org/show_bug.cgi?id=641706
2011-02-22 13:49:12 +01:00
Arun Raghavan
40c4fe8fbe discoverer: Use g_signal_connect_object instead of g_signal_connect
We want to make sure the discoverer object passed to the various
callbacks doesn't become invalid if a callback is pending and the object
is free'd in the mean time.

https://bugzilla.gnome.org/show_bug.cgi?id=641706
2011-02-22 13:49:12 +01:00
Teemu Katajisto
17fddc13d2 pbutils: encoding-target: fix error checking in target file loading
https://bugzilla.gnome.org/show_bug.cgi?id=642949
2011-02-22 11:44:11 +01:00
Benjamin Otte
2cc48b62fe sdp: Fix copy/paste error in inrospection part of Makefile 2011-02-21 18:01:04 +01:00
Benjamin Otte
11f7e808ac tag: Fix copy/paste error in inrospection part of Makefile 2011-02-21 18:00:36 +01:00
Benjamin Otte
6213f1f3b1 rtsp: Fix copy/paste error in inrospection part of Makefile 2011-02-21 18:00:02 +01:00
David Schleef
0ed72c2959 video: Add ARGB64 and AYUV64
16-bit per channel formats.
2011-02-20 12:04:02 -08:00
David Schleef
7a24e3ea4e video: Add gst_video_format_get_component_depth() 2011-02-20 12:04:02 -08:00
Stefan Kost
7e06d35250 discoverer: don't leak parent tags 2011-02-16 12:01:03 +02:00
Stefan Kost
c201ff3de3 discoverer: improve logging (and reindent)
Add more logging for the tag merging and use the _OBJECT flavour more.
2011-02-16 12:01:03 +02:00
Arun Raghavan
e9ff48376b discoverer: Use nominal bitrate if bitrate tag is unavailable
If the bitrate tag is unavailable, this falls back to the nominal
bitrate tag instead, if that is present.

https://bugzilla.gnome.org/show_bug.cgi?id=641860
2011-02-10 09:58:34 +02:00
Mark Nauwelaerts
b2389c2108 tagdemux: also push cached events downstream when operating in pull mode
Otherwise, having 2 tagdemux in a row followed by an element operating in
pull mode will make the second tagdemux implictly eat the first tagdemux'
tag event(s).

Fixes (part of) #641047.
2011-02-07 17:46:26 +01:00
Sreerenj Balachandran
c36a3e46f5 id3tag: map the ID3v2 TENC frame to GST_TAG_ENCODED_BY
https://bugzilla.gnome.org/show_bug.cgi?id=627268
2011-02-01 14:12:45 +00:00
Mark Nauwelaerts
505fa27159 xmptag: cast argument to isdigit to int
... as that is the specification and fixes compilation on Cygwin:

gstxmptaag.c: In function 'read_one_tag':
gstxmptag.c:1015: error: array subscript has type 'char'
2011-01-31 19:21:32 +01:00
Tim-Philipp Müller
33a5e3e06f appsink: add buffer fallback in case the application doesn't handle buffer lists
We shouldn't assume the application handles buffer lists, for
ease-of-use reasons and for backwards compatibility reasons.
2011-01-31 18:06:18 +00:00
Cai Yuanqing
71dec68cba appsink: send new-buffer-list signal
Send new-buffer-list signal when emit-signals is TRUE

https://bugzilla.gnome.org/show_bug.cgi?id=640607
2011-01-31 15:32:40 +01:00
Felipe Contreras
21d1e2ded0 baseaudiosink: trivial cleanups
It seems these stuff was neglected from commmit d8942e2.

Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
2011-01-30 15:40:53 +02:00
Tim-Philipp Müller
e404beff5d pbutils: add description for degas images 2011-01-26 09:07:26 +00:00
Stefan Kost
682ca018c9 pbutils: add description for x-annodex 2011-01-25 18:03:58 +02:00
Thiago Santos
254088344c tag: xmp: Move static variable to local function
Variable was being written to and could cause crashes
if multiple elements were parsing xmp at the same time.

Moving it to local scope solves the problem.
2011-01-24 15:21:10 -03:00
Edward Hervey
7faf92511a riff: Add support for video/x-camstudio 2011-01-24 18:27:30 +01:00
Tim-Philipp Müller
97f84c1eee encoding-target: change keyfile header to 'GStreamer Encoding Target'
which is more in line with other files such as .desktop files.
2011-01-18 10:40:29 +00:00
Tim-Philipp Müller
d1bcdea7dc pbutils: don't assume LC_MESSAGES is always defined, also check for ENABLE_NLS
Should fix build with mingw32 build bot again.
2011-01-18 01:08:05 +00:00
Tim-Philipp Müller
cd758cdbd9 app: export gst_app_stream_type_get_type()
API: gst_app_stream_type_get_type()
API: GST_TYPE_APP_STREAM_TYPE

https://bugzilla.gnome.org/show_bug.cgi?id=639747
2011-01-18 00:10:29 +00:00
Tim-Philipp Müller
b311b833c1 app: make GstAppBuffer get_type() function thread-safe 2011-01-17 23:59:48 +00:00
Arun Raghavan
6ac2e5d384 discoverer: Drop new stream tags once preroll is done
This makes sure we do not touch the stream taglist once the pipeline has
been prerolled. Adding of stream tags happens in the pad event probe
which runs in a different thread from discoverer stream processing, so
modifying the tag list while discoverer might be processing it can
sometimes cause a crash.

https://bugzilla.gnome.org/show_bug.cgi?id=639778
2011-01-17 23:50:45 +00:00
Arun Raghavan
65a298fdee discoverer: Validate timeouts before processing them
This avoids a race where the timeout callback is scheduled to run but we
get sufficient information to finish discovery before actually getting
around to executing the callback. See the documentation of
g_source_is_destroyed() for more details.

https://bugzilla.gnome.org/show_bug.cgi?id=639730
2011-01-17 23:50:45 +00:00
Arun Raghavan
e730ce71dc discoverer: Make sure we call _stop() before being freed
This ensures that everything is properly cleaned up before the
GstDiscoverer object is freed. Specifically, it makes sure that we've
removed the async timeout callback before freeing the object to avoid a
potential crash later on.

https://bugzilla.gnome.org/show_bug.cgi?id=639755
2011-01-17 23:50:45 +00:00
Tim-Philipp Müller
c40fdbf552 pbutils: save localised strings properly when writing encoding targets to a file
Use LC_MESSAGES rather than LC_ALL. Save/load description as untranslated string
when using an English language locale. Strip locale information to the language,
so we don't save keys like description[fr_FR.UTF-8]=...

https://bugzilla.gnome.org/show_bug.cgi?id=638860
2011-01-16 16:59:32 +00:00
Tim-Philipp Müller
ba76490dd4 docs: add some more Since: markers for new encoding-profile API 2011-01-12 17:51:43 +00:00
Tim-Philipp Müller
53893cfba8 gobject-introspection: pass --library-path as well to make it find the right libgstreamer
Makes things work again properly in uninstalled setups (and
presumably in installed setups where GStreamer is installed
into a non-standard prefix). Requires fixes from core git.

https://bugzilla.gnome.org/show_bug.cgi?id=639039
2011-01-11 15:01:25 +00:00
Byeong-ryeol Kim
7c55ad4db3 gobject-introspection: fix issue when gold linker is used
Need to pass libgstreamer-0.10 explicitly to linker, since we're
calling gst_init(), which in turn is needed because the encoding
target get_type() function calls gst_value_register().

https://bugzilla.gnome.org/show_bug.cgi?id=639039
2011-01-11 15:01:25 +00:00
Tim-Philipp Müller
0ed757db33 gobject-introspection: use same PKG_CONFIG_PATH for g-ir-compiler as for g-ir-scanner
Make sure to use the PKG_CONFIG_PATH set at configure time instead of
just relying on an env-var set one. This makes sure both g-ir-compiler
and g-ir-scanner use the same PKG_CONFIG_PATH for determining include
paths etc.
2011-01-08 02:10:03 +00:00
Arun Raghavan
19d4a5ab4d discoverer: Documentation updates
Some cosmetic changes and expands on some bits of the documentation to
make it more newbie-friendly.
2011-01-06 15:33:14 +01:00
Tim-Philipp Müller
8dc70c76b4 pbutils: config.h include should come before all other includes 2011-01-06 00:28:39 +00:00
Edward Hervey
19201c1ab0 encoding: encoding_profile_get_output_caps => _get_input_caps
Makes more sense name-wise
2011-01-05 22:02:35 +01:00
Arun Raghavan
f458662ab9 encoding-profile: Minor documentation updates 2011-01-05 20:54:21 +01:00
Edward Hervey
5a8858b3bc encoding-profile: Give a better usage example 2011-01-05 20:54:21 +01:00
Edward Hervey
777f816ff1 encoding-target: Fixup loading/saving methods 2011-01-05 20:54:21 +01:00
Edward Hervey
536849bce5 encoding-target: more docs cleanups 2011-01-05 20:54:21 +01:00
Edward Hervey
3b32566dd4 encoding-target: Change target suffix to .gep
Along with a bunch of other internal cleanups
2011-01-05 20:54:21 +01:00
Edward Hervey
520eb442ce encoding-target: Add more docs regarding categories 2011-01-05 20:54:21 +01:00
Edward Hervey
a65faf2f3c encoding-target: Add API for list all categories and targets
API: gst_encoding_list_available_categories
API: gst_encoding_list_all_targets
2011-01-05 20:54:21 +01:00
Edward Hervey
deea1eb83f encoding-profile: Add convenience method to find a profile
API: gst_encoding_profile_find
2011-01-05 20:54:21 +01:00
Edward Hervey
d8f5b6322f encoding-target: Implement save/load feature
Fixes #637735
2011-01-05 20:54:06 +01:00
Edward Hervey
c8fa8085ba encoding-target: Add method to get a profile by name
API: gst_encoding_target_get_profile
2011-01-05 20:18:34 +01:00
Edward Hervey
0a26cd9fcf pbutils: Don't forget to include the encoding headers 2011-01-05 15:31:09 +01:00
Edward Hervey
6ce0d6e78b video: Fix uninitialized variables
reported by macosx gcc
2011-01-05 12:02:02 +01:00
Arun Raghavan
c05ca085da codec-utils: Minor documentation changes 2011-01-04 18:59:25 +00:00
Tim-Philipp Müller
9c9afee1cf baseaudiosink: default to enable-last-buffer=FALSE for audio sinks
There isn't really any good reason to get the last buffer from an
audio sink, so don't make the sink keep it around unnecessarily.
2011-01-02 17:21:54 +00:00
Wim Taymans
678753b325 baseaudiopay: fix timestamps on buffer lists
Fix the outgoing timestamps and RTP timestamps on outgoing buffers when using
buffer lists.
2010-12-30 18:09:58 +01:00
Havard Graff
60ff7c0eb4 baseaudiosink: protect against ringbuffer disappearing while in a query
Observed a case where the sink went to null-state during the query,
hence the ringbuffer-pointer was NULL, causing a crash.

Moving the ringbuffer-check code until after the query, and hold the
lock during the check and while using the spec-values. It should not matter
to the query wether the ringbuffer is present or not, and it actually
gets a time bit more time to get the ringbuffer set up in this case!

Fixes #635231
2010-12-29 12:29:40 +01:00
Wim Taymans
c665034742 basedepay: fix refcounting issue
Make sure that when _make_writable() returns a new buffer, we actually push that
one instead of the old one.
2010-12-28 11:44:09 +01:00
Tim-Philipp Müller
802cf04d06 pbutils: add description for DVB subtitle caps 2010-12-26 17:29:38 +00:00
Edward Hervey
ad22e8bc10 encoding-target: Fix typo 2010-12-22 18:23:26 +01:00
Thiago Santos
17777f2596 tag: exif: Fix unitialized data warning
Fixes a valgrind warning on jifmux tests on -bad caused by
unitialized bytes.

Fixes #637758
2010-12-22 10:41:51 -03:00
Edward Hervey
9f6bcdd5ee pbutils: More gtk-doc annotations 2010-12-21 18:52:04 +01:00
Edward Hervey
4b3e1403a1 encoding-target: Ensure target names and categories are valid 2010-12-21 16:38:40 +01:00
Wim Taymans
6ffabccf04 depay: update some docs 2010-12-21 15:11:10 +01:00
Wim Taymans
9e787a0211 rtpdepayloade: add support for getting events
Add support for intercepting sink events in the depayloader by adding a new
vmethod.
2010-12-21 15:02:18 +01:00
Wim Taymans
d51ff7e4eb basertppay: use RTP base time when invalid timestamps
When we have an invalid running-time (because we clipped, for example) use the
RTP base time for timestamping instead of generating wrong RTP timestamps.
2010-12-21 13:39:26 +01:00
Wim Taymans
bc63334503 rtppayload: copy applied rate to segment
Use set_segment_full to copy all segment values to the segment structure.
2010-12-21 13:39:26 +01:00
Edward Hervey
c6bc271e7e encoding-profile: Add guard against profiles without format 2010-12-21 13:08:15 +01:00
Edward Hervey
76afffd55f gstdiscoverer: Don't leak tags 2010-12-19 13:45:01 +01:00
Rob Clark
aa07af41f3 fix compile errors on macosx
with i686-apple-darwin10-gcc-4.2.1:

encoding-profile.h:134: warning: type qualifiers ignored on function return type
encoding-profile.c:240: warning: type qualifiers ignored on function return type
gstencodebin.c: In function 'next_unused_stream_profile':
gstencodebin.c:454: warning: format '%d' expects type 'int', but argument 8 has type 'GType'
gstencodebin.c:464: warning: format '%d' expects type 'int', but argument 8 has type 'GType'
2010-12-17 19:06:27 -06:00
Andy Wingo
dd699397c2 add gst_rtsp_url_decode_path_components
* gst-libs/gst/rtsp/gstrtspurl.h:
* gst-libs/gst/rtsp/gstrtspurl.c (gst_rtsp_url_decode_path_components):
  New public function, returns a strv of uri-decoded path components.

* tests/check/Makefile.am:
* tests/check/libs/rtsp.c: Add tests.
2010-12-15 17:51:36 +01:00
Wim Taymans
34ea5bdd06 rtpbuffer: relax arrangement for RTP bufferlists
Don't assume there are exactly 2 buffers but allow cases where the header and
payload are in 1 buffer or where the payload is in more buffers.
2010-12-15 16:37:29 +01:00