Commit graph

1946 commits

Author SHA1 Message Date
Vincent Penquerc'h
9d4989395c oggdemux: add some more debug info when determining start time 2011-11-22 13:01:35 +00:00
Vincent Penquerc'h
2a87d7c8ce oggstream: fix opus duration calculation 2011-11-22 12:55:56 +00:00
Vincent Penquerc'h
ceee36195a oggstream: early out on headers when determining packet duration 2011-11-22 12:00:58 +00:00
Vincent Penquerc'h
e05f1df04b oggstream: account for opus pre-skip in granpos/time mapping 2011-11-22 11:59:54 +00:00
Tim-Philipp Müller
e8fb8cb523 Fix some more printf format warnings 2011-11-22 01:21:04 +00:00
Wim Taymans
8fc2a21775 update for activation changes 2011-11-21 13:35:34 +01:00
Vincent Penquerc'h
9d2a2750c2 ogg: add opus support 2011-11-19 16:06:09 +00:00
Wim Taymans
d0bd5f04c0 update for new scheduling query 2011-11-18 17:58:58 +01:00
Wim Taymans
1ad4d20607 add parent to activate functions 2011-11-18 13:56:04 +01:00
Wim Taymans
7afdff3575 Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudiodecoder.c
2011-11-17 17:07:41 +01:00
Wim Taymans
e302833e65 add parent to pad functions 2011-11-17 12:48:25 +01:00
Mark Nauwelaerts
80658564ae vorbisenc: reset tag setter interface when appropriate 2011-11-16 19:03:49 +01:00
Wim Taymans
2202511e77 add parent to query function 2011-11-16 17:25:17 +01:00
Wim Taymans
94ac7e858f visual: update for renamed flags
Use the _check_reconfigure method instead of checking flags.
Don't need to ref the parent anymore, core does that.
2011-11-16 12:40:26 +01:00
Wim Taymans
026ec68f75 _peer_get_caps() -> _peer_query_caps() 2011-11-15 18:04:17 +01:00
Wim Taymans
7402d3a3d2 update for _get_caps() -> _query_caps() 2011-11-15 18:04:17 +01:00
Wim Taymans
ab9ffa93f5 change getcaps to query
Add sink and src event functions in rtpbasepayload
Add query vmethod to rtpbasepayload.
2011-11-15 18:04:16 +01:00
Tim-Philipp Müller
c76e5804b3 Update for GstURIHandler get_protocols() changes 2011-11-13 23:44:23 +00:00
Tim-Philipp Müller
455f337e3d gio, appsrc, appsink, cdaudiosrc: update for GstURIHandler API changes 2011-11-13 18:22:06 +00:00
Tim-Philipp Müller
83a1e31786 cdparanoia: update for GstCddaBaseSrc -> GstAudioCdSrc renaming 2011-11-12 11:58:58 +00:00
Wim Taymans
ee7072fe7e rename GstBaseAudio* ->GstAudioBase* 2011-11-11 11:52:47 +01:00
Wim Taymans
6511f36fdb audio: GstRingBuffer -> GstAudioRingBuffer 2011-11-11 11:21:41 +01:00
Wim Taymans
e338792ab0 update for adapter api changes 2011-11-10 18:32:39 +01:00
Wim Taymans
3254e79f04 alsa: fix negotiation
Don't assume the format is a string because now it is a list of string in the
template.
Chain up to the parent class implementation of get_caps.
2011-11-10 16:05:19 +01:00
Vincent Penquerc'h
e02a164a36 vorbisenc: fix getcaps ignoring filter caps 2011-11-10 14:38:09 +00:00
Vincent Penquerc'h
67f6f64d88 oggdemux: do not try to write empty header buffers
Those are valid, and the EOS skeleton packet is actually empty.
2011-11-10 14:38:09 +00:00
Vincent Penquerc'h
77230f0106 oggmux: split request pad templates into audio/video/subtitle
https://bugzilla.gnome.org/show_bug.cgi?id=663766
2011-11-10 14:38:09 +00:00
Wim Taymans
671131a83a update for removed fixate functions 2011-11-10 11:02:12 +01:00
Wim Taymans
372b9329b9 remove query types 2011-11-09 11:47:54 +01:00
Vincent Penquerc'h
51426a3b2d textoverlay: continue processing text when silent
This prevents playback wegding when text buffers are
left to pile up.

https://bugzilla.gnome.org/show_bug.cgi?id=662829
2011-11-08 12:02:49 +00:00
Tim-Philipp Müller
d7fc45f42e docs: fix up some Since: markers 2011-11-07 23:05:44 +00:00
Wim Taymans
8c8fcf4d3b Merge branch 'master' into 0.11 2011-11-07 17:18:06 +01:00
Vincent Penquerc'h
5d3852d91a theoraenc: fix speed level failure test
It was testing the opposite of what it thought it was.

https://bugzilla.gnome.org/show_bug.cgi?id=663390
2011-11-07 12:27:16 +00:00
Vincent Penquerc'h
a81cb3ef7f theoraenc: make logically static const data just so
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:15 +00:00
Vincent Penquerc'h
c1aab3e0a7 theoraenc: use th_packet_iskeyframe instead of peeking at bits
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:14 +00:00
Vincent Penquerc'h
ffbe58fd5a theoraenc: trivial comment typos fixes
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:13 +00:00
Vincent Penquerc'h
0c4ccb4f9c theoraenc: warn when trying to set an ignored obsolete property
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:12 +00:00
Vincent Penquerc'h
10811d63f9 theoraenc: refuse to get to READY if the encoder was disabled
https://bugzilla.gnome.org/show_bug.cgi?id=663391
2011-11-07 12:27:11 +00:00
Vincent Penquerc'h
353153d079 oggdemux: survive skeleton finding length behind our backs in push mode
In push mode, we determine duration by doing a seek to the end of the
stream. However, a skeleton stream with an index will cause the duration
to be known already, and we end up never setting the push_time_duration
variable which we use to know duration has been determined.

https://bugzilla.gnome.org/show_bug.cgi?id=662049
2011-11-07 12:20:16 +00:00
Wim Taymans
7ac25e9b26 Merge branch 'master' into 0.11
Conflicts:
	common
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/playback/gstdecodebin2.c
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkaudioconvert.h
	gst/playback/gstplaysinkvideoconvert.c
	gst/playback/gstplaysinkvideoconvert.h
2011-11-07 12:23:15 +01:00
Stefan Sauer
0019bcaa47 controller: port to new location and api changes 2011-11-04 20:14:54 +01:00
Wim Taymans
75fea4f535 oggdemux: fix somtimes pad 2011-11-04 12:53:33 +01:00
Wim Taymans
cf8481b990 fix pad template names for request pads 2011-11-04 10:49:48 +01:00
Sebastian Dröge
41dc3033d4 oggmux: Remove obsolete #include 2011-11-03 09:27:56 +01:00
Wim Taymans
a5fa136c0b update for tag API removal 2011-11-02 12:11:16 +01:00
Wim Taymans
e067e67923 rename meta* -> *meta 2011-11-02 09:04:27 +01:00
Wim Taymans
7cd83031a1 alsa: update for new task api 2011-11-02 09:04:27 +01:00
Tim-Philipp Müller
5ee51e47a1 ext, gst, gst-libs, tests: update for tag list API changes 2011-10-31 14:22:39 +00:00
Wim Taymans
4f9dea137f Merge branch 'master' into 0.11 2011-10-28 11:34:37 +02:00
Thiago Santos
136f5b2690 oggmux: port to gstcollectpads2 2011-10-28 10:06:16 +02:00
Wim Taymans
06311362e9 fix compilation 2011-10-27 17:26:58 +02:00
Wim Taymans
016d036137 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
	gst-libs/gst/audio/gstbaseaudiosink.c
	gst/audioconvert/channelmixtest.c
	gst/playback/gstplaybasebin.c
	gst/playback/gstsubtitleoverlay.c
	tests/examples/Makefile.am
	tests/examples/audio/Makefile.am
2011-10-27 15:44:58 +02:00
René Stadler
133a0b1771 oggdemux: remove avoidable call to gst_object_set_name 2011-10-21 22:24:14 +02:00
Stefan Sauer
53d7d2e966 interfaces: clean up the use of iface and class/klass 2011-10-21 14:46:48 +02:00
Vincent Penquerc'h
1f900dc20d vorbisdec: do not try to read past the buffer array
https://bugzilla.gnome.org/show_bug.cgi?id=662108
2011-10-19 16:45:06 +02:00
Mark Nauwelaerts
43928e33e6 vorbisdec: only finish header packet frame if received in-stream
... rather than scaring audiodecoder with a frame extracted from caps.

Fixes #662108 (partially).
2011-10-19 16:44:44 +02:00
Vincent Penquerc'h
26e1c2d628 oggdemux: do not retry seeking indefinitely
https://bugzilla.gnome.org/show_bug.cgi?id=661897
2011-10-17 10:51:19 +01:00
Wim Taymans
05ad8a3432 Merge branch 'master' into 0.11
Conflicts:
	ext/vorbis/gstvorbisenc.c
2011-10-10 11:45:49 +02:00
Wim Taymans
f1088ed647 update for UNEXPECTED -> EOS flowreturn 2011-10-10 11:39:52 +02:00
Mark Nauwelaerts
a7f508012c vorbisenc: only push header buffers following initial events 2011-10-09 21:20:35 +02:00
Wim Taymans
889a7e89c9 vorbisdec: report to 0.11 2011-10-08 11:05:29 +02:00
Wim Taymans
73b894107a Merge branch 'master' into 0.11
Conflicts:
	ext/vorbis/gstvorbisdec.c
	ext/vorbis/gstvorbisenc.c
	ext/vorbis/gstvorbisenc.h
	gst/audiotestsrc/gstaudiotestsrc.c
2011-10-08 10:19:06 +02:00
Mark Nauwelaerts
f63f09483f vorbisdec: port to audiodecoder 2011-10-07 14:52:53 +02:00
Mark Nauwelaerts
f3cb93fc0c vorbisenc: port to audioencoder 2011-10-07 14:52:46 +02:00
René Stadler
1d3980cda2 oggdemux: don't leak scheduling query 2011-10-07 14:06:57 +02:00
Wim Taymans
a00927ad03 Merge branch 'master' into 0.11 2011-10-04 17:58:49 +02:00
Vincent Penquerc'h
c7282a5718 alsasrc: fail gracefully when ALSA does not give timestamps
https://bugzilla.gnome.org/show_bug.cgi?id=660170
2011-10-03 11:14:09 +02:00
Vincent Penquerc'h
15dc839467 textoverlay: add YV12 support
Basically the same as I420, just with chroma planes swapped.

https://bugzilla.gnome.org/show_bug.cgi?id=660604
2011-10-01 19:18:02 +01:00
Tim-Philipp Müller
500ad37657 vorbisdec: set channel positions 2011-09-29 21:50:59 +01:00
Edward Hervey
17bfba09f1 Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggdemux.c
	ext/pango/gsttextoverlay.c
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/audio/gstbaseaudiosrc.c
	gst/playback/gstsubtitleoverlay.c
	gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Vincent Penquerc'h
c956c5fd00 oggstream: only use information from skeleton if we have nothing better
The codec setup headers are a lot more likely to have correct information,
especially as it's easy to remux a skeleton in a file where streams don't
have the same parameters (I've even seen a file with two skeletons).

Still, this is useful in the case we have a codec we can't decode, so we
can at least (theoretically) convert granpos to time, so we discard this
information if the codec setup has already provided it.

This fixes playback on (at lesat) the original archive.org encoding of
"The Night of the Living Dead" (now replaced by another encoding).

https://bugzilla.gnome.org/show_bug.cgi?id=612443
2011-09-19 23:21:23 +01:00
Sebastian Dröge
d094913a61 textoverlay: Protect against accessing the NULL parent of the pads during shutdown
Fixes bug #658901.
2011-09-19 09:34:08 +02:00
Tim-Philipp Müller
15d8082a55 oggdemux: remove superfluous check in newsegment event handler
If we get a newsegment event from upstream, we can be quite
sure we're not operating pull-based.
2011-09-16 20:14:39 +01:00
Tim-Philipp Müller
049e275632 oggdemux: minor printf format fix 2011-09-16 20:11:56 +01:00
Vincent Penquerc'h
89fc5b4bd8 oggdemux: fix wedge when seeking twice quickly in push mode
This could happen when testing with navseek, and pressing
right and left at roughly the same time. The current chain
is temporarily moved away, and this caused the flush events
not to be sent to the source pads, which would cause the
data queues downstream to reject incoming data after the
seek, and shut down, wedging the pipeline.

Now, I can't really decide whether this is a nasty steaming
hack or a good fix, but it certainly does fix the issue, and
does not seem to break anything else so far.

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-16 20:07:33 +01:00
Vincent Penquerc'h
0173afa38c oggdemux: implement push mode seeking
This patch implements seeking in push mode (eg, over the net)
in Ogg, using the double bisection method.
As a side effect, it also fixes duration determination of network
streams, by seeking to the end to check the actual duration.

Known issues:
- Getting an EOS while seeking stops the streaming task, I can't
  find a way to prevent this (eg, by issuing a seek in the event
  handler).
- Seeking twice in a VERY short succession with playbin2 fails
  for streams with subtitles, we end up pushing in a dataqueue
  which is flushing. Rare in normal use AFAICT.
- Seeking is slow on slow links - byte ranges guesses could be
  made better, decreasing the number of required requests
- If no granule position is found in the last 64 KB of a stream,
  duration will be left unknown (should be pretty rare)

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-16 19:47:10 +01:00
Vincent Penquerc'h
6704b37fc3 oggdemux: do not propagate discontinuities in sparse streams
The first packet of a sparse stream may arrive after an initial
delay in the stream. If ogg_stream_packetout reports a discontinuity
in a sparse stream, do not propagate it to other streams in the
chain unnecessarily.

https://bugzilla.gnome.org/show_bug.cgi?id=621897
2011-09-14 23:20:01 +01:00
Thomas Vander Stichele
d223a6dd59 theoraenc: Fix descriptions of properties 2011-09-11 14:22:59 -04:00
Sebastian Dröge
0f654f3feb Merge branch 'master' into 0.11
Conflicts:
	docs/libs/Makefile.am
	tests/check/elements/decodebin2.c
2011-09-08 14:42:00 +02:00
Vincent Penquerc'h
cea0ac790f theoraenc: do not automatically override quality when using target bitrate
If both quality and bitrate are set, libtheora will try to meet
both constraints, causing it to prefer emitting a smaller number
of good frames, to emitting the full number of frames that would
not meet the requested quality. This causes a slideshow effect
when the bitrate is low and the quality is high. And the default
theoraenc is high (48/63).

So only set quality when it is requested, and leave it unset
otherwise.

https://bugzilla.gnome.org/show_bug.cgi?id=658443
2011-09-07 13:27:33 +02:00
Wim Taymans
33196cdd2c audio: change audio format syntax a little
Remove the _ in front of the endianness prefix.
Remove the _3 postfix for the 24 bits formats.
Add a _32 postfix after the formats that occupy extra space beyond their
natural size.
The result is that the GST_AUDIO_NE() macro can simply append the endianness
after all formats and that we only specify a different sample width when it is
different from the natural size of the sample. This makes things more consistent
and follows the pulseaudio conventions instead of the alsa ones.
2011-09-06 12:06:39 +02:00
Wim Taymans
e1287b97ab Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	gst-libs/gst/audio/audio.c
	gst-libs/gst/audio/audio.h
	gst-libs/gst/audio/multichannel.h
	gst-libs/gst/pbutils/Makefile.am
	gst-libs/gst/pbutils/gstdiscoverer.c
	gst/playback/gstplaysinkaudioconvert.c
	gst/playback/gstplaysinkvideoconvert.c
	win32/common/libgstaudio.def
2011-08-29 11:37:36 +02:00
Vincent Penquerc'h
02763b2fa2 theoraenc: fix caps leak
https://bugzilla.gnome.org/show_bug.cgi?id=657333
2011-08-25 15:17:01 +01:00
Vincent Penquerc'h
fd218c4ec2 oggmux: fix leaks in skeleton writing
https://bugzilla.gnome.org/show_bug.cgi?id=563251
2011-08-25 08:32:26 +02:00
Vincent Penquerc'h
29038283bc oggmux: generate message headers from received tags
Some message headers can be deduced from tags (eg, "Language").

https://bugzilla.gnome.org/show_bug.cgi?id=563251
2011-08-25 08:32:20 +02:00
Vincent Penquerc'h
53c8656248 ogg: use memory slices where appropriate
While there, avoid zeroing newly allocated memory where unnecessary

https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-25 08:26:49 +02:00
Wim Taymans
232a5a3d0a Merge branch 'master' into 0.11
Conflicts:
	ext/ogg/gstoggmux.c
	ext/vorbis/gstvorbisenc.c
2011-08-24 11:04:53 +02:00
Vincent Penquerc'h
7b8b0fa1bb oggdemux: do not warn when reaching EOS while scanning for the end chain
After all, we were asking for it.

This gets rid of the last warning-about-expected-condition.

w00t.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:32:21 +02:00
Vincent Penquerc'h
df40ddf0aa oggdemux: add media type to chain information reports
One more little step in making logs a little less abstruse.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:58 +02:00
Vincent Penquerc'h
1e606c0456 oggstream: correctly identify skeleton EOS packet
It is 0 byte, and was triggering the "bad packet" logic.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:51 +02:00
Vincent Penquerc'h
68ed992e7e oggdemux: do not warn about expected occurences
In this case, finding a skeleton packet.
Once upon a time, it used to be rare indeed, but no more.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:30 +02:00
Vincent Penquerc'h
4fdb52871c oggdemux: do not warn when finding a non BOS page
After all, we do hope to find actual data for these streams.
However, warn if we could not set up a chain when we find a
non BOS page, as that means we don't have a valid Ogg stream.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:31:17 +02:00
Vincent Penquerc'h
564eedd214 oggdemux: rename local variable for clarity
While the casual reader might end up bewildered by just why this
change might increase clarity, it just happens than, in the libogg
and associated sources, op is the canonical name for an ogg_packet
whlie og is the canonical name for an ogg_page, and reading this
code confuses me.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:55 +02:00
Vincent Penquerc'h
5d18496a5b oggdemux: do not try to determine duration of header packets
Headers are inherently durationless.
Instead, set duration to 0 to avoid increasing tracked granpos,
and do not warn about it, since it is totally expected.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:45 +02:00
Vincent Penquerc'h
67a882afe7 oggstream: include stream type in warnings
It makes it easier to work out what's going on.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:30 +02:00
Vincent Penquerc'h
43cb76b1d8 oggstream: set skeleton stream media type to application/x-ogg-skeleton
This is to match the typefinder, and to make logs clearer.

https://bugzilla.gnome.org/show_bug.cgi?id=657151
2011-08-24 08:30:17 +02:00
Vincent Penquerc'h
2301f1806f oggmux: add skeleton write support
Version written is 3.0

Base times are left empty for now.

Content-Type should be the MIME type of the stream. It is set to
the GStreamer media type for now, which is probably the same for
the streams oggmux supports.

https://bugzilla.gnome.org/show_bug.cgi?id=563251
2011-08-24 08:21:34 +02:00
Wim Taymans
e78b66f5a3 video: fix chroma-site enums 2011-08-23 20:34:24 +02:00
Wim Taymans
9ad89374a3 video: add colorimetry info
Make enums for the chroma siting for easier use in the videoinfo.
Make enums for the color range, color matrix, transfer function and the
color primaries. Add these values to the video info structure in a Colorimetry
structure. These values define the exact colors and are needed to perform
correct colorspace conversion. Use a couple of predefined colorimetry specs
because in practice only a few combinations are in use.
Add view_id to the video frames to identify the view this frame represents in
multiview video.
Remove old gst_video_parse_caps_framerate, use the videoinfo for this.
Port elements to new colorimetry info.
Remove deprecated colorspace property from videotestsrc.
2011-08-23 18:57:35 +02:00
Vincent Penquerc'h
8a752e44e2 oggdemux: do not skip sparse streams when determining start times
This fixes demuxing of streams containing only sparse streams,
which would cause an infinite loop in _read_end_chain.

https://bugzilla.gnome.org/show_bug.cgi?id=657062
2011-08-23 10:36:18 +02:00