Commit graph

2591 commits

Author SHA1 Message Date
Sebastian Dröge
2a6602d994 decodebin2: Return NULL from the default autoplug-sort handler
...instead of copying the array. Returning NULL will result
in the original factories array to be used and prevents a useless
array copy in most use cases.
2011-02-18 12:01:05 +01:00
Sebastian Dröge
da4b5bf9f9 uridecodebin: Update autoplug-* signal docs from decodebin2
uridecodebin proxies these signals.
2011-02-18 12:00:34 +01:00
Sebastian Dröge
ef5f73206d decodebin2: Update documentation of the autoplug-* signals
Add notes about the behaviour if multiple signal handlers are connected.
For most autoplug-* signals only the first signal handler will ever
be invoked.

Also add to the autoplug-sort docs that the signal handler can return NULL
to specify that the order should change and other handlers get the chance
to sort the array.
2011-02-18 11:58:44 +01:00
Sebastian Dröge
785f35a48e decodebin2: Keep the original factory list if the sort signal handlers returned NULL 2011-02-18 11:57:12 +01:00
tskd2@yahoo.co.jp
0641eabeb2 uridecodebin: expose "autoplug-sort" signal
It is a proxy of the decodebin2's one, and was missing
in the previous code.

See bug #642433.
2011-02-18 11:17:11 +01:00
Sebastian Dröge
1351597381 playbin2: Use a recursive mutex for the playbin lock
This lock is taken when activating a group, which could result in
calling the autoplug-continue callback, which also needs this lock
to access the sinks.

See bug #642174.
2011-02-18 10:57:40 +01:00
Sebastian Dröge
6ca5bb72a4 decodebin2: Disconnect signal handlers when removing a failed element
This prevents crashes later if one of the signals is emitted after the
element was removed from decodebin2 already, which can happen in discoverer.
2011-02-18 09:44:49 +01:00
David Schleef
7902e13df5 typefind: Fix mpeg TS detection 2011-02-17 18:29:57 -08:00
Sebastian Dröge
140dca43f3 playbin2: Optimize autoplug-continue handler a bit
Don't build merge the caps of all sinks but check them one-by-one
until one supports the caps. Also get reffed caps from the sinkpads
instead of a writable copy and add debug output if a sink claims to
support ANY caps.
2011-02-15 17:46:22 +01:00
Akihiro Tsukada
555e338008 playbin2: Fix handling of non-raw custom sinks
When autoplugging elements in decodebin2, check if
the caps are supported by one of the sink before
continuing autoplugging.

Fixes bug #642174.
2011-02-15 17:24:28 +01:00
Sebastian Dröge
fbf9729795 decodebin2: Don't leak elements that fail to go to PAUSED after being autoplugged
Fixes bug #642381.
2011-02-15 17:05:42 +01:00
Andoni Morales Alastruey
f7dbec9091 gdppay: ensure buffer's metadata is writable before setting caps 2011-02-14 15:51:08 +01:00
Stefan Kost
fe59f50468 decodebin2: caps can be NULL
Don't use and unref NULL caps.
2011-02-08 12:32:23 +02:00
Mark Nauwelaerts
2c017d2a70 uridecodebin: fix copy-and-paste typo in property docs 2011-02-02 15:39:19 +01:00
Mark Nauwelaerts
e5e09844ea tcp: use socklen_t where appropriate rather than specific type
In particular, fixes Cygwin build where socklen_t is defined as int
in line with native win32 api definition.
2011-01-31 19:21:32 +01:00
Wim Taymans
1fb7c7e5dc uridecodebin: also add https to buffer protocols
HTTPS also needs buffering.
2011-01-31 10:34:44 +01:00
Philippe Normand
749f541cc4 typefinding: register H264 typefinder with H264 caps
https://bugzilla.gnome.org/show_bug.cgi?id=640709
2011-01-27 12:21:19 +00:00
Thiago Santos
b43db2f2a2 streamsplitter: release pending events refs
Unref pending events when disposing the streamsplitter.

Also refactor a little to replace a for with a g_list_foreach
2011-01-26 12:52:41 -03:00
Tim-Philipp Müller
11a1acfe88 typefinding: use image/x-icon as media type for ICON files
That's what we've been using so far (e.g. gdkpixbufdec).
2011-01-26 09:06:10 +00:00
Stefan Kost
69436bb8a6 decodebin2: add comment and whitespace trimming 2011-01-25 18:03:58 +02:00
Vincent Penquerc'h
2acdbdabaa typefind: add typefinder for DEGAS images
This fixes at least one DEGAS image from being misdetected as DTS audio.

https://bugzilla.gnome.org/show_bug.cgi?id=625129
2011-01-25 13:39:25 +00:00
Vincent Penquerc'h
7caf9e5e81 typefind: add detection for windows icon files to get them out of the way
Some of them can otherwise be misdetected for MPEG audio.

https://bugzilla.gnome.org/show_bug.cgi?id=620364
2011-01-24 19:54:52 +01:00
David Schleef
3a165c60bf gdppay: make newsegment buffer metadata writable 2011-01-17 13:55:18 -08:00
Tim-Philipp Müller
adb84c6dae typefinding: set framed=false on DTS caps 2011-01-13 13:59:41 +00:00
Edward Hervey
251400a69b encodebin: Add missing-plugin support
https://bugzilla.gnome.org/show_bug.cgi?id=638903
2011-01-07 13:18:20 +01:00
Edward Hervey
d7bdf0d49a encodebin: Extend documentation
https://bugzilla.gnome.org/show_bug.cgi?id=638901
2011-01-07 12:52:37 +01:00
Robert Swain
2c1bf82d55 videorate: Fix behaviour for frame rate cap changes
The outgoing buffer timestamp is calculated by scaling an output buffer
count by the src pad frame rate caps. If these caps change, we need to
reset the count and work from a new base timestamp. The new output
buffer timestamp is then the count scaled by the new caps values added
onto the base timestamp.
2011-01-06 13:12:05 +01: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
Edward Hervey
cdd0a9c8bb encodebin: Convert to new GstElementClass::request_new_pad_full vmethod 2011-01-05 19:30:50 +01:00
David Schleef
e3451e5ab8 typefind: Add stream-format to h264 caps 2011-01-02 15:49:42 -08:00
Tim-Philipp Müller
dcd4222716 playbin2: use input-selector from core instead of internal copy 2010-12-31 12:14:22 +00:00
Tim-Philipp Müller
bb786dfb5c typefinding: assume EBML files without doctype are matroska
https://bugzilla.gnome.org/show_bug.cgi?id=638019
2010-12-29 22:36:41 +00:00
Wim Taymans
b1696cf21d multifdsink: only keep last valid timestamp
Fixes #634397
2010-12-29 12:55:24 +01:00
Andoni Morales Alastruey
c41a4d0df4 multifdsink: add first and last buffer's timestamp to the stats 2010-12-29 12:55:24 +01:00
Edward Hervey
c76a6ef8ea encodebin: Also use "Formatter"s for container formats 2010-12-22 18:23:26 +01:00
Alessandro Decina
b11303319c encodebin: minor fix in error handling.
Don't call gst_bin_remove (bin, <invalid pointer>).
2010-12-22 13:56:12 +01:00
Vincent Penquerc'h
f221466099 playbin2: delay stream-changed messages
https://bugzilla.gnome.org/show_bug.cgi?id=637586
2010-12-21 17:42:58 +01:00
Edward Hervey
d20b84f1d2 encodebin: Fix usage of non-container profiles 2010-12-21 13:07:27 +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
Leo Singer
5bfe1baab3 audioresample: corrected buffer duration calculation to account for nonzero initial timestamp
Since we calculate timestamps by:

  timestamp = t0 + (out samples) / (out rate)

and durations by:

  duration = ((out samples) + (processed samples)) / (out rate) - timestamp

if t0 is nonzero, this would simplify to

  duration = t0 + (processed samples) / (out rate).

This duration is too large by the amount t0.  We should have done:

  duration = t0 + ((out samples) + (processed samples)) / (out rate) - timestamp

so that

  duration = (processed samples) / (out rate).
2010-12-17 19:34:42 +01:00
Leo Singer
25a154be5f audioresample: changed num_gap_samples, num_nongap_samples from guint32 to guint64 so that gaps of greater than or equal to 2^32 samples do not cause integer overflow 2010-12-17 19:34:42 +01:00
Leo Singer
d6d2aa44ab audioresample: push half a history length, instead of a full history length, at end-of-stream so that output segment and input segment have same duration 2010-12-17 19:34:42 +01:00
Leo Singer
aac8b21678 audioresample: renamed count_gap, count_nongap to more descriptive num_gap_samples, num_nongap_samples 2010-12-17 19:34:42 +01:00
Leo Singer
6832b38527 audioresample: replaced void* with gpointer 2010-12-17 19:34:42 +01:00
Leo Singer
87f2422737 audioresample: initial filter transient discarded; unit tests passing 2010-12-17 19:34:41 +01:00
Leo Singer
b4cd3329a9 Revert "Revert "audioresample: Add GAP flag support""
This reverts commit 35c76b3409.

Conflicts:

	gst/audioresample/gstaudioresample.c
	gst/audioresample/gstaudioresample.h
2010-12-17 19:34:41 +01:00
Sebastian Dröge
32f28f476e videoscale: Change classification to Filter/Converter/Video/Scaler 2010-12-16 10:11:43 +01:00
Edward Hervey
8a3b45aa1f gst: New encoding plugin
https://bugzilla.gnome.org/show_bug.cgi?id=627476
2010-12-15 11:54:32 +01:00
David Schleef
525776df79 typefind: Add check for yuv4mpeg 2010-12-14 00:40:58 -08:00
Mark Nauwelaerts
93d68ec77d audioresample: relax discont checking slightly 2010-12-13 10:10:30 +01:00
Mark Nauwelaerts
a7cf165289 audioresample: provide as much valid output ts and offset as valid input
... by independently tracking time and offset, rather than having no offset
leading to no output ts.
2010-12-13 10:10:15 +01:00
Stefan Kost
7728f3d3a7 typefinders: name "aac" typefinder "audio/aac"
This is in sync how we call the others.
2010-12-13 10:42:02 +02:00
Zeeshan Ali (Khattak)
1611f89298 videotestsrc: Add a missing return statement 2010-12-11 19:33:33 +02:00
Sebastian Dröge
09ff04a00a decodebin2: Deprecate new-decoded-pad and removed-decoded-pad signals
They're really the same as pad-added and pad-removed from GstElement
and it doesn't make sense to have two signals for the same thing.
2010-12-11 17:18:49 +01:00
Sebastian Dröge
42dee942d4 decodebin2: Emit "remove-decoded-pad" signal when pads are removed from decodebin2
Fixes bug #636198.
2010-12-11 17:15:28 +01:00
Mark Nauwelaerts
ea7349e4c7 typefinding: improve iso media typefinding
... by also considering compatible brands rather than only aiming at major brand
(of which there are a seemingly ever expanding great many).
2010-12-08 12:55:24 +01:00
René Stadler
1e75501c10 typefind: ignore AC-3 BSIDs 9, 10 and >16
These are reserved for future extensions which will not be backwards
compatible to E-AC-3.
2010-12-07 21:28:20 +02:00
René Stadler
725968c612 typefind: accept consecutive AC-3 frames of different sizes
This is perfectly valid and occurs in particular when there are
(in)dependent substreams present.
2010-12-07 21:28:20 +02:00
René Stadler
0e39c62878 typefind: remove useless masking in (E-)AC-3 typefinders 2010-12-07 21:28:20 +02:00
René Stadler
cc65ba987a typefind: stop scanning after suggesting E-AC-3 caps 2010-12-07 21:28:20 +02:00
René Stadler
886ea051e7 typefind: fix E-AC-3 frame size parsing
Frame size is given in words; it is already multiplied by two where
needed, so the left shift is superfluous. This extra multiplication
caused the code to inspect the third packet instead of the second,
which would fail for files where the second packet has a size
different from the first.
2010-12-07 21:28:20 +02:00
Stefan Kost
95b259f9c9 playbin2: add some logging for failure case 2010-12-02 23:04:51 +02:00
Stefan Kost
baa2fbbb68 inputselector: log times in human readable form 2010-12-02 23:04:51 +02:00
Stefan Kost
7f787249bb inputselector: more G_PARAM_STATIC_STRINGS use 2010-12-02 23:04:51 +02:00
Stefan Kost
3b35063ceb inputselector: move reoccuring logs to LOG and remove a double info
Less debug spew in DEBUG category. No need to log pad again if we use
GST_LOG_OBJECT(pad,...).
2010-12-02 23:04:51 +02:00
Sebastian Dröge
b2d716c340 tcp: Remove dead assignment 2010-12-02 19:04:29 +01:00
Sebastian Dröge
66ce6200a8 playsink: gen_video_chain() always returns a bin, no need to check for that 2010-12-02 19:04:28 +01:00
Sebastian Dröge
92133f7ce4 streamsynchronizer: If we get EOS for an unknown stream just do nothing
instead of dereferencing NULL pointers. This can happen if the stream
was just removed from the streamsynchronizer in a bad time.
2010-12-02 19:04:28 +01:00
Sebastian Dröge
fe856a3f7c playsink: gen_video_deinterlace_chain() always returns a bin, no need to check that 2010-12-02 19:04:28 +01:00
Stefan Kost
7b312c5980 uridecodebin: disconnect signal handlers before disposing 2010-11-24 17:53:42 +02:00
Tim-Philipp Müller
1bfefc50af docs: improve decodebin2 docs a little
Mention that new pads may be created even after no-more-pads.

https://bugzilla.gnome.org/show_bug.cgi?id=634584
2010-11-22 00:54:35 +00:00
Tim-Philipp Müller
8a423f8f00 decodebin: fix one more pad template ref leak 2010-11-18 00:33:22 +00:00
Harri Mähönen
7c5e39664e *decodebin*: don't leak pad templates set on ghostpads
https://bugzilla.gnome.org/show_bug.cgi?id=635067
2010-11-18 00:11:41 +00:00
Tim-Philipp Müller
8f039997f0 playbin2: disable streamsynchronizer magic for this release
Some things aren't quite right yet and cause problems (0-sized buffers
with PREROLL flag set cause crashes in elements that don't expect those;
getting pipeline back to preroll/playing again when audio/video streams
have different lengths and a seek past the end of one of the stream
happens doesn't always work, etc.). Needs further investigation in the
next cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=633700
https://bugzilla.gnome.org/show_bug.cgi?id=634699
2010-11-17 01:01:03 +00:00
Sebastian Dröge
1469453cb9 ffmpegcolorspace: Fix IYU1 support
Fix conversions to IYU1, they allocated infinite amounts of memory before
because no conversion to IYU1 was actually implemented and it was running
into an infinite loop trying to find suitable intermediate formats.

Also fix the stride and sizes used for IYU1.
2010-11-03 10:49:35 +01:00
Jan Schmidt
ee303c441d playsink: Fix subpicture overlay when deinterlacing disabled.
Fix a bug when reconfiguring the playsink where the subpicture
stream is broken by attempting to connect it through
streamsynchroniser and second time.
2010-10-28 23:15:43 +01:00
Edward Hervey
a5752d8ea7 decodebin2: Don't add non prerolled stream to topology
If a final stream didn't preroll, don't add it to the topology since
it doesn't give any information at all.

https://bugzilla.gnome.org/show_bug.cgi?id=632988
2010-10-24 16:18:17 +02:00
Mark Nauwelaerts
9d0fefc617 uridecodebin: workaround internal decodebin2 failing state change
Fixes #632656.
2010-10-21 19:07:24 +02:00
David Schleef
a3f4bf9c72 Update generated orc code 2010-10-15 13:16:13 -07:00
Sebastian Dröge
d8c1044fbd ffmpegcolorspace: Add support for A420 2010-10-15 11:12:38 +02:00
Tim-Philipp Müller
df6bd68b80 typefinding: fix ADTS caps stream-format detail
Field should be "stream-format", not "stream-type".
2010-10-14 16:46:44 +01:00
Andrzej K. Haczewski
6c5cee1d02 typefinding: extend AAC typefinder to detect LOAS streams
Extend AAC typefinder to recognize LOAS stream as specified by
ISO/IEC 14496-3:2009.

https://bugzilla.gnome.org/show_bug.cgi?id=623918
2010-10-14 16:46:41 +01:00
Stefan Kost
2a00fefd2a *decodebin*: set pad-templates on ghostpads
This makes calling gst_pad_get_pad_template() work.
2010-10-13 23:30:55 +03:00
Stefan Kost
83c14483ed various: add a missing G_PARAM_STATIC_STRINGS flag to object properties 2010-10-13 16:13:31 +03:00
Tim-Philipp Müller
8d29594491 decodebin2: declare decodebin2 stable, deprecate the old decodebin
https://bugzilla.gnome.org/show_bug.cgi?id=624949
2010-10-13 13:05:12 +01:00
Tim-Philipp Müller
8effe1e5ba playbin2: declare stable, deprecate the old playbin
https://bugzilla.gnome.org/show_bug.cgi?id=624949
2010-10-13 12:55:31 +01:00
Sebastian Dröge
491b7af1fa uridecodebin: Set GST_ELEMENT_IS_SOURCE flag
uridecodebin behaves like a source, let's mark it as a source
2010-10-11 14:31:05 +02:00
Zaheer Abbas Merali
b3629a7e1f multifdsink: gdp protocol is deprecated. People should use gdppay instead. 2010-10-07 18:55:34 +01:00
Sebastian Dröge
e82835d08d volume: Regenerate generated orc C code again with an orc fix for loading double parameters 2010-10-08 12:30:33 +02:00
Sebastian Dröge
ca5992bb29 volume: Update generated orc sources 2010-10-08 11:50:43 +02:00
Sebastian Dröge
4a0d435053 volume: Fix unit test failure for the controlled processing functions
Going over integer arithmetic will lead to minimal rounding errors,
leading to +/-1 changes for volume==1.0. Implement the controlled
processing with floating point arithmetic, which was already done
for the C versions anyway.
2010-10-08 11:49:09 +02:00
Sebastian Dröge
19b9460e60 audioconvert: Update generated orc files 2010-10-08 00:01:15 +02:00
Sebastian Dröge
80dbf7a901 volume: Update for orc changes
double parameters are declared with .doubleparam now.
2010-10-08 00:01:15 +02:00
Sebastian Dröge
4e2b6ac13a volume: Update generated orc sources 2010-10-08 00:01:15 +02:00
Sebastian Dröge
3c96cf8917 volume: Fix controlled processing via orc 2010-10-08 00:01:15 +02:00
Sebastian Dröge
d0e96cc90f volume: Actually enable usage of the orc optimized functions 2010-10-08 00:01:15 +02:00
Sebastian Dröge
39ef36b32c volume: Implement int32 processing with orc 2010-10-08 00:01:15 +02:00
Sebastian Dröge
c11ee1a100 volume: Implement controlled processing for int16/1-2ch and int8/1,2,4ch with orc 2010-10-08 00:01:15 +02:00
Sebastian Dröge
0bf4abe581 volume: Implement controlled processing for f64/1ch and f32/1-2ch in orc 2010-10-08 00:01:15 +02:00
Sebastian Dröge
988849a8b4 volume: Convert parts of the controlled processing to orc 2010-10-08 00:01:14 +02:00