Tim-Philipp Müller
d97dd36ae5
ogg: small GValue optimisation
...
No need to copy buffers we put into the streamheader any more
now that we don't put caps on buffers any more, so there's no
danger of a refcount cycle.
2013-03-03 17:40:21 +00:00
Tim-Philipp Müller
e045b6fb52
oggdemux: add audio-codec and video-codec tags for streams in more cases
2013-02-28 16:27:50 +00:00
Vincent Penquerc'h
658195e6de
oggdemux: fix incorrect testing of invalid granpos values
...
Positive granulepos is valid, -1 granulepos is unset, and all
other negative granulepos are invalid.
Reported by Tim-Philipp Müller
2013-01-07 18:03:52 +00:00
Tim-Philipp Müller
5f59b4f7ee
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Jonathan Liu
7f22e3ea7f
oggstream: fix crash with 0 byte ogg packets
...
https://bugzilla.gnome.org/show_bug.cgi?id=687030
2012-10-29 12:04:38 +00:00
Sebastian Dröge
3c1041d5eb
Revert "gst: Add better support for static plugins"
...
This reverts commit d2d79e3bc2
,
which was accidentially pushed.
2012-10-24 13:26:26 +02:00
Sebastian Dröge
d2d79e3bc2
gst: Add better support for static plugins
2012-10-24 12:10:44 +02:00
Wim Taymans
3591df23b1
docs: playbin2 -> playbin
2012-10-09 12:20:10 +02:00
Tim-Philipp Müller
1c22b1fe11
oggmux: send stream-start event
2012-09-23 13:27:27 +01:00
Tim-Philipp Müller
e072bd6130
oggmux: fix up previous commit
...
Was missing the header file change.
2012-09-21 16:10:27 +01:00
Tim-Philipp Müller
5890a4a803
oggmux: send a segment event at the beginning
2012-09-21 15:58:07 +01:00
Sebastian Dröge
b19944d1e4
gst: Update for link/unlink function API change
2012-09-17 13:24:52 +02:00
Mark Nauwelaerts
c629a44162
replace gst_tag_list_free with gst_tag_list_unref
2012-09-14 17:53:21 +02:00
Stefan Sauer
b9054de15c
collectpads: remove gst_collect_pads_add_pad_full
...
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:03:21 +02:00
Mark Nauwelaerts
899a809330
ext, gst-libs: only activate in pull mode if upstream is seekable
2012-09-11 17:37:27 +02:00
Tim-Philipp Müller
5bb8021fc9
oggdemux: port to new GLib thread API
2012-09-10 01:08:51 +01:00
Tim-Philipp Müller
2079a8c12b
Remove glib-compat-private.h stuff we don't need any more
...
It's all been ported to the latest GLib API now.
2012-09-09 18:36:49 +01:00
Mark Nauwelaerts
62ef0fc55e
oggmux: remove dead code
2012-09-05 12:02:32 +02:00
Mark Nauwelaerts
6a43c1f9c7
oggdemux: send GAP event
...
... in stead of old update newsegment event.
2012-09-05 12:02:32 +02:00
Tim-Philipp Müller
7c2e7b1a4f
text/plain + text/x-pango-markup -> text/x-raw
2012-09-02 02:45:41 +01:00
Tim-Philipp Müller
a99a1042b9
gst_message_new_duration() -> gst_message_new_duration_changed()
2012-09-02 01:27:17 +01:00
Stefan Sauer
a2b1243064
oggmux: remove superflous assignment
2012-08-12 09:57:11 +02:00
Tim-Philipp Müller
4ed7ebc071
oggdemux: set HEADER flag on header packets
...
https://bugzilla.gnome.org/show_bug.cgi?id=681499
2012-08-11 10:18:37 +01:00
Tim-Philipp Müller
8b15f5a8ab
oggmux: don't leak dropped seek event
2012-08-11 09:53:49 +01:00
Tim-Philipp Müller
0dd2766d83
oggmux: pick delta pad earlier during header parsing and based on video/non-video
...
Pick delta pad earlier during header parsing, and pick it based
on whether it's a video stream or not rather than some rather
byzantine signalling from theoraenc etc. which would set the delta
flag on header packets which oggmux would then pick up and determine
that this is a "delta-able" stream.
Since the new videodecoder-based theoraenc didn't do that any more,
we would only see the first delta flag on the second video packet,
which is after we've already muxed a few audio packets flagged as
key units, which trips up the unit test.
Fixes pipelines/oggmux unit test.
https://bugzilla.gnome.org/show_bug.cgi?id=679958
2012-08-10 10:45:09 +01:00
Andoni Morales Alastruey
15c712c7c6
oggdemux: add proper cast for print
2012-08-08 17:41:19 +02:00
Tim-Philipp Müller
17c839c8a1
No statements with side-effects in g_assert() or g_return_*() please
2012-08-08 10:11:48 +01:00
Sebastian Dröge
e25a861ed6
oggdemux: Add stream-id to the stream-start event
2012-08-06 14:01:28 +02:00
Sebastian Dröge
99d73c94e9
tag: Update for taglist/tag event API changes
2012-07-28 00:35:02 +02:00
Wim Taymans
683a38ad65
update for new variable names
2012-07-27 15:24:43 +02:00
Wim Taymans
c9c4aedaa6
oggdemux: don't copy empty packets
...
Don't try to copy empty packets, which contain a repeated frame in theora.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680520
2012-07-24 14:36:58 +02:00
Edward Hervey
1097102b20
oggdemux: Don't push stream-start in two different locations
2012-07-18 18:17:57 +02:00
Stefan Sauer
673dafd09d
oggmux: only drop flushing seeks after we started to mux
...
Don't drop all seek events. It is okay to seek before we send the headers. Non
flushing seeks are okay at any time later as well.
2012-07-16 11:27:57 +02:00
Edward Hervey
25aa25be3a
oggdemux: Push out STREAM_START events when needed
2012-07-12 09:51:36 +02:00
Sebastian Dröge
74c7524b49
gst: Implement segment-done event
2012-07-05 13:06:04 +02:00
Wim Taymans
f28e2e7bea
fix interlace-mode
2012-06-26 17:15:49 +02:00
Wim Taymans
21e9f64ab2
update for task api change
2012-06-20 10:33:24 +02:00
Vincent Penquerc'h
492341db77
oggdemux: fix quadratic search for last page
...
A crafted file with invalid pages will cause repeated searches from
earlier offsets in steps of 8500 bytes, but reading till the end of
the stream. Since we know the maximum size of an Ogg page, we can
bound the search for next page, to get a linear behavior (though
still not good enough as it will read the entire file backwards if
there's no valid page till then).
2012-06-14 18:42:12 +01:00
Sebastian Dröge
233622437f
elements: Use gst_pad_set_caps() instead of manual event fiddling
2012-06-08 15:51:06 +02:00
Vincent Penquerc'h
e126073489
oggdemux: reject opus streams with negative start time
...
This is used by Vorbis for sample accurate clipping, but this is
deemed an invalid stream by the opus spec.
2012-06-06 17:49:13 +01:00
Vincent Penquerc'h
ba967d285a
oggstream: add a flag to say whether start granule clamping is to be done
2012-06-06 17:49:13 +01:00
Wim Taymans
a2172bdb4b
update for tag event change
2012-06-06 13:05:47 +02:00
Vincent Penquerc'h
078dd2e896
oggstream: reject Ogg/Opus streams with nonsensical preskip/granpos setup
...
As the spec mandates.
2012-06-06 11:05:53 +01:00
Tim-Philipp Müller
5518dd69c7
oggdemux: fix potential crash in SEEKING query handler
...
Take chain lock when accessing chains. Fall back gracefully
when there's no current chain Hopefully fixes crash when
seeking in Jamendo or Magnatune streams in Amarok.
https://bugzilla.gnome.org/show_bug.cgi?id=675609
2012-05-13 23:23:03 +01:00
Tim-Philipp Müller
0e216d1f4c
typefinding, ogg: don't bother with annodex media types
...
They're hardly used, and probably more confusing than anything
else, and it's not clear that anyone would really need to be
able to tell them apart at the media type level.
2012-05-13 18:49:31 +01:00
Tim-Philipp Müller
657fe5efff
oggdemux: don't expose Annodex CMML streams any more
...
This never really took off - it's hardly used anywhere
and deprecated in favour of Kate. Exposing pads just
leads to confusing 'you are missing a plug-in' messages
when people come across such streams. We could still post
the data on the bus for applications to parse.
2012-05-13 18:39:06 +01:00
Tim-Philipp Müller
756625edd2
oggdemux: update some comments that refer to internal decoders
...
We don't do that any more, we now have stream mappers for this.
2012-05-13 17:13:39 +01:00
Tim-Philipp Müller
882ffc7b98
oggdemux: remove unused GstOggPadMode enum
2012-05-13 17:13:26 +01:00
Mark Nauwelaerts
a008aa0b46
collectpads2: rename to collectpads
2012-04-17 15:09:58 +02:00
Mark Nauwelaerts
ccda1c23f3
oggmux: use standard collectpads event handling
...
... rather than (old) hacked overriding.
2012-04-16 16:30:44 +02:00
Tim-Philipp Müller
05b1ad1b56
ogg: update for media type typefinding changes
2012-04-15 23:03:58 +01:00
Tim-Philipp Müller
3c6a3ad629
Use new gst_element_class_set_static_metadata()
2012-04-10 00:45:16 +01:00
Sebastian Dröge
ad42b16375
gst: Update for GST_PLUGIN_DEFINE() API change
2012-04-05 15:11:05 +02:00
Sebastian Dröge
65307dd132
gst: Update versioning
2012-04-04 14:55:15 +02:00
Edward Hervey
5c83351510
oggstream: Fix 'comparison of unsigned expression < 0 is always false'
...
-1 (aka G_MAXUINT32) is the only possible 'negative' value that is used
as a special value for 'not set' here. All other positive values are
valid.
2012-03-30 12:00:08 +02:00
Edward Hervey
d1abf468c4
oggmux: Handle return values from GstByteWriter
2012-03-30 11:58:37 +02:00
Wim Taymans
d7c42e6680
oggdemux: avoid memcpy in pull mode
...
In pull mode, we can now ask the upstream element to write directly into the
memory provided by libogg.
2012-03-20 13:20:36 +01:00
Wim Taymans
dfb8e7cb2c
don't pass random pointers to pull_range
2012-03-16 21:46:47 +01:00
Wim Taymans
867e635cde
oggdemux: only create unknown caps once
2012-03-13 12:40:11 +01:00
Wim Taymans
c3478b2da0
Merge branch 'master' into 0.11
...
Conflicts:
ext/vorbis/gstvorbisparse.c
gst-libs/gst/video/video.c
gst/videoscale/gstvideoscale.c
sys/v4l/gstv4lxoverlay.c
sys/v4l/v4l_calls.c
sys/v4l/v4lsrc_calls.c
tests/check/libs/video.c
2012-02-10 15:41:06 +01:00
Wim Taymans
a75e9102c5
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
2012-02-08 15:17:49 +01:00
Vincent Penquerc'h
b4d6263f38
oggdemux: fix granpos interpolation violating max keyframe distance
...
In case many packets fit on a page, we may not see a granpos for
a while, and granpos interpolation can wrap the 'frames since last
keyframe' part of the granpos, generating a granpos which is smaller
than what it should be.
This is fixed by detecting keyframe packets (at least for Theora),
and updating the last keyframe granpos from this.
This may still be generating potentially wrong granpos for streams
which have a Theora like granpos (keyframes, a max keyframe distance
and a count of frames since last keyframe), and which allow implicit
granules on packets. For these streams, a custom keyframe detection
routine should be plugged into their GstOggStream mapper.
https://bugzilla.gnome.org/show_bug.cgi?id=669164
2012-02-02 13:06:29 +00:00
Wim Taymans
848e107146
oggdemux: don't blindly forward all unknown events
...
It causes the caps event to be send downstream and cause negotiation failures.
2012-01-30 20:58:34 +01:00
Wim Taymans
be0cadac03
update for HEADER flag changes
2012-01-30 17:16:17 +01:00
Wim Taymans
fcdc385aa1
port to new map API
2012-01-25 12:30:53 +01:00
Sebastian Dröge
68c0790817
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/interfaces/propertyprobe.c
sys/xvimage/xvimagesink.c
2012-01-25 11:50:54 +01:00
Wim Taymans
3d42f0f6ed
port to new glib thread API
2012-01-19 11:36:17 +01:00
Mark Nauwelaerts
34d767c6a8
oggstream: initialize variable
...
... to help out challenged compiler.
2012-01-17 18:19:30 +01:00
Tim-Philipp Müller
0461ed2ada
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst-libs/gst/pbutils/gstdiscoverer-types.c
gst-libs/gst/pbutils/gstdiscoverer.c
tests/check/Makefile.am
2012-01-12 23:21:17 +00:00
Vincent Penquerc'h
9f4b71b2a7
oggdemux: fix push mode chain leak
...
When I first implemented push mode seeking, I removed the chain
freeing there as it could be used later. The current code does not
seem to do that though, so I'm restoring the previous freeing,
which plugs the leak while apparently not reintroducing use of
freed data with chained and normal files, both with gst-launch
playbin2 and Totem.
2012-01-11 16:17:42 +00:00
Vincent Penquerc'h
83c9396850
Revert "oggmux: fix pad leak"
...
This reverts commit 5df30c1b90
.
I must have dreamt the Valgrind logs, reverting this reintroduces
no leak, and gets rid of the test failures it introduced :S
2012-01-10 19:02:31 +00:00
Vincent Penquerc'h
35df9d2ad9
oggstream: fix tag list leak
2012-01-10 16:57:04 +00:00
Vincent Penquerc'h
a718b859a7
oggdemux: fix pad leak
2012-01-10 16:51:09 +00:00
Vincent Penquerc'h
ef1469fc8b
oggdemux: fix hang on small truncated files
...
A first hang was happening when trying to locate a page backwards,
where we'd sync forever on the same page.
With that fixed, a second hang would happen after preparing an EOS
event, but with no chain created yet to send it to, the pipeline
would stay idle forever.
An element error is now emitted for this case.
2012-01-10 16:20:23 +00:00
Vincent Penquerc'h
5df30c1b90
oggmux: fix pad leak
2012-01-10 16:20:23 +00:00
Sebastian Dröge
40938b8a89
ogg: Update for the libgstriff API changes
...
Still needs to handle the raw audio channel reordering.
2012-01-05 10:34:25 +01:00
Sebastian Dröge
75f91ebea0
ext: Add new layout field to the raw audio caps
2012-01-05 10:34:25 +01:00
Edward Hervey
f562a29284
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/theora/gsttheoraenc.c
gst-libs/gst/tag/gstexiftag.c
gst/adder/gstadder.c
gst/adder/gstadder.h
gst/playback/gstdecodebin2.c
gst/playback/gstsubtitleoverlay.c
tests/check/libs/tag.c
2011-12-30 13:21:35 +01:00
Thiago Santos
08022bddc8
oggmux: fix leak when initializing pads
...
Pads are initialized twice: when requesting pads and when
initializing collectpads. Avoid double initialization by
checking if collectpads are still going to be initialized when
creating request pads.
2011-12-28 09:45:53 -03:00
Vincent Penquerc'h
229377fb6b
oggdemux: assume live stream if byte size cannot be determined
...
This prevents trying to seek and failing, then ending up unable
to stream because we can't get back at the headers.
A more robust way would be to find a good place to reinject the
headers when a seek fails, but I can't seem to get this to work.
2011-12-16 15:29:21 +00:00
Tim-Philipp Müller
fb6d09055a
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsadeviceprobe.c
ext/alsa/gstalsamixer.c
ext/pango/gsttextoverlay.c
ext/pango/gsttextoverlay.h
gst-libs/gst/audio/gstaudiobasesink.c
gst-libs/gst/audio/gstaudioringbuffer.c
gst-libs/gst/audio/gstaudiosrc.c
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/video.c
gst/encoding/gststreamcombiner.c
gst/encoding/gststreamsplitter.c
gst/playback/gstplaybasebin.c
gst/playback/gststreamsynchronizer.c
gst/playback/gstsubtitleoverlay.c
gst/playback/gsturidecodebin.c
sys/xvimage/xvimagesink.c
tests/examples/Makefile.am
win32/common/libgstvideo.def
Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Tim-Philipp Müller
5440ae3c18
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-04 20:50:25 +00:00
Tim-Philipp Müller
0d98aa25b8
Work around deprecated thread API in glib master
...
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.
Replace g_thread_create() with g_thread_try_new().
2011-12-04 17:16:30 +00:00
Tim-Philipp Müller
177525f89f
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst-libs/gst/netbuffer/gstnetbuffer.c
gst/ffmpegcolorspace/avcodec.h
gst/ffmpegcolorspace/gstffmpegcodecmap.c
gst/ffmpegcolorspace/imgconvert.c
gst/ffmpegcolorspace/imgconvert_template.h
gst/ffmpegcolorspace/mem.c
gst/playback/README
gst/playback/gstplaybasebin.c
gst/playback/gstplaybasebin.h
gst/playback/gstplaybin.c
sys/v4l/v4lmjpegsrc_calls.c
sys/v4l/videodev_mjpeg.h
tests/check/elements/gnomevfssink.c
2011-12-02 11:10:17 +00:00
Piotr Fusik
14644457b0
various: typo fixes
...
Fix typos in code and docs. Fixes. #658984
2011-12-02 12:03:27 +01:00
Tim-Philipp Müller
ec0d3566bf
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsasrc.c
ext/alsa/gstalsasrc.h
gst/adder/gstadder.c
gst/playback/gstplaybin2.c
gst/playback/gstplaysinkconvertbin.c
win32/common/libgstvideo.def
2011-12-02 00:07:39 +00:00
Alessandro Decina
ab921eec11
oggdemux: fix compiler warning
2011-11-29 09:16:20 +01:00
Vincent Penquerc'h
96374054ac
various: fix pad template leaks
...
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:09:02 +00:00
Tim-Philipp Müller
32b14c6ed3
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/vorbis/gstvorbisenc.c
gst/playback/gstdecodebin2.c
gst/playback/gstplaysinkconvertbin.c
gst/videorate/gstvideorate.c
2011-11-26 12:12:59 +00:00
Vincent Penquerc'h
c6b9145630
oggmux: set collectpads2 not to wait on sparse streams
...
https://bugzilla.gnome.org/show_bug.cgi?id=663174
2011-11-25 16:11:01 +00:00
Vincent Penquerc'h
a5c64d5b97
oggdemux: minor cleanup
2011-11-24 17:12:56 +00:00
Vincent Penquerc'h
b0bb1d3539
oggdemux: skip the second bisection when possible
...
If we already saw the keyframes that we need to find,
we do not need to bisect to find them.
This will always be the case for streams with audio only,
where each frame acts as a keyframe, but will occasionally
also happen for streams with video.
https://bugzilla.gnome.org/show_bug.cgi?id=662475
2011-11-24 10:48:48 +01:00
Vincent Penquerc'h
e7079cd8d5
oggdemux: improve push time seeking
...
Various tweaks to improve convergence, in particular for
the worst case, which is now cut in about half.
https://bugzilla.gnome.org/show_bug.cgi?id=662475
2011-11-24 10:48:32 +01:00
Vincent Penquerc'h
db21375406
oggdemux: gather some more stats about bisection
...
https://bugzilla.gnome.org/show_bug.cgi?id=662475
2011-11-24 10:48:15 +01:00
Wim Taymans
17f6254ab4
ogg: fix compilation
2011-11-23 11:10:31 +01:00
Wim Taymans
7b45a7367b
Merge branch 'master' into 0.11
...
Conflicts:
ext/ogg/gstoggmux.c
2011-11-23 10:50:53 +01:00
Vincent Penquerc'h
042b4f9a29
oggstream: extract opus comments if available
2011-11-22 13:29:10 +00:00
Vincent Penquerc'h
bf73491077
oggstream: recognize opus headers from data, not packet count
...
Opus streams outside of Ogg may not have headers, and oggstream
may be used by oggmux to mux an Opus stream which does not come
from Ogg - thus without headers.
Determining headerness by packet count would strip the first two
packets from such an Opus stream, leading to a very small amount
of audio being clipped at the beginning of the stream.
2011-11-22 13:15:33 +00:00
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
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
e302833e65
add parent to pad functions
2011-11-17 12:48:25 +01:00
Wim Taymans
2202511e77
add parent to query function
2011-11-16 17:25:17 +01:00
Wim Taymans
7402d3a3d2
update for _get_caps() -> _query_caps()
2011-11-15 18:04:17 +01: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
372b9329b9
remove query types
2011-11-09 11:47:54 +01:00
Wim Taymans
8c8fcf4d3b
Merge branch 'master' into 0.11
2011-11-07 17:18:06 +01: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
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
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
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
f1088ed647
update for UNEXPECTED -> EOS flowreturn
2011-10-10 11:39:52 +02:00
René Stadler
1d3980cda2
oggdemux: don't leak scheduling query
2011-10-07 14:06:57 +02: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
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
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
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
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
Vincent Penquerc'h
4e9508e2ec
oggdemux: do not ignore sparse streams' start time
...
But do not wait for them either, if we don't have a packet for them.
https://bugzilla.gnome.org/show_bug.cgi?id=657062
2011-08-23 10:36:03 +02:00
Wim Taymans
c81c62d03a
fourcc: remove fourcc
...
Remove fourcc in caps.
Fix pbutils descriptions.
Add more video macros
Fix some unit test
2011-08-22 12:22:02 +02:00
Wim Taymans
5f359600ce
oggmux: fix compilation
2011-08-22 12:21:08 +02:00
Wim Taymans
8023f49d19
more audio caps porting
2011-08-19 17:41:22 +02:00
Wim Taymans
b657f5bce7
Merge branch 'master' into 0.11
2011-08-19 14:07:11 +02:00
Vincent Penquerc'h
b7bb1e5633
ogg: do not use 32 bit modifiers to print serial numbers
...
If ints are 64 bits, 32 bits should get promoted in varargs anyway,
and we don't care about 16 bit ints.
This makes the code a lot more readable, and still gets us nice
hexadecimal 32 bit serialnos.
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 20:18:53 +01:00
Wim Taymans
ba41bb5ca7
Merge branch 'master' into 0.11
...
Conflicts:
ext/ogg/gstoggmux.c
gst/playback/gstplaysink.c
2011-08-18 19:36:50 +02:00
Vincent Penquerc'h
1dadc5eac1
ogg: get the operator precedence right, even if only a doc
...
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:17:40 +02:00
Vincent Penquerc'h
cf370e0219
oggstream: vorbis has a preroll of 2
...
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:17:28 +02:00
Vincent Penquerc'h
96e7bf53e9
oggstream: new convenience function to get a stream's media type
...
This will make logging a lot clearer, both in code and in output.
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:17:15 +02:00
Vincent Penquerc'h
8304b7b40d
ogg: move the "always flush page" to oggstream
...
It avoids checking for specific media types in the muxer.
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:16:50 +02:00
Vincent Penquerc'h
fd8434fc74
oggmux: use oggstream to decide which BOS packets to place first
...
Ogg recommends video BOS packets to be first.
Use the "is_video" flag in oggstream to select those, rather than
check for known mime types.
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:16:19 +02:00
Vincent Penquerc'h
5bbf7109ec
ogg: rationalize serialno type to guint32
...
It is a 32 bit unsigned number.
Sure, the libogg API uses a long, but that's an unfortunate oversight.
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:15:51 +02:00
Vincent Penquerc'h
684b90ba74
oggmux: factor the header packet creation code
...
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:13:59 +02:00
Vincent Penquerc'h
3fe42b8e7e
oggmux: headers should always have granpos 0
...
https://bugzilla.gnome.org/show_bug.cgi?id=656775
2011-08-18 11:13:47 +02:00
Wim Taymans
33467d9629
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
ext/pango/gsttextoverlay.c
ext/theora/gsttheoradec.c
gst/adder/gstadder.c
gst/adder/gstadder.h
gst/audioresample/gstaudioresample.c
gst/encoding/gstencodebin.c
gst/playback/gstdecodebin.c
gst/playback/gstdecodebin2.c
tests/check/elements/decodebin2.c
tests/check/elements/playbin-compressed.c
win32/common/libgsttag.def
2011-08-16 18:01:14 +02:00
Wim Taymans
e904c529e3
fix for _negotiated_caps() change
2011-08-15 12:18:15 +02:00
Josep Torra
5629ed74b3
Fix debug statements
...
Fixes build on MacOSX
Signed-off-by: Edward Hervey <edward.hervey@collabora.co.uk>
2011-08-10 11:15:41 +02:00
Jonathan Liu
8bd3bdaf37
oggstream: Fix crashes with 0-byte vorbis packets
...
Fixes bug #655574 .
2011-08-03 10:18:29 +02:00
Tim-Philipp Müller
bb65192151
ext,gst: update for query API changes
2011-07-27 01:16:53 +01:00
Wim Taymans
376164ab08
Merge branch 'master' into 0.11
2011-07-10 13:49:14 +02:00
David Schleef
a5323107d4
oggmux: check for EOS on both current and best pad
...
Oops, need both. Fixes #654270 .
2011-07-09 18:33:38 -07:00
David Schleef
2fa9bf2be5
oggmux: check for EOS on current pad, not best
...
Fixes #654270 .
2011-07-09 18:24:26 -07:00
Tim-Philipp Müller
dd56714b14
ffmpegcolorspace -> videoconvert
2011-07-07 23:59:59 +01:00
Wim Taymans
d06f599193
-base: port elements to new video caps
2011-06-16 12:52:13 +02:00
Wim Taymans
40d567153a
Merge branch 'master' into 0.11
2011-06-13 19:09:05 +02:00
David Schleef
ea0d666d11
oggmux: refactor how EOS is determined
...
This decreases the number of buffers held on each pad by one,
eliminating next_buffer. Simplifies the logic by relying solely
on CollectPads to let us know when a pad is in EOS. As a side
benefit, the collect pads related code is structured more like
other CollectPad users.
The previous code would occasionally mark the wrong pad as EOS,
causing the code to get in a state where all the streams were
finished, but EOS hadn't been sent to the source pad.
2011-06-10 23:54:07 -07:00
Wim Taymans
40e3dda187
oggdemux: small cleanups
2011-06-10 18:04:14 +02:00
Wim Taymans
db999572a8
-base: fix for flush_stop event API change
2011-06-10 11:59:53 +02:00
Wim Taymans
2940249a84
-base: use caps event
...
Remove uses of setcaps function and use the caps event.
2011-06-07 11:55:36 +02:00
Wim Taymans
c88ee10c9b
Merge branch 'master' into 0.11
...
Conflicts:
ext/theora/gsttheoraenc.c
2011-06-06 16:27:12 +02:00
Mark Nauwelaerts
99944a5a81
oggmux: determine granulepos metadata using stream mapper whenever possible
...
... which unfortunately is not the case for all types, but at least so for
most common ones.
2011-06-06 13:02:49 +02:00
Mark Nauwelaerts
de1f593537
oggmux: convert incoming buffer timestamp to running time
...
... so all subsequent manipulation can take place in the proper timeline
without further ado.
2011-06-06 13:02:47 +02:00
Mark Nauwelaerts
2e7eddd35e
oggmux: remove superfluous code
...
... since there is nothing in oggstream that cares (or even should)
about granulepos for what is being asked from it.
2011-06-06 13:02:43 +02:00
Edward Hervey
266a9be400
oggmux: Use the GstPad (and not the GstOggPadData for GstPad functions
...
For those willing, renaming that 'pad' variable to something more obvious
would be nice to avoid such bugs...
2011-06-03 19:28:32 +02:00
Wim Taymans
29c3e31ff5
oggdemux: activate pad before pushing things
...
Activate the pad before pushing things on it or else we get errors.
2011-05-30 17:14:48 +02:00
Wim Taymans
010add200a
scheduling: port to new scheduling query
2011-05-24 17:37:45 +02:00
Sebastian Dröge
884213b8b8
base: Update for SEGMENT event parse API changes
2011-05-18 17:23:18 +02:00
Sebastian Dröge
c255019b90
ext: Update for caps/pad template related API changes
2011-05-17 13:06:01 +02:00
Sebastian Dröge
318ed07598
Revert "-base_port to new query API"
...
This reverts commit c9f4e0676b
.
2011-05-17 11:25:31 +02:00
Sebastian Dröge
bcbf0488bf
ogg: Update for negotiation related API changes
2011-05-16 15:35:41 +02:00
Wim Taymans
94dfe80f71
-base: port to new SEGMENT API
2011-05-16 13:48:11 +02:00
Wim Taymans
c9f4e0676b
-base_port to new query API
2011-05-10 18:39:07 +02:00
Wim Taymans
7cad11e912
-base: fix for now request pad API
2011-05-10 16:44:37 +02:00
Wim Taymans
816f4e791d
segment: fix for new core API
...
Fix for gst_*_segment_full rename.
2011-05-09 18:16:46 +02:00
Wim Taymans
ec57868488
-base: don't use buffer caps
...
Port to newest 0.11 core API, remove GST_PAD_CAPS and GST_BUFFER_CAPS.
2011-05-09 13:05:12 +02:00
Sebastian Dröge
353186aec8
ext: Use G_DEFINE_TYPE instead of GST_BOILERPLATE
2011-04-19 14:22:42 +02:00
Sebastian Dröge
dce40847a8
ogg: Update new code for 0.11 buffer API
2011-04-16 16:14:26 +02:00