Commit graph

2332 commits

Author SHA1 Message Date
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
Tim-Philipp Müller
0ed09fef0d videotestsrc: use C comments instead of C++-style comments 2010-03-15 13:40:47 +00:00
Tim-Philipp Müller
8ff8195108 videotestsrc: use g_value_set_static_string() for string constants 2010-03-15 13:40:47 +00:00
Sebastian Dröge
bd2277d214 playsink: Avoid g_object_set() on NULL if a text sink is used
Fixes bug #611702.
2010-03-15 14:26:28 +01:00
Sebastian Dröge
a6ffa3fbb5 subparse: Correctly escape brackets in DKS regex
Fixes bug #612783.
2010-03-15 14:10:09 +01:00
David Schleef
84ed474e6a videotestsrc: add chroma-zone-plate pattern
pattern=chroma-zone-plate is pattern similar to zone-plate,
but in the chroma channels instead of luma.
2010-03-15 01:35:15 -07:00
David Schleef
ac9b69a088 videotestsrc: add chroma-site to caps 2010-03-15 01:33:36 -07:00
David Schleef
c1974322ea videotestsrc: Add color-matrix to template caps 2010-03-14 16:18:34 -07:00
Sebastian Dröge
944d6b1786 volume: Revert rounding behaviour changes when using controlled volume properties
Now the controlled and non-controlled code paths are all having
exactly the same rounding behaviour and the unit tests pass again.
2010-03-12 15:49:17 +01:00
Sebastian Dröge
baf2fc1c58 volume: Only allocate a mute value array if a control source exists for the mute property 2010-03-12 15:49:17 +01:00
Benjamin Otte
3a7d632a59 Add -Wredundant-decls to warning flags
... and fix all the warnings that flag throws.
2010-03-11 15:38:18 +01:00
Benjamin Otte
43b1683421 Add -Wmissing-declarations -Wmissing-prototypes to warning flags
Includes all the fixes necessary to make stuff compile again.
2010-03-11 13:50:31 +01:00
Mark Nauwelaerts
0f6cf41947 playsink: provide correct error message if configured audio/video sink fails 2010-03-10 14:37:05 +01:00
David Schleef
173b0758dc videotestsrc: Add color-matrix to caps 2010-03-09 13:11:38 -08:00
Sebastian Dröge
71ca26fc7f playsink: Don't fail if there are subtitles and audio but no video
Change playbin2 to not error out if there are subtitles and audio
but no video. If visualizations are enabled the subtitles are rendered on top
of the visualization stream, otherwise the subtitles are not linked at all and
only the audio is played (and a warning message is posted).

If there are only subtitles but neither audio nor video an error message is
still posted.

Fixes bug #610866.
2010-03-09 21:01:38 +00:00
Sebastian Dröge
5d0957525a volume: If a controller is used, use sample accurate property values
Fixes bug #609801.
2010-03-09 20:58:38 +00:00
Josep Torra Valles
25fc69e6aa playsink: avoid g_object_set() on NULL pointers
There may not be an overlay element if a text-sink is set.

Fixes #611702.
2010-03-03 20:15:44 +00:00
Thiago Santos
616f130d05 videorate: Improve upstream negotiation
Put peer pad caps preferred framerates first, indicating
they are videorate's first choices, removing an unnecessary
conversion.

Fixes #608025
2010-02-22 17:03:07 -03:00
Sebastian Dröge
ff21fe1d25 playbin2, playsink, subtitleoverlay: Set subtitle encoding properly
For this add subtitle encoding properties to playsink and subtitleoverlay
and update the values in the containing elements.

Also update the font description in textoverlay or the used renderer
element if it is changed during playback.

Fixes bug #610310.
2010-02-22 20:47:34 +01:00
Sebastian Dröge
9fa9834535 playsink: Ghost the video sinkpad if a text sinkpad is available
Only don't ghost it if no visualizations are need and if
no text is needed and no textchain was created yet.

Fixes bug #610379.
2010-02-19 17:44:18 +01:00
David Schleef
8cf4f48892 tcp(client/server)src: Fix handling of closed sockets
The peer closing the socket should cause an EOS, instead of
silently doing nothing.  This changes the behavior to be
more like fdsrc.  Fixes: #610386
2010-02-18 11:44:59 -08:00