Commit graph

12160 commits

Author SHA1 Message Date
Vincent Penquerc'h 88aade4150 rtpvp8: fix bitstream parsing using the wrong kind of bitreader
VP8 uses a probabilistic bool coder, not a straight bit coder.
This fixes parsing when error-resilient is set.

This commit includes a copy of libvpx's bool coder, BSD licensed.

https://bugzilla.gnome.org/show_bug.cgi?id=652694
2012-11-01 20:53:47 +00:00
Olivier Crête 97c3f3617c rtpvp8: Reject unknown bitstream versions 2012-11-01 20:53:47 +00:00
Edward Hervey 74a1a704bf rtpvp8: Fix unitialized variable
Makes macosx compiler happy.
2012-11-01 20:53:47 +00:00
Sjoerd Simons 6ed6318076 rtpvp8depay: Accept packets with only one byte of data
When fragmenting partions it can happen that an RTP packet only caries 1
byte of RTP data.
2012-11-01 20:53:47 +00:00
Sjoerd Simons a45e7a3fc0 rtpvp8pay: Treat the frame header just like any other partition
When setting up the initial mapping just act as if the global frame
information is another partition. This saves special-casing it later in
the actual packetizing code.
2012-11-01 20:53:47 +00:00
Sjoerd Simons e9f4e9342f rtpvp8: Add simple payloaders and depayloaders for VP8
Minimal implementation of http://www.webmproject.org/code/specs/rtp/,
version 0.3.2
2012-11-01 20:53:47 +00:00
Wim Taymans d6fd0ebd04 gstpay: fix for 1.0 events
Caps events are sometimes not followed by a buffer but by an event. Flush any
pending caps before we make a packet with the event.
Chain up to the parent event handler before we attempt to push RTP packets, it
might be a segment event.
2012-11-01 18:42:39 +00:00
Wim Taymans 05232c55a5 gstdepay: fix small leak 2012-11-01 18:42:24 +00:00
Wim Taymans 08e5a197b4 gstdepay: add support for events
Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 18:18:19 +00:00
Wim Taymans 54b783b5a3 rtpgstpay: add support for sending events
We currently only send tags and custom events. The other events
might interfere with the receiver timings or are otherwise handled
by RTP.

Conflicts:
	gst/rtp/gstrtpgstpay.c
2012-11-01 18:06:11 +00:00
Wim Taymans 6502d08e43 gstpay: rewrite payloader
Use adapter to assemble the payload and make a flush function to
turn this payload into (fragmented) packets.

Conflicts:
	gst/rtp/gstrtpgstpay.c
	gst/rtp/gstrtpgstpay.h
2012-11-01 17:57:52 +00:00
Douglas Bagnall e3c77ba709 videomixer: get height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH
https://bugzilla.gnome.org/show_bug.cgi?id=687330
2012-11-01 13:03:44 +00:00
Douglas Bagnall 79403bcb0c videbox: fix border filling for gray formats
Get the height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH.

https://bugzilla.gnome.org/show_bug.cgi?id=687330
2012-11-01 13:02:16 +00:00
Wim Taymans c0713e4b80 gstdepay: check for correct fragment offset
Make sure we only insert the rtp packet in the adapter when the
frag_offset matches. When the first packet of a fragment is dropped,
it avoids putting the remaining packets in the adapter and processing
the partial fragment.

Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 12:09:47 +00:00
Wim Taymans 8a402e0c06 gstpay: set C flag on all buffers of the fragment
Set the C flags on all the fragments instead of only those with
caps in them. This makes it easier in the receiver to check if there
is a caps in the assembled fragments just by looking at the last RTP
packet flags.
2012-11-01 12:06:08 +00:00
Wim Taymans d78ff07f7d gstdepay: use the capsversion
Take the caps from the input caps and store it in the slot given
by capsversion.
2012-11-01 11:37:44 +00:00
Wim Taymans 936c3819b5 gstpay: send caps inline
Place the capsversion on the outgoing caps so that they end up in
an SDP as well. Receivers need to know what capsversion a particular
caps is for to be able to match the caps to the CV in the RTP packets.
Place the caps inside the RTP packet whenever the caps change.

Based on patch by Andrzej Bieniek <andrzej.bieniek@pure.com>

Conflicts:
	gst/rtp/gstrtpgstpay.c
	gst/rtp/gstrtpgstpay.h
2012-11-01 11:34:33 +00:00
Andrzej Bieniek 3b1931a039 gstpay: add debug
Conflicts:
	gst/rtp/gstrtpgstpay.c
2012-11-01 11:28:50 +00:00
Andrzej Bieniek ee5ecc7773 depay: correctly skip caps header size
Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 11:27:13 +00:00
Tim-Philipp Müller ef0805ea14 matroskademux: put streamheaders on vorbis/speex/flac/theora caps to make remuxing work
https://bugzilla.gnome.org/show_bug.cgi?id=640589
2012-10-30 23:29:46 +00:00
Tim-Philipp Müller cd9706e9e9 pulsesrc: don't assert in get_time() when called after shutdown
Which might happen if the source gets set to NULL state before
the rest of the pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=686985
2012-10-30 23:26:39 +00:00
Wim Taymans 0de4b76d39 tests: fix level example
Use the GValueArray in the message.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=687154
2012-10-30 11:10:49 +00:00
Tim-Philipp Müller 752cf98745 gst: fix variable order in some Makefile.am
https://bugzilla.gnome.org/show_bug.cgi?id=687013
2012-10-27 23:27:38 +01:00
Antoine Tremblay a1c86de09a gst: add various missing GST_PLUGINS_BASE_LIBS in Makefile.am
Those plugins depend on either libgstaudio or libgstvideo,
which are in gst-plugins-base.

https://bugzilla.gnome.org/show_bug.cgi?id=687013
2012-10-27 23:26:41 +01:00
Alexey Fisher 29cd24bc41 matroskademux: mark invisible VP8 frames with the DECODE_ONLY flag
https://bugzilla.gnome.org/show_bug.cgi?id=654259
2012-10-27 14:46:02 +01:00
Tim-Philipp Müller 49f49a2fbf tests: add multifilesrc test for fix in previous commit
Make sure the stop-index set is honoured.

https://bugzilla.gnome.org/show_bug.cgi?id=654853
2012-10-26 11:04:02 +01:00
Stas Sergeev 238a5ec826 multifilesrc: fix stop index handling
Make sure the stop index is always honoured. Avoids
endless loop if one wants to read and output the same
file N times, for example.

https://bugzilla.gnome.org/show_bug.cgi?id=654853
2012-10-26 11:04:01 +01:00
Руслан Ижбулатов 78193dfe71 matroskademux: Support recursive SimpleTags
Fixes #682644
Depends on #682615
2012-10-26 10:16:42 +02:00
Руслан Ижбулатов cd719bb808 matroskademux: Expand the tag mapping.
* Also expose unknown tags as key=value pairs.
* Arrange tag map in the same order tags are listed in Matroska spec, leaving
unmapped tags as comments.
* More specific TODOs.
* Remove duplicate DATE define.

Fixes #682615
Depends on #682524
2012-10-26 10:12:52 +02:00
Sebastian Dröge 6c635ce64f matroskademux: Fix uninitialized variable compiler warning 2012-10-26 10:09:39 +02:00
Руслан Ижбулатов 71fd688ef0 matroskademux: Matroska tag TargetType support
* Reads TargetType and TargetTypeValue from a Tag.
* After Tag is completely read, processes taglist, substituting some of the
tags depending on target type value and the presence of video/subtitle streams.
* Supports reading two new simpletags - PART_NUMBER and TOTAL_PARTS

Depends on #682448
Fixes #682524
2012-10-26 10:08:18 +02:00
Руслан Ижбулатов b75628f041 matroskademux: Per-track tags for Matroska
Requires Matroska file to have sane layout (track info before tag info).
Uses replace-merge.
Makes track UIDs 64-bit.

Fixes #682448
2012-10-26 10:03:55 +02:00
Tim-Philipp Müller fe7236230c multifilesrc: fix typo in property description 2012-10-25 20:19:44 +01:00
Michael Smith a88caf84b4 qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs.
Fixes aspect ratio of prores files.
2012-10-25 12:18:50 -07:00
Thiago Santos 02d91dcd24 imagefreeze: the new get_caps already does the filter intersection
It should be faster to pass the caps to intersect as the filter caps,
rather than using NULL and intersecting 'manually' later.

https://bugzilla.gnome.org/show_bug.cgi?id=686837
2012-10-25 10:32:17 -03:00
Thiago Santos 115581eb2e imagefreeze: avoid assertion when using accept caps query
This query must receive a fixed caps, so imagefreeze should
fixate its framerate before sending the query downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=686837
2012-10-25 09:39:36 -03:00
Tim-Philipp Müller 4c6ca8c0fc Back to feature development 2012-10-25 12:33:24 +01:00
Tim-Philipp Müller 8c00acd260 Release 1.0.2 2012-10-25 01:01:09 +01:00
Arnaud Vrac bc79fe565c qtdemux: use correct type for channel-mask bitmask
Fixes crash on 32-bit systems.
2012-10-24 12:54:08 +01:00
Sebastian Dröge 69246dfef7 pulsesink: Flush the ringbuffer on GAP events without duration
This is required to properly start the ringbuffer and clock.
2012-10-24 11:19:52 +02:00
Oleksij Rempel 83a47cdd0e vp8enc: set DECODE_ONLY flag on invisible AltRef frames
https://bugzilla.gnome.org/show_bug.cgi?id=654216
2012-10-23 16:14:43 +01:00
Tim-Philipp Müller 7275860bdd flacparse: fix coverart extraction if vorbis comments come after picture header
See sample file for bug #684701.
2012-10-23 16:02:05 +01:00
Tim-Philipp Müller 7c41f42eec flacparse: ignore bad headers if we have a valid STREAMINFO header
If we run into any header parsing issues and we have a valid
STREAMINFO header already, don't error out, but just stop
header parsing and try to find some audio frames.

https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Tim-Philipp Müller 49cc719809 flacparse: post proper error message and fix buffer leak on header parsing error
https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Michael Smith 150bd97e96 qtdemux: with raw audio, set a default channel-mask for multichannel audio.
This doesn't actually parse 'chan' because it's absurdly complex.
2012-10-22 22:34:43 -07:00
Sebastian Rasmussen 9fc62a58e3 updsrc: fix typo causing compilation error
gstudpsrc.c: In function 'gst_udpsrc_create':
gstudpsrc.c:365: error: 'ret' may be used uninitialized in this function

https://bugzilla.gnome.org/show_bug.cgi?id=686642
2012-10-22 23:19:28 +01:00
Wim Taymans a2eead3d60 avi_ fix invert function
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686550
2012-10-22 11:55:59 +02:00
Wim Taymans 0e3ef30c31 avi: fix debug 2012-10-22 11:55:22 +02:00
Wim Taymans 199aaa4021 qtdemux: add support for 'generic' samples
Add support for stuffing a complete stream into 1 sample.

See https://bugzilla.gnome.org/show_bug.cgi?id=686550
2012-10-22 11:39:37 +02:00
Tim-Philipp Müller ff33d8d263 tests: remove superfluous g_type_init() call
It's deprecated in newer GLib and not needed here.

https://bugzilla.gnome.org/show_bug.cgi?id=686456
2012-10-20 13:01:41 +01:00