Commit graph

2752 commits

Author SHA1 Message Date
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
Sebastian Dröge
ac38fbc3a7 volume: Implement f64 scaling with orc
This requires orc 0.4.10
2010-10-08 00:01:14 +02:00
Sebastian Dröge
f5e9d8bb62 audioconvert: Implement remaining conversion functions from/to doubles to orc
This requires orc 0.4.10
2010-10-08 00:01:14 +02:00
Tim-Philipp Müller
4482cacb24 audiorate: use g_object_notify_by_pspec() if possible
Use g_object_notify_by_pspec() when building against GLib >= 2.26.
This avoids the pspec lookup which takes the global paramspec pool lock.
2010-10-07 20:54:32 +01:00
Tim-Philipp Müller
82d2669f4f videorate: use g_object_notify_by_pspec() if possible
Use g_object_notify_by_pspec() when building against GLib >= 2.26.
This avoids the pspec lookup which takes the global paramspec pool lock.
2010-10-07 20:37:10 +01:00
Thiago Santos
6d8cb1f42d streamsynchronizer: Do not advance segment starts beyond stop times
Advance stop times too when they are getting higher than the
stop time of segments, avoiding assertions.

The stop time has to be advanced too so that running time keep in sync
for gapless mode.

https://bugzilla.gnome.org/show_bug.cgi?id=631312
2010-10-07 11:20:48 -03:00
Tim-Philipp Müller
a86613a487 videoscale: use math-compat.h here as well
Hopefully the powers that be don't mind the gst/glib include here
too much.
2010-10-05 19:15:47 +01:00
Tim-Philipp Müller
383f7edaf4 videotestsrc: include new math-compat.h header for rint() on MSVC
Should fix compilation with Visual Studio 2008.

https://bugzilla.gnome.org/show_bug.cgi?id=630802
2010-10-05 19:13:43 +01:00
Sebastian Dröge
bcf7a7341e volume: Update generated orc files 2010-10-01 10:47:08 +02:00
Sebastian Dröge
c1bf1ba843 volume: Improve f32 scaling by using only a single array
Passing the same array as dest and src is invalid anyway because
they're maked with the restrict qualifier.
2010-10-01 10:45:24 +02:00
Arun Raghavan
0cf81938a1 pbutils: add AAC profile detection to codec utils
This moves AAC profile detection to pbutils, and uses this in
typefindfunctions. This will also be used in qtdemux.

https://bugzilla.gnome.org/show_bug.cgi?id=617314

API: gst_codec_utils_aac_get_profile()
API: codec_utils_aac_caps_set_level_and_profile()
2010-09-30 13:09:29 +01:00
Arun Raghavan
c77f88cac6 pbutils: add codec-specific utility functions for AAC
This allows us to add generic codec-specific functionality, like
extracting profile/level data from headers, without having to duplicate
code across demuxers and typefindfunctions.

As a starting point, this moves over AAC level extraction code from
typefindfunctions, so it can be reused in qtdemux, etc.

https://bugzilla.gnome.org/show_bug.cgi?id=617314

API: gst_codec_utils_aac_get_sample_rate_from_index()
API: gst_codec_utils_aac_get_level()
2010-09-30 13:09:28 +01:00
Edward Hervey
b8dea19bbd decodebin2: Don't post async-done when not needed
Where it was previously located, we would get async-done for the first
unknown-type, even if other valid streams would appear afterwards.
decode_bin_expose() will take care of posting async-done when the group
is exposed.

But we still want to post it in case the typefinding returned an unknown
type, in which case we will post it after posting an error.

These two changes ensure we do as much as possible before posting async-done.
2010-09-29 18:59:16 +02:00
Edward Hervey
4e781d6fe3 volume: orc fixup for loading float arguments
This is only used with DISABLE_ORC.
2010-09-20 16:29:20 +02:00
Sebastian Dröge
ff45b44e19 typefindfunctions: Add mp3 to the apetag extensions 2010-09-20 11:14:55 +02:00
David Schleef
ff409e474a videotestsrc: Fix regression in ball pattern
Was painting using two different methods.
2010-09-18 13:15:08 -07:00
David Schleef
bec69e20ae orc: update generated files to fix MSVC compile issues 2010-09-16 18:03:23 -07:00
David Schleef
af87634078 videoscale: Don't use broken orc feature 2010-09-16 17:56:49 -07:00
Thijs Vermeir
956a075fc4 videotestsrc: Fix indentation 2010-09-16 17:25:00 +02:00
Thijs Vermeir
8d14994bb5 videotestsrc: add bar pattern
Simple bar with foreground color on the background color
2010-09-16 17:14:20 +02:00
Thijs Vermeir
ef02142125 videotestsrc: fix segfault on negative horizontal-speed 2010-09-15 15:29:47 +02:00
Edward Hervey
75b522dacf decodebin2: Actually dispose the unused ghostpads 2010-09-15 14:17:58 +02:00
Sebastian Dröge
35c76b3409 Revert "audioresample: Add GAP flag support"
This reverts commit 129af0d8e6.

This shouldn't be committed at all, it isn't ready and apparently
was in the wrong branch locally.
2010-09-15 11:28:29 +02:00
Leo Singer
129af0d8e6 audioresample: Add GAP flag support
Fixes bug #586570.
2010-09-15 11:01:45 +02:00
David Schleef
d71890156a videotestsrc: Add UYVP 2010-09-14 13:21:54 -07:00
David Schleef
08be25ce62 videotestsrc: Various improvements
Replace moving-color-bars pattern with smpte100, and change
moving-speed to horizontal-speed.  Default is now 0.  Add
a rotation stage to pattern building.
Allocate a temporary scanline for building images.  Remove
unused code.  Disable several patterns that we're unable to
test and probably never used.  Add other variants of bayer
sampling.  Convert some patterns to use videotestsrc_blend_line.
2010-09-14 13:21:54 -07:00
David Schleef
8e60eca315 videotestsrc: clean up blink pattern 2010-09-14 13:21:54 -07:00
David Schleef
ef981b53b6 videotestsrc: Clean up the RGB code 2010-09-14 13:21:54 -07:00
David Schleef
bb80df3a33 videotestsrc: Convert to intermediate AYUV/ARGB
Scanlines are generated into AYUV/ARGB, then converted to the
various formats.
2010-09-14 13:21:54 -07:00
David Schleef
9802339481 videotestsrc: rearrange code to work on scanlines 2010-09-14 13:21:51 -07:00
David Schleef
9b8da1acfb videotestsrc: Fix recent breakage of smpte75 pattern 2010-09-14 12:33:22 -07:00
Thijs Vermeir
809460c651 videotestsrc: add moving color bars pattern
This pattern is moving the color bars with a given
speed. Negative speed is inverting the moving direction.

https://bugzilla.gnome.org/show_bug.cgi?id=628500
2010-09-14 12:33:21 -07:00
David Schleef
0cceeb2035 videoscale: refactor using more Orc code
Convert downsampling to Orc.  Convert horizontal linear scaling
to Orc.  Combine horizontal and vertical scaling into one pass.
2010-09-14 12:33:21 -07:00
Edward Hervey
168aceb3da playback: Switch to using gst_video_convert_frame
https://bugzilla.gnome.org/show_bug.cgi?id=629157
2010-09-14 08:42:43 +02:00
Mark Nauwelaerts
60cad9f007 decodebin2: prevent another race with shutdown state change 2010-09-13 10:06:13 +02:00
Sebastian Dröge
18b282e49f orc: Fix generated source files 2010-09-10 08:43:17 +02:00
Sebastian Dröge
9b85b13d80 adder: Do debug category initialization in plugin_init again 2010-09-09 11:12:56 +02:00
Sebastian Dröge
3c43dbfc51 orc: Update generated source files everywhere 2010-09-09 10:59:59 +02:00
Sebastian Dröge
8ba4b70118 Revert "Revert "Use init functions for Orc code""
This reverts commit 93aa13639d.

Everything should work now after regenerating the disted source files.
2010-09-09 10:57:41 +02:00
Edward Hervey
91ee8507ef videotestsrc: .gitignore new generate_sine_table 2010-09-06 11:53:35 +02:00
Stefan Kost
c45b9d4aef playback: ref the selector pad class inside input-selector
Minimizes the delta to original element in -bad and allows us to keep the
type static.
2010-09-06 11:44:17 +03:00
David Schleef
d03fc85095 videotestsrc: Use static sine table 2010-09-05 20:59:38 -07:00
David Schleef
131d619737 videotestsrc: Add foreground/background-color properties
Replace solid-color property with foreground-color and add
background-color.  Pull some common code out of each of the
pattern generating functions.  Fix many of the patterns to
use foreground-color/background-color instead of white/black.
Generated images are indentical to previously if foreground-color
and background-color are left as default.

API: GstVideoTestSrc::foreground-color
API: GstVideoTestSrc::background-color
2010-09-05 20:59:34 -07:00
David Schleef
fc3840ee73 videotestsrc: deprecate colorspec property
Fixes: #616392.
2010-09-05 17:05:36 -07:00
Sebastian Dröge
65e5984634 audioconvert: Simplify float->s32 conversion
orc 0.4.7 is doing saturated conversion from floats to integers
and it's not necessary to do this manually anymore.
2010-09-05 12:57:36 +02:00
Sebastian Dröge
dd910ceaf4 audioconvert: Update disted orc files 2010-09-05 12:12:43 +02:00
Sebastian Dröge
4e0673872d volume: Enable float processing with orc again 2010-09-05 12:09:42 +02:00
Sebastian Dröge
24831973c0 audioconvert: Use the ORC double support 2010-09-05 12:09:42 +02:00
Edward Hervey
9e0358930d playback: Switch to gstfactorylist from core
https://bugzilla.gnome.org/show_bug.cgi?id=626181
2010-09-03 19:31:52 +02:00
Stefan Kost
c150945e67 videotestsrc: fix typo in property description 2010-09-02 12:58:34 +03:00
Sebastian Dröge
1c2846a0fc audiorate: Fill segment until the end on EOS 2010-09-01 11:37:37 +02:00
Sebastian Dröge
4da242a6b2 videorate: Fill the segment on EOS or at least produce enough frames to use the complete buffer duration
Fixes bug #628400.
2010-09-01 11:33:12 +02:00
Sebastian Dröge
20d5c6d05c videorate: Don't ignore flow returns when filling the previous segment during NEWSEGMENT handling 2010-09-01 11:22:25 +02:00
Stefan Kost
c50104c94e adder: use GST_BOILERPALTE macro 2010-09-01 10:07:02 +03:00
Edward Hervey
e75e7dfa80 playback: Set queues silent property to TRUE
We don't use the queue signals within playsink.
2010-08-31 10:12:54 +02:00
Sebastian Dröge
c591b98864 uridecodebin: Only enable progressive downloading if the upstream duration in bytes is known
Otherwise we might try to enable it for live streams, where this would
cause playback to fail completely.

Fixes bug #628028.
2010-08-27 20:45:19 +02:00
Wim Taymans
93aa13639d Revert "Use init functions for Orc code"
This reverts commit b2051090b4.

Fixes the build again until someone pushes the regenerated .c/.h
files too.
2010-08-27 11:49:47 +02:00
David Schleef
f3a989319b videotestsrc: clean up code
Merge various color structures into one.
2010-08-26 17:20:55 -07:00
David Schleef
c831456188 videotestsrc: Add ball pattern 2010-08-26 17:03:13 -07:00
David Schleef
b2051090b4 Use init functions for Orc code 2010-08-26 17:03:13 -07:00
Stefan Kost
e4d33ef53b volume: make the orc usage for float conditional again
See bug #628009. The tests still fail in the orc code (which we just don't call
now).
2010-08-26 15:19:00 +03:00
Stefan Kost
93b2924485 volume: enable ORC for float in volume 2010-08-25 19:03:51 +03:00
Sebastian Dröge
2ee9360cf6 audioconvert: Require ORC 0.4.7 for the loadl/storel opcodes
And update disted files to allow compilation with no or too old ORC.
2010-08-24 15:07:40 +02:00
Alessandro Decina
842a6c64c5 adder: Make sure FLUSH_STOP is always sent after a flushing seek.
Send FLUSH_STOP right after forwarding the seek event upstream if necessary.
This makes sure that adder->srcpad is not left flushing if seeking fails or if
upstream is blocked.

The same fix was already applied to videomixer in 49b2a946.
2010-08-24 11:43:23 +02:00
Sebastian Dröge
5e0706c74f audioconvert: Use ORC for the float<->int32 conversion
This should speed up standard Vorbis encoding and decoding pipelines a bit.

Thanks to David Schleef for the assistance to get the ORC code right
and explaining everything.
2010-08-24 11:11:49 +02:00
Sebastian Dröge
613c44044a videotestsrc: Fix NV21 rendering
Using the same as for NV12 will result in wrong colors and crashes.
2010-08-24 09:51:46 +02:00
Sebastian Dröge
ac59769604 videorate: Mark duplicated frames with the GAP flag
We currently don't use the GAP flag for video and the docs say
that this is for buffers, that have been created to fill a gap
and contains neutral data. For video this is the previous frame.

This information can be used by encoders to encode the duplicated
frames more efficiently. See bug #627459.
2010-08-20 12:03:44 +02:00
Sebastian Dröge
cd5527fa4e ffmpegcolorspace: Add back support for 8 bit paletted RGB
This was removed by 3a00a97fd2
while making the pad template caps more compact.

Fixes bug #626629.
2010-08-19 18:51:25 +02:00
Edward Hervey
8b4bea5f6a playback: Delay usage of GstFactoryList
By delaying it to when it's actually needed, we speed things up a bit
since some elements might have been added/removed in between.

https://bugzilla.gnome.org/show_bug.cgi?id=626718
2010-08-13 17:00:05 +02:00
Robert Swain
268270d35e playbin2: uridecodebin: add property to configure ring buffer size 2010-08-13 16:48:22 +02:00
Tim-Philipp Müller
2dab0a8928 ffmpegcolorspace: remove chroma-site and color-matrix fields from RGB caps 2010-08-12 11:46:39 +01:00
Mark Nauwelaerts
9975a2d7b4 streamsynchronizer: prevent deadlock with _chain when deactivating pad
Fixes #626581.
2010-08-12 12:07:34 +02:00
Stefan Kost
596d148390 playback: bad bad editor, readd missing line to fix the build 2010-08-12 12:51:35 +03:00
Mark Nauwelaerts
c1a705acbc streamsynchronizer: send preroll buffer when delaying preroll eos
That is, if eos is received which will not be forwarded, and the stream
has not yet seen any data, then send a buffer to preroll downstream
(which might otherwise be accomplished by the eos event).
2010-08-12 10:52:59 +02:00
Mark Nauwelaerts
2379e96bbc playsink: remove some heuristic in chain configuration code
.. since queues are now inserted unconditionally.
2010-08-12 10:52:59 +02:00
Mark Nauwelaerts
6c5b437118 playbin2/playsink: update subtitle handling for streamsynchronizer
Streamsynchronizer excepts to see stream-changed msg for all streams, but to
arrange for this, video and subtitle streams need to be decoupled by means
of queues (due to pad blocks that may occur).

Fixes #626463.
2010-08-12 10:52:59 +02:00
Mark Nauwelaerts
ff8bdcfe94 playsink: always have a queue in chain head to aid streamsynchronizer
Specifically, as the latter may have one thread pushing EOS to several streams,
that needs to be decoupled into various thread to prevent preroll hanging
problems.
2010-08-12 10:52:58 +02:00
Mark Nauwelaerts
385446bc90 streamsynchronizer: drop lock when pushing eos downstream
... to prevent deadlock (e.g. upon seek) when downstream waits in preroll.
2010-08-12 10:52:58 +02:00
Mark Nauwelaerts
837d524ef0 streamsynchronizer: clear stream eos state on FLUSH and new stream 2010-08-12 10:52:58 +02:00
Mark Nauwelaerts
1a40681f53 playsink: set READY sinks to NULL before freeing chain upon failure 2010-08-12 10:52:58 +02:00
Stefan Kost
23cadbae94 playback: move tests from plugin-dir to tests/examples/playback 2010-08-12 10:52:34 +03:00
Sebastian Dröge
4d757a29ee videoscale: Only set the PAR if the caps already had a PAR
Otherwise we're producing different caps and basetransform thinks that it
can't passthrough buffer allocations, etc.

In 0.11 all video caps really should have the PAR set...
2010-08-11 18:10:45 +02:00
Mark Nauwelaerts
be6fb6e747 videotestsrc: add solid-color pattern
... which generalizes the current listing of white, black, etc.
In particular, also allow specifying alpha channel, and modify
some structures and pattern filling to cater for alpha value as well.

Fixes #624919.

API: GstVideoTestSrc:solid-color
2010-08-09 09:47:41 +02:00
Wim Taymans
908afd4b15 decodebin2: use more efficient way of getting caps
When inspecting the caps of a pad, try to get the pad _CAPS first before calling
the getcaps function.
2010-08-04 10:33:31 +02:00
Thiago Santos
d123ab7bb1 typefind: Detect avc1 ftyp as video/quicktime
Detects avc1 ftyp as video/quicktime (iso variant)
2010-08-01 06:53:28 -03:00
Tim-Philipp Müller
818f395402 streamsynchronizer: fix printf format compiler warnings
Make OSX build bot happy.
2010-07-26 20:25:55 +02:00
Sebastian Dröge
53318f20cc videorate: Fixate the pixel-aspect-ratio if necessary 2010-07-26 16:05:44 +02:00
Sebastian Dröge
175aae9e85 streamsynchronizer: Delay EOS events until all streams are EOS
This fixes a race condition in playbin2's gapless mode, where the
EOS of other streams might arrive in the sinks before the last stream
ends and the switch to the new track happens. The EOS sinks won't
accept any new data then and playback stops.

To prevent this, delay all EOS events until all streams are EOS
and advance the sinks of the EOS streams by filler newsegment
events if necessary.

Fixes bug #625118.
2010-07-24 18:17:43 +02:00
Arun Raghavan
ae03de8ff8 typefindfunctions: export 3gp profile in caps
This reads the 3gp profile from the major/compatible brands and puts
this as a 'profile' field in caps. This can be used by demuxers to
decide whether they can handle this stream or not. Also needed for
DLNA.

https://bugzilla.gnome.org/show_bug.cgi?id=620291
2010-07-24 10:50:45 +01:00
Parthasarathi Susarla
aad661ec77 typefinding: detect enhanced AC-3
https://bugzilla.gnome.org/show_bug.cgi?id=623846
2010-07-24 09:48:41 +01:00
Sebastian Dröge
ec3c19189d streamsynchronizer: Fix another deadlock when going PAUSED->READY while streams are waiting for the GCond 2010-07-22 09:13:48 +02:00
Edward Hervey
b93edac480 playsink: Switch to faster pad linking methods
Logic for choice of GST_PAD_LINK_CHECK_* is as follows:
* Where return of pad_link wasn't checked before : NOTHING
* Where linking is between known compatible elements : NOTHING
* All other cases : TEMPLATE_CAPS

Slashes down playsink reconfigure by up to 50% cpu time.
2010-07-20 21:05:45 +02:00
Sebastian Dröge
c199a560a9 playsink: Set add-borders=true on the videoscale instances
This makes sure that we always keep the display aspect ratio and
add black borders if necessary, which is usually something you want
for viewing a video.
2010-07-19 15:59:17 +02:00
Sebastian Dröge
6fb91f7711 videoscale: Rename borders property to add-borders 2010-07-19 15:59:17 +02:00
Tim-Philipp Müller
ef4dc0ccf4 videoscale: update disted orc files for latest changes 2010-07-19 09:39:28 +01:00
Sebastian Dröge
52e711b11d videoscale: Add support for adding black borders to keep the DAR if necessary
Fixes bug #617506.
2010-07-18 15:44:14 +02:00
Sebastian Dröge
619e5b6e44 videoscale: Fix linear scaling of UYVY scanlines
Fixes bug #624656.
2010-07-18 15:44:14 +02:00
Sebastian Dröge
fc9de9e0a1 videoscale: Fix caps fixating if the height is fixed but the width isn't 2010-07-18 15:44:14 +02:00
Sebastian Dröge
58c77eb1b4 videoscale: Remove interlaced scaling again
This behaviour was not preferred and caused visible image quality
degradations. The real solution would be, to apply a real
deinterlacing filter before scaling the frames.

Fixes bug #615471.
2010-07-18 15:44:13 +02:00
Sebastian Dröge
9fe51a4a50 videoscale: Add helper method for filling the VSImage struct 2010-07-18 15:44:13 +02:00
Tim-Philipp Müller
bd0adb11fd typefinding: make mpeg-ts typefinder scan more data
We only look for packets with payload, but it appears there may be packets without,
which makes it harder to find the N packets with payload in a row that we need in
order to typefind this successfully, so scan some more data than necessary in the
optimistic scenario. Alternatively we could change IS_MPEGTS_HEADER().

Fixes #623663.
2010-07-18 11:37:11 +01:00
Sebastian Dröge
a16024d9fb playsink/streamsynchronizer: Remove and deactivate pads after calling the change_state function of the parent class
Fixes some deadlocks.
2010-07-16 18:51:35 +02:00
Sebastian Dröge
1605bef4b9 streamsynchronizer: Drop DISCONT flag on first buffer for new streams
Also reset stream state when going back to READY and on flush-stop.
2010-07-16 18:25:38 +02:00
Sebastian Dröge
405b47a79a playsink: Fix gapless playback in many non-simple scenarios
Before gapless playback failed when switching between audio-only,
video-only and audio-video files, when choosing different clocks
and when the different streams had different durations.

This is now handled by a helper element, which keeps track of the
running times of all streams and synchronizes them.

Fixes bug #602437.
2010-07-16 17:40:46 +02:00
Sebastian Dröge
f835533cb4 playbin2: Remove QOS event adjustments for gapless playback mode 2010-07-16 17:40:46 +02:00
Philip Jägenstedt
72ca12e4c1 typefind: only associate .webm with WebM
.weba (audio) and .webv (video) were speculation on my part before
the public launch. As of yet no decision has been made on the
file extension for audio-only WebM, and I'm pretty sure there will
never be one for video-only.

Fixes bug #623837.
2010-07-16 17:40:45 +02:00
Mark Nauwelaerts
5e7ff51d19 playsink: use proper error message code for failing state change 2010-07-16 13:26:26 +02:00
Sebastian Dröge
8bd37ab995 playbin2: Disconnect and destroy uridecodebins when going from READY to NULL
Fixes spurious errors that happen after an error and playing a working
stream afterwards or signals that are emitted for non-active groups.

Fixes bug #624266.
2010-07-14 15:11:17 +02:00
Sebastian Dröge
115e503bdf Revert "playbin2: Don't put "raw" subtitle types in the raw caps for decodebin2"
This reverts commit 9d7538247f.

If the DVD subpicture caps are not part of the raw caps, uridecodebin
doesn't qualify resindvdbin as raw source and plugs decodebins, which
causes broken DVD playback because of bugs elsewhere.

This change was originally added to only expose supported, raw subtitles,
e.g. if the subtitle sink did not support DVD subpictures but a converter
to some supported format exists. It's not very important right now because
we have nothing (that is autoplugged) to convert from plaintext/pango-markup
or DVD subpictures to something else.

Fixes bug #623583.
2010-07-06 09:47:45 +02:00
Sebastian Dröge
6e9deae749 ffmpegcolorspace: Use correct Y offset for YVYU -> RGB conversions
Fixes bug #623530.
2010-07-04 17:40:11 +02:00
Sebastian Dröge
d774b46077 ffmpegcolorspace: Use correct Y offset for the YUY2 -> RGB conversions
Fixes bug #623530.
2010-07-04 17:40:11 +02:00
Sebastian Dröge
263201d9e7 ffmpegcolorspace: Fix conversion of packed 4:2:2 YUV to 8 bit grayscale
The last pixel wasn't written before for odd widths.

Fixes bug #623418.
2010-07-02 20:09:58 +02:00
Sebastian Dröge
9c9f97251a ffmpegcolorspace: Fix conversion of packed 4:2:2 YUV to RGB
The last pixel wasn't written before.

Fixes bug #623384.
2010-07-02 14:58:37 +02:00
Sebastian Dröge
ef4165f08b ffmpegcolorspace: Fix invalid memory accesses with odd widths/heights during subsampling
Fixes bug #623375.
2010-07-02 13:59:55 +02:00
Sebastian Dröge
bc0eefaead playbin2: If setup of the source element fails in READY->PAUSED deactive the current group
Otherwise the uridecodebin will be still a child of playbin2 and
its signals will still be connected. In future state changes this
will then emit unrelated signals that will confuse playbin2 or,
even worse, cause crashes and assertions.

Fixes bug #623318.
2010-07-01 21:29:14 +02:00
Sebastian Dröge
47317338e9 videotestsrc: Explicitely link with $(LIBM) 2010-06-27 06:38:24 +02:00
Sebastian Dröge
a75aa2a20c videoscale: Explicitely link with $(LIBM) 2010-06-27 06:38:24 +02:00
Tim-Philipp Müller
b16e7e8fa2 gst: update orc files 2010-06-26 18:19:33 +01:00
Edward Hervey
ec637580a8 decodebin2: Properly clean DecodeChain after errors.
If an error happens, the PAUSED state will never be reached. If an
application re-uses decodebin2 (like totem) where one would normally
set to READY between each file, the cleanup that normally happens in
the PAUSED=>READY codepath will never be called, resulting in the
following file to re-use the previous demuxer/decoder/...

https://bugzilla.gnome.org/show_bug.cgi?id=622807
2010-06-26 17:57:24 +02:00
Edward Hervey
3a00a97fd2 ffmpegcolorspace: Use a more concise pad template
Speeds up caps nego 2 fold

https://bugzilla.gnome.org/show_bug.cgi?id=622696
2010-06-25 17:07:12 +02:00
Arun Raghavan
026e5d3e67 typefinding: Mark ISO 14496-14 files as video/quicktime
These are currently being marked as audio/x-m4a which is incorrect.

https://bugzilla.gnome.org/show_bug.cgi?id=620720
2010-06-24 14:25:38 +01:00
Sebastian Dröge
153b21fc85 videoscale: Fix resampling of ARGB scanlines
Previously we would read behind the end of the source lines.
2010-06-24 12:06:05 +02:00
Wim Taymans
7379202cca playsink: clear ts-offset pointer
We need to clear the pointer to our ts-offset element when we destroy the video
chain elements to make sure nobody derefs it to invalid memory afterwards.
2010-06-23 12:10:32 +02:00
Edward Hervey
97e14fda28 playsink: Reset ts_offset field when freeing chain
Otherwise we would end up with a bogus ->audiochain->ts_offset field
which would cause segfaults/assertions when trying to modify the
'ts-offset' property in update_av_offset().

Was easy to trigger when using a list of audio+video files mixed with
video-only files in totem.
2010-06-23 10:16:07 +02:00
Sebastian Dröge
cff70878b6 ffmpegcolorspace: Add YUY2/YVYU to all RGB formats conversions 2010-06-17 17:21:01 +02:00
Sebastian Dröge
21cb7fd0ff ffmpegcolorspace: Fix Y42B to YUY2/YVYU/UYVY conversion for odd widths 2010-06-17 17:21:01 +02:00
Sebastian Dröge
bd56c3c44f ffmpegcolorspace: Fix YUY2/YVYU/UYVY to Y42B conversion for odd widths 2010-06-17 17:21:00 +02:00
Wim Taymans
6d2621d02c decodebin2: improve autoplugging
Use the pad caps when they are available to continue the autoplugging. If the
pad caps are set, they are fixed and then we can directly continue autoplugging.
2010-06-16 19:17:05 +02:00
David Schleef
7778ed7382 videoscale: Fix black horizontal line in image 2010-06-14 15:46:53 -07:00
Edward Hervey
7b2584ed68 typefindfunctions: Fix unitialized variables
yay macosx compilers :(
2010-06-14 14:13:32 +02:00
Edward Hervey
801cab604d ffmpegcolorspace: Use Quarks for structure name/field checking 2010-06-14 13:28:54 +02:00
Edward Hervey
3f1f8f66ed ffmpegcolorspace: Speed up _remove_format_info
Instead of copying full caps, use the fact that the provided caps only have
one structure and only copy around structures.
2010-06-14 13:28:54 +02:00
Edward Hervey
19f5fda87d ffmpegcolorspace: Transfer structures instead of copying them
Avoids many expensive structure copies
2010-06-14 13:28:50 +02:00
Prahal
2cb7cfab19 decodebin2: use accumulator for autoplug-sort
Use an accumulator for the autoplug-sort signal so that we can stop the emission
when a signal handler produced a valid result. This avoids the object handler
to overwrite the results from user signals.

Fixes #621161
2010-06-14 11:19:10 +02:00
Sebastian Dröge
fa8fd0d7f6 videoscale: ...and add Y16 case for the linear scaling 2010-06-13 20:57:19 +02:00
Sebastian Dröge
c2e01e09c4 videoscale: Add Y16 case for 4-tap scaling 2010-06-13 20:38:23 +02:00
Sebastian Dröge
c2bdfc11af videoscale: Use correct variables for debug output 2010-06-12 21:04:48 +02:00
Sebastian Dröge
cef0bc9657 ffmpegcolorspace: Fix Y16 from/to GRAY8 conversion 2010-06-12 16:51:41 +02:00
Sebastian Dröge
398c1c5fc8 ffmpegcolorspace: Don't crash when doing gray YUV to GRAY conversion 2010-06-12 16:31:49 +02:00
Sebastian Dröge
2ec067c9fc videoscale: Update disted orc files 2010-06-12 16:23:23 +02:00
Sebastian Dröge
dc110b3b37 uridecodebin: Allow video/webm for progressive downloading 2010-06-12 16:16:37 +02:00
Sebastian Dröge
c3cfb404ae videoscale: Add support for more gray formats 2010-06-12 13:59:32 +02:00
Sebastian Dröge
b4c2af416d videoscale: Use libgstvideo for caps parsing, etc 2010-06-12 13:51:26 +02:00
Sebastian Dröge
d91e3d8d78 videoscale: Use GST_VIDEO_CAPS_GRAY{8,16} 2010-06-12 13:00:26 +02:00
Sebastian Dröge
944cfa5871 videoscale: Implement linear merging of Y16 scanlines with orc 2010-06-12 12:57:14 +02:00
Tim-Philipp Müller
b5a7e96291 typefinding: look for dts frames at non-zero offsets too
Scan a bit into the data when checking for dts frames instead
of expecting the frame sync to be right at the start of the
data. This is needed for some dts-disguised-as-pcm-in-wav files.

See #413942.
2010-06-11 15:59:54 +01:00
Tim-Philipp Müller
9235c91bec typefinding: add typefinder for dts audio 2010-06-11 15:59:53 +01:00
Sebastian Dröge
2b9670958d playbin2: If the text-sink claims to support ANY caps assume it only support raw plaintext subtitles
Fixes bug #621071.
2010-06-10 13:06:54 +02:00
Stefan Kost
487c88ca42 volume: make the orc codes available for testing.
Add a USE_ORC define for now and switch 'this' to 'self'. Having orc enabled
passes the test suite and various manual gst-launch pipelines.
2010-06-09 16:59:10 +03:00
Tim-Philipp Müller
164a91d10d Fix build if orc is not installed
Orc is not a hard requirement. Things should still compile and
work without orc, but slow fallback code may be used in this
case. Fix up configure to not error out if orc is not installed
and wrap use of orc profiling in audioresample in #ifdefs.

Fixes #620136 some more.
2010-06-08 13:26:53 +01:00
David Schleef
d7f7e1cc23 audioconvert, videotestsrc: Update generated Orc code
Fixes compile errors with initialization of unions.
2010-06-08 00:33:31 -07:00
David Schleef
e39e729a70 audioresample: convert from liboil to orc 2010-06-07 23:58:54 -07:00
David Schleef
3bbdc0c5a2 volume: convert from liboil to orc 2010-06-07 23:58:54 -07:00
David Schleef
dbcf70eaae videotestsrc: convert from liboil to orc 2010-06-07 23:58:54 -07:00
David Schleef
dbfd5a5af8 videoscale: convert from liboil to orc 2010-06-07 23:58:54 -07:00
David Schleef
c49806ed16 audioconvert: convert from liboil to orc 2010-06-07 23:58:53 -07:00
David Schleef
c4ab9c0de8 adder: convert from liboil to orc 2010-06-07 23:58:53 -07:00
Wim Taymans
ecc9a28152 playbin2: add av-offset property
Add av-offset property to control the audio and video sync offset. This can be
used to to manually correct badly synced streams.

See #620529
2010-06-07 14:38:42 +02:00
Sebastian Dröge
39b68dc2a8 ffmpegcolorspace: Map "Y8 " and "GREY" to "Y800" and add it to the template caps 2010-06-07 08:31:53 +02:00
Martin Bisson
4c0b39b680 ffmpegcolorspace: Add support for Y800 and Y16
Fixes bug #620441.
2010-06-07 08:18:04 +02:00
Tim-Philipp Müller
261a1447fa typefinding: fix log function printf format issue 2010-06-06 16:46:55 +01:00
Tim-Philipp Müller
d4269515fa typefinding: stop jpeg typefinding once we found a SOF marker 2010-06-05 18:25:51 +01:00
Tim-Philipp Müller
95b4de4ed7 typefinding: improve jpeg typefinder
Make jpeg typefinder check more than just the first two bytes
plus Exif or JFIF marker. This allows us to report MAXIMUM
probability in cases where there's no Exif or JFIF marker,
making typefinding stop early. Also extract width and height,
because we can.
2010-06-05 18:06:42 +01:00
Tim-Philipp Müller
14d14a9143 typefinding: fix AC-3 typefinding so that it actually checks for a second frame
Fix typo that made the AC-3 typefinder not actually check for a
second frame, but rather compare the sync point found to itself,
which resulted in the AC-3 typefinder reporting an overly optimistic
MAXIMUM or VERY_LIKELY probability when it found a possible frame
sync.
2010-06-05 17:24:31 +01:00
Wim Taymans
13f6829497 playbin2: improve screenshot code
Use appsrc and appsink in the screenshot code to make things nicer.
2010-06-05 12:27:12 +02:00
Wim Taymans
31ef191f01 playsink: add convert-frame action signal
Add a convert-frame action signal.

Fixes #620279
2010-06-05 11:09:41 +02:00
Wim Taymans
3cf75c34d3 playbin2: move marshaller to screenshot
Move the marshaller for the convert_frame signal to the screenshot file in
preparation for moving it to playsink.

See #620279
2010-06-05 11:09:41 +02:00
Wim Taymans
afcf3a3517 playbin2: move convert_frame to playsink
Move the convert_frame function to playsink and make it part of the API. This is
in preparation to add the convert_frame signal to playsink.

See #620279
2010-06-05 11:09:40 +02:00
Wim Taymans
823089cf68 playsink: add property to get the last frame
Add a property to get the last video frame.

See #620279
2010-06-05 11:09:40 +02:00
Edward Hervey
cbff745b49 decodebin2: Handle raw streams we don't want.
If a file contains raw streams (not requiring a decoder) that we do
not want (expose-all-streams == FALSE), we would previously consider
those of unknown-type (missing a decoder) ... whereas in fact it was just
because they don't need decoders.

This only applies if expose-all-streams is FALSE.
2010-06-04 19:30:14 +02:00
Edward Hervey
514a34b255 audiorate: Fix buffer offset_end when within tolerance.
This fixes issues if we then have downstream elements that operate
on offset/offset_end.

And add the expected timestamp in the debug logs
2010-05-26 08:51:09 +02:00
Sebastian Dröge
e3285fb53d videotestsrc: Fixate interlaced, chroma-site and color-matrix fields if necessary 2010-05-22 10:05:40 +02:00
Sebastian Dröge
258e519b49 videorate: Use new string fixation function from core 2010-05-22 10:02:46 +02:00
Sebastian Dröge
b1a9af61c7 videorate: Fixate color-matrix and chroma-site fields if necessary 2010-05-22 09:53:22 +02:00
Sebastian Dröge
220a61f821 videorate: Fixate the interlaced field if necessary
Fixes bug #619310.
2010-05-22 09:53:18 +02:00
Sebastian Dröge
760ae91ec3 typefindfunctions: Add IVF typefinder 2010-05-22 08:55:51 +02:00
Tim-Philipp Müller
33b5172822 videorate: pass object to logging functions, use GST_DEBUG_FUNCPTR 2010-05-21 18:16:07 +01:00
Philip Jägenstedt
3762cfd3d7 typefind: Detect WebM as video/webm
Refactor matroska_type_find into ebml_check_header and a new
matroska_type_find and webm_type_find.
2010-05-19 19:24:35 +02:00
Alessandro Decina
a9c6c978b6 playbin2: fix a typo introduced by 9d753824.
video/x-raw-float => audio/x-raw-float. Fixes #619090.
2010-05-19 16:17:19 +02:00
Sebastian Dröge
9d7538247f playbin2: Don't put "raw" subtitle types in the raw caps for decodebin2
We handle them from the autoplug-continue signal, where the caps supported
by the subtitle sink or overlay are known already.
2010-05-18 08:45:52 +02:00
Sebastian Dröge
0c85f2c890 playsink: Don't fail if subtitles are used but only audio is available and no visualizations
Instead simply disable displaying of the subtitles for now, as was
intended by that part of code...

Fixes bug #610866.
2010-05-14 17:17:33 +02:00
Sebastian Dröge
e5304c3040 playsink: Fix deadlock caused from an additional lock instead of unlock
Also improve debug output for the playsink lock.
2010-05-14 17:13:17 +02:00
Sebastian Dröge
a6a125e4ba videoscale: Use passthrough mode if width and height are not changed
It doesn't matter if the PAR changes or not, processing of every pixel
is only necessary when the width or height changes.
2010-05-13 12:17:31 +02:00
Sebastian Dröge
b3808a57d4 videoscale: Try harder to keep the DAR if possible
Fixes bug #371108.
2010-05-13 11:16:02 +02:00
Sebastian Dröge
9f677090d5 videoscale: Log PAR and DAR of input and output caps when setting caps 2010-05-13 11:16:01 +02:00
Sebastian Dröge
eb2166c97d videoscale: Set input width/height if the output caps don't have any width or height 2010-05-13 11:16:01 +02:00
Andoni Morales
75a2e14e06 videoscale: Try to keep DAR when scaling
Fixes bug #371108.
2010-05-13 11:16:01 +02:00
Sebastian Dröge
1990364816 videotestsrc: Fixate PAR to 1/1 if possible 2010-05-12 10:32:48 +02:00
Edward Hervey
37e975b8cc ffmpegcolorspace : whooops 2010-05-07 19:49:57 +02:00
Edward Hervey
516c824687 ffmpegcolorspace: more minor cleanups 2010-05-07 19:21:13 +02:00
Edward Hervey
0d451ad9cb ffmpegcolorspace: speedup caps transformation
* don't re-create our possible caps every single time, just use the
  template caps.
* don't intersect the caps against the template, basetransform has already
  done that for us.

62% speedup of _transform_caps() (instruction calls, measured with callgrind)
2010-05-07 17:38:46 +02:00
Edward Hervey
20d643ccda uridecodebin: add the 'expose-all-streams' property from decodebin2
API: expose-all-streams

https://bugzilla.gnome.org/show_bug.cgi?id=617868
2010-05-07 17:38:45 +02:00
Edward Hervey
ac4188bd54 decodebin2: Add a property to not expose/decode all streams
API : expose-all-streams

If disabled:
* only the streams that CAN be decoded and match the final caps will have a
  decoder plugged in and be exposed.
* the streams that COULD HAVE BEEN decoded but do not match the finals caps
  will not have a decoder plugged in and will not be exposed.

If no decoder is available to decode a certain stream, then the missing element
message will still be emitted regardless of the value of the property.

https://bugzilla.gnome.org/show_bug.cgi?id=617868
2010-05-07 17:38:38 +02:00
Edward Hervey
e84b203de2 decodebin2: rename are_raw_caps to are_final_caps, correct comment
https://bugzilla.gnome.org/show_bug.cgi?id=617868
2010-05-07 17:18:37 +02:00
Stefan Kost
4965782c48 audioconvert: disambigue comment due to popular demand
Write "target depth" instead of "our depth" or previous ambigous "out depth".
2010-05-07 00:10:22 +03:00
Mark Nauwelaerts
85a8a09ce7 playsink: disconnect signals in some more cleanup cases 2010-05-06 15:41:52 +02:00
Stefan Kost
4967d4e3fd videoscale: use can_intersect to avoid a caps copy 2010-05-06 09:17:33 +03:00
Stefan Kost
948d06e4b3 videorate: trucate own caps, instead of copying and using the first only
We got the caps from an intersect, it is our own, hence we can truncate it.
Besides gst-indent has chooses to line-up all caps in one line again :/.
2010-05-06 09:14:25 +03:00
Stefan Kost
34f8ab5751 decodebin: use can_intersect to avoid a caps copy 2010-05-06 09:12:32 +03:00
Stefan Kost
51739d562c audioconvert: fix typo in comment 2010-05-06 08:22:36 +03:00
Wim Taymans
f99cb8b9bd uridecodebin: add all qtdemux types to downloadable types
Add all the media types that qtdemux can handle to the list of downloadable
types.
2010-05-04 17:54:01 +02:00
Mark Nauwelaerts
db4ccd8610 playbin2: forward duration query duration during group switch if no cached duration
... such as during first group setup.

Fixes #616396.
2010-04-30 13:36:59 +02:00
Stefan Kost
274f80c7a1 adder: only accept seek-types none and set
Previously we were also acting on cur and end, but treating them like none.
2010-04-30 09:24:14 +03:00
Stefan Kost
ab223520ed adder: rework timestamping
Adder was using always incrementing timestamps. Seeking was done by setting the
position in the newsegment event. This was failing when doing segmented seeks
with rate<0.0, as offset (and thus timestamp) would go below 0.

Now we take both cur and end from the seek event. We construct newsegment events
depending including cur and end from the seek event. We set position to the
start of the segment. Timestamp is set to start or end of segment depending on
rate. Offset is recalculated.
2010-04-30 09:24:13 +03:00
Sebastian Dröge
eec0f7c876 playsink: Add support for deinterlacing
This is disabled by default and can be enabled with the
deinterlace flag.

Fixes bug #547603.
2010-04-29 18:21:21 +02:00
Sebastian Dröge
a6be04a73a playbin2: Add flag for enabling/disabling automatic deinterlacing 2010-04-29 18:21:21 +02:00
Sebastian Dröge
1a9c07e5ba playbin: Use g_once_init_{enter,leave} instead of GOnce for enum/flag registration 2010-04-29 18:21:21 +02:00
Sebastian Dröge
bd64568bf4 ffmpegcolorspace: Use GST_BOILERPLATE and use GstVideoFilter as base class
This gives automatic QoS handling.
2010-04-29 18:21:21 +02:00
Sebastian Dröge
6c9ead7030 playsink: Correctly reconfigure the video chain when switching from a subtitle to a non-subtitle file
Fixes bug #616422.
2010-04-29 18:21:21 +02:00
Sebastian Dröge
cc8a5bdcd3 playbin2: If a text sink is provided, let subtitle parsing be done by decodebin2 if required
This way subtitle sinks only get buffers in the format that they
understand, i.e. raw parsed text in most cases.

Fixes bug #614942.
2010-04-29 18:21:21 +02:00
Sebastian Dröge
5cfd799076 playbin2: Set subtitle encoding on the decodebins again 2010-04-29 18:21:21 +02:00
Sebastian Dröge
838d76dc4b videoscale: Some random cleanup 2010-04-29 18:21:21 +02:00
Sebastian Dröge
43b370358d videoscale: Add support for Y444, Y42B and Y41B 2010-04-29 18:21:21 +02:00
Sebastian Dröge
2fb31ad43c videoscale: Reorder template caps by the amount of information contained in the color formats 2010-04-29 18:21:21 +02:00
Joshua M. Doe
8dfa792bc9 videorate: add support for video/x-raw-gray 2010-04-29 18:21:21 +02:00
Sebastian Dröge
b5853bf8ba ffmpegcolorspace: Fix Y41B->Y444 conversion
...which is the intermediate conversion for conversion to all
other formats.

Fixes bug #616545.
2010-04-22 20:58:29 +02:00
Sebastian Dröge
0a8b8ceda0 audiorate: Don't leak the input buffer in error cases
Fixes bug #615572.
2010-04-16 20:51:48 +02:00
Tim-Philipp Müller
b5f0b7c221 build: use LDADD instead of LDFLAGS to specify libs to link to when building executables
Use foo_LDADD instead of foo_LDFLAGS to specify the libraries to link to.
This should make sure arguments are passed to the linker in the right
order, and makes LDFLAGS usable again.

Based on initial patch by Brian Cameron <brian.cameron@oracle.com>

Fixes #615697.
2010-04-14 14:08:15 +01:00
Tim-Philipp Müller
555a3a5d14 typefinding: add channels and rate to ADTS caps if we can 2010-04-12 15:04:31 +01:00
Arun Raghavan
43a04483d9 typefinding: add AAC level to ADTS caps
This adds code to calculate the level for a given AAC stream and export
it in the stream caps. For AAC LC streams, the level is calculated
according to the definition under the AAC Profile. For other streams,
the definition under the Main Profile is used.

HE-AAC support is still to be done, and is dependent on detecting the
presence of SBR and PS in the stream.

Level is added as a field of type string because that's the way it's
done in H.264 caps as well. There are only a few possible levels, so
not using a numerical type is not too painful in this case, and
consistency is nice.

Fixes #613589.
2010-04-12 15:04:31 +01:00
Arun Raghavan
34dcb8458e typefinding: add AAC profile to ADTS caps
This looks at the AAC profile for ADTS streams and adds the profile as a
string in the corresponding caps.

Profile is the actual profile, base-profile denotes the minimum codec
requirements to decode this stream. In this case they're always the
same, but they may differ e.g. in case of certain HE-AAC streams that
can be partially decoded by LC decoders (with loss of quality of course)
if no suitable HE-AAC decoder is available.

Fixes #612312.
2010-04-12 15:04:23 +01:00
Stefan Kost
57cc1150a9 adder: add support for negative playback rates
Decrement sample counter when playing backwards. Set proper segment when playing
backwards (0..cur instead or cur..-1). Add more logging and fix a format string.
2010-04-11 23:23:39 +03:00
Tim-Philipp Müller
62b1764552 playback, ogg: dist new gstplayback.h and gstogg.h 2010-04-09 09:26:08 +01:00
Thomas Green
57b64c001a playbin: Only unref the volume element on dispose and when a new audio sink is set
Unreffing it whenever the sinks are removed will make the volume
element unavailable after a playbin reuse because it is only
recreated if the audio sink has changed.

Fixes bug #614288.
2010-04-09 08:23:33 +02:00
Stefan Kost
45b39fcfc1 audiotestsrc: swap timestamps in forward and reverse mode.
In reverse mode we want use the next next timestamp (and not the other way
around). Fixes the tests again. Also readd a log line that was dropped with
previous commit.
2010-04-03 22:52:01 +03:00
Stefan Kost
718edb5c14 audiotestsrc: implement reverse playback
Support playback at negative rates. When having a GstController assigned, the
element will produce time dependend output.
2010-04-02 21:04:37 +03:00
Edward Hervey
8db7eb4037 gstplaysink: Remove unused variable.
The value of klass is never used
2010-04-01 13:55:15 +02:00
Edward Hervey
a58183459f decodebin2: Removing dead assignment.
The value of group is overwritten a few lines below before being used.
2010-04-01 13:53:37 +02:00
Robert Swain
6515b43e40 playsink: Fix aduio_raw_sink typo 2010-03-30 15:10:42 +02:00
Tim-Philipp Müller
e1f38a685b build: build plugin and example directories in parallel if make -jN is used
We know our plugins and examples are independent of each other, so may
just as well build them in parallel. Makes the output a bit messy, but
that shouldn't be a problem and can easily be avoided with make -j1.
2010-03-29 00:26:59 +01:00
Wim Taymans
133f804d2d uridecodebin: we can handle avi in download mode too
Add avi to the whitelisted types that can be used for download buffering.
2010-03-26 18:24:58 +01:00
Sebastian Dröge
08589317f8 videotestsrc: Only set color-matrix and chroma-site for relevant formats
The color-matrix only makes sense for colorful formats, i.e. not Y800
and the chroma-site only for non-4:4:4(:4) formats.
2010-03-19 16:43:14 +01:00
Tim-Philipp Müller
58a92964c6 build: Makefile.am fixes
Mostly just add missing $(GST_BASE_CFLAGS), but also fix up order
of flags (see docs/random/moving-plugins).
2010-03-19 01:00:36 +00:00
Sebastian Dröge
bbdc60fbcb videoscale: Use correct boundary checks for YUY2/UYVY
Fixes bug #613093.
2010-03-17 16:47:31 +01:00
Sebastian Dröge
5f10a8a9b5 volume: Remove useless cast
It's not necessary anymore after latest core change to GstValueArray.
2010-03-17 15:41:45 +01:00
Benjamin Otte
253d9acbcd Fix for -Wold-style-definition
I didn't add the flag to configure because libvisual ships headers that
trigger this warning.
2010-03-17 12:09:25 +01:00
Benjamin Otte
1471df894a Add -Wformat-nonliteral -Wformat-security
And fix the resulting compile failures.

I'm sorry about the patch necessary to gstclockoverlay.h but after
talking to Tim we decided we can live with it.
2010-03-17 12:09:25 +01:00
Benjamin Otte
3bd4aa26ff Add -Wwrite-strings to configure
Fixes for the code included
2010-03-16 17:41:51 +01:00
Benjamin Otte
5e21fa5e0e gst_element_class_set_details => gst_element_class_set_details_simple
Also change my email from the old university one to the current one.
2010-03-16 17:41:50 +01:00
David Hoyt
cfa8de336c typefind: use g_ascii_strncasecmp() instead of strncasecmp()
g_ascii_strncasecmp() is more portable and likely more robust as
well (with random binary data as input).

Fixes #612845.
2010-03-15 18:45:13 +00:00