Commit graph

4011 commits

Author SHA1 Message Date
Philip Jägenstedt
cbde946768 matroskamux: bump default doctype version to 2
In this day and age this should be safe. There's otherwise a risk people
will be creating unneccessarily big WebM files as they can't use
SimpleBlock in v1.
2010-05-19 20:38:31 +02:00
Philip Jägenstedt
9610c7f354 matroska: handle matroska and webm doctype versions equally
The original plan was to let WebM v1 be the same as Matroska v2 (with
extra constraints), but for simplicity it was decided to handle the
versions equally, such that e.g. SimpleBlock is only allowed in WebM v2.
2010-05-19 20:38:16 +02:00
Philip Jägenstedt
081f2d00aa matroskademux: Verify lace size in _parse_blockgroup_or_simpleblock
Failure to do this for corrupt input can cause a subbuffer bigger
than the actual buffer to be created, quickly leading to segfault.
Test case:
bug_s222005751_r0.001____memcpy.webm
2010-05-19 20:35:52 +02:00
Philip Jägenstedt
c659c92091 ebml: crude hack to avoid crashing on unexpected metadata
The comment says this cannot happen, but it did and I don't know
why. This is not the correct fix, needs investigation. Test case:
bug_s555010094_r0.0005:0.008____IA__g_assertion_message_expr.webm
2010-05-19 20:35:28 +02:00
Philip Jägenstedt
9c1267b1a9 ebml: don't modify out str if returning an error in _read_ascii
This is a regression from ASCII validation changes. Test case:
bug_s66876390_r0.001____malloc_printerr.webm
2010-05-19 20:35:06 +02:00
Philip Jägenstedt
c712d28796 ebml: Validate 7-bit ASCII in gst_ebml_read_ascii
This was triggering an UTF-8 assertion in gst_caps_set_simple for
corrupt files with garbage as codec id. Test case:
gstreamer_error_trying_to_set_invalid_utf8_as_codec_id.webm

Old gst_ebml_read_ascii renamed to gst_ebml_read_string, also used by
gst_ebml_read_utf8. Unlike for UTF-8, failure to validate is an error,
as gst_ebml_read_ascii is used for reading doctype and codec id and we
might just as well give up early in those cases.
2010-05-19 20:33:38 +02:00
Philip Jägenstedt
d146971128 matroskademux: Ignore unexpected CodecState
Because GstMatroskaTrackContext *stream is set up in the first
SimpleBlock or Block, a rogue CodecState otherwise causes a segfault on
derefencing the NULL pointer. Test case:
bug_s5506167_r0.001____gst_matroska_demux_parse_blockgroup_or_simpleblock.webm
2010-05-19 20:33:35 +02:00
Philip Jägenstedt
9dc7889eea matroskademux: Add video/webm sink caps 2010-05-19 20:32:13 +02:00
Philip Jägenstedt
ad05dfc032 matroskamux: Use SimpleBlock for WebM when possible 2010-05-19 20:32:02 +02:00
Philip Jägenstedt
1daeb26df1 matroskademux: Support "webm" DocType 2010-05-19 20:31:36 +02:00
Philip Jägenstedt
3b4759de18 matroskamux: rename matroska_version to doctype_version 2010-05-19 20:29:19 +02:00
Philip Jägenstedt
27069088db matroskamux: Support "webm" DocType 2010-05-19 20:28:42 +02:00
David Schleef
e847957790 qtdemux: Add VP8 2010-05-17 17:18:25 +02:00
Sebastian Dröge
e5e90f6035 matroskamux: Add support for On2 VP8
...matroskademux automatically supports it through libgstriff.
2010-05-17 17:18:24 +02:00
Sebastian Dröge
d1842481c1 avimux: Add support for On2 VP8
...avidemux automatically supports it through libgstriff.
2010-05-17 17:18:24 +02:00
Wim Taymans
dc2662e22b rtpbin: fix docs
Documentation error spotted by tony <caicai0119 at gmail.com>

Fixes #618419
2010-05-13 13:01:26 +02:00
Olivier Crête
28f509fdca rtptheoradepay: make delivery-method parameter optional
It probably will not be in the final RFC as it is not in RFC 5215 for Vorbis.
If there is a configuration specified, assume it is in-line and if nothing is
specified, assume it is in-band.

https://bugzilla.gnome.org/show_bug.cgi?id=618386
2010-05-13 12:22:36 +02:00
Wim Taymans
3e4bc043a5 celtpay: fix queue duration calculations
Don't blindly add the durations of incomming buffers to the total queued
duration because it might be invalid. Mark the total queued duration invalid
when we receive an invalid incomming timestamp because that's when we lose track
of the total queued duration.

Fixes #618324
2010-05-13 11:30:27 +02:00
Mark Nauwelaerts
4cff2e2c67 rtph264pay: extract SPS and PPS from property provided parameter set
... so it can also be regularly inserted into the stream if so configured.

Fixes #617164.
2010-05-12 10:24:10 +02:00
Tim-Philipp Müller
c209a6ab40 rtp: dist missing header file to fix make distcheck 2010-05-11 20:26:37 +01:00
Mark Nauwelaerts
bcde9fab09 qtdemux: fix push based seeking
... where it comes down to transforming incoming BYTE segment
to a corresponding TIME segment.

Also fixes #609405.
2010-05-11 18:44:01 +02:00
Sebastian Dröge
2e5262cda2 imagefreeze: Set fixed caps on the correct pad
This makes the sink getcaps function actually used instead of using
the fixed caps function for it.
2010-05-11 14:31:44 +01:00
Sebastian Dröge
f9d8174471 imagefreeze: Only start the task after a seek if a buffer was received already 2010-05-11 14:31:44 +01:00
Sebastian Dröge
3e574eafe3 imagefreeze: Set undefined framerate in sink getcaps function 2010-05-11 14:31:43 +01:00
Sebastian Dröge
53de7943c7 imagefreeze: Implement reverse playback and set buffer offsets 2010-05-11 14:31:43 +01:00
Sebastian Dröge
f1e07fcd0f imagefreeze: Add still frame stream generator element 2010-05-11 14:31:43 +01:00
Tim-Philipp Müller
f9ced7df94 Move capsfilter element from -bad to -good
Hook up moved files to the build infrastructure and docs.

Fixes #617739.
2010-05-11 14:31:43 +01:00
Sebastian Dröge
5aacc8dd29 capssetter: Some minor cleanup 2010-05-11 14:31:43 +01:00
Benjamin Otte
076d3ff456 gst_element_class_set_details => gst_element_class_set_details_simple 2010-05-11 14:31:43 +01:00
Mark Nauwelaerts
8217895170 capssetter: import element into -bad 2010-05-11 14:31:43 +01:00
Mark Nauwelaerts
5ae7119d11 avimux: check that pads have been negotiated
Also set fcc_handler field in audio stream header.

Fixes #618351.
2010-05-11 13:58:03 +02:00
Mark Nauwelaerts
e934f637b6 qtdemux: fix partial parsing of ctts table
Fixes #616516.
2010-05-11 11:06:20 +02:00
Mark Nauwelaerts
a9e688cf32 qtdemux: cleanup a comment and add some debug and conditional compilation 2010-05-11 11:06:17 +02:00
Jan Urbański
cf57f1b220 flvmux: only store the last buffer timestamp if it's valid
Fixes bug #618305
2010-05-11 06:35:48 +02:00
Olivier Crête
34d0d59142 rtph264pay: Re-send SPS/PPS when requested
https://bugzilla.gnome.org/show_bug.cgi?id=606689
2010-05-10 15:07:09 +02:00
Mark Nauwelaerts
90311e522f rtph264pay: fix typo in debug message 2010-05-10 13:35:55 +02:00
Mark Nauwelaerts
af6fc84377 rtptheorapay: add config-interval parameter to re-insert config in stream
Add a new config-interval property to instruct the payloader to insert
configuration headers at periodic intervals in the stream
(when a keyframe is countered).
2010-05-10 13:35:52 +02:00
Mark Nauwelaerts
14b14fdf7a rtptheoradepay: fix in-band configuration parsing
Also make configuration header parsing a bit more relaxed with respect
to length field interpretation.
2010-05-10 13:35:50 +02:00
Mark Nauwelaerts
b899afaeb6 rtpvorbisdepay: fix in-line configuration parsing
Also make configuration header parsing a bit more relaxed with respect
to length field interpretation.
2010-05-10 13:35:48 +02:00
Mark Nauwelaerts
7bd3943bb9 rtptheorapay: do not discard downstream flow return 2010-05-10 13:35:44 +02:00
Mark Nauwelaerts
53928a74fa rtptheorapay: refactor buffer payloading 2010-05-10 13:35:41 +02:00
Sebastian Dröge
a9ed56b1ad deinterlace: Add support for UYVY 2010-05-07 20:41:31 +02:00
Wim Taymans
50f26c671b rtpsession: fix return value 2010-05-07 19:06:35 +02:00
Wim Taymans
a50cd7c27d rtspsrc: don't leak the session 2010-05-07 19:02:21 +02:00
Wim Taymans
bc72d8250c rtsp: configure bandwidth properties in the session 2010-05-07 18:59:42 +02:00
Wim Taymans
aadf4ddf7e rtpsession: add properties to configure the bandwidth
Add properties to proxy the bandwidth configuration to the session object.
2010-05-07 18:58:58 +02:00
Wim Taymans
69cde0e874 rtpsession: add properties to configure bandwidths
Add properties to configure the sender and receiver bandwidths.
Configure the bandwidths before calculating the RTCP timeout when we need to.
2010-05-07 18:57:13 +02:00
Wim Taymans
d84dc1112d rtpstats: add some debug info 2010-05-07 18:56:30 +02:00
Wim Taymans
5690331c9e rtpsession: small cleanups 2010-05-07 18:55:34 +02:00
Wim Taymans
0da5cf2e21 rtpstats: make bandwidths more configurable
Add a method to configure the various bandwidths in the session.
2010-05-07 16:55:13 +02:00
Wim Taymans
6eee730c4a rtpsession: handle NONE RTCP intervals
Prepare for handling RTCP reporting intervals of GST_CLOCK_TIME_NONE, which
means don't send RTCP at all.
2010-05-07 13:32:30 +02:00
Wim Taymans
db3c4e7f46 rtspsrc: fall back to SDP ports instead of server_port
In multicast, fall back to the ports in the SDP instead of the server_port
attribute as this is more in line with the RFC.
2010-05-07 12:51:05 +02:00
Wim Taymans
4e1ced0a77 rtspsrc: refactor collecting the transport info
Make a method to collect the ports and destination address.
2010-05-07 12:24:51 +02:00
Wim Taymans
05352d7ea8 rtspsrc: handle servers that send broken Transports
Handle servers that send their port pairs with the wrong name.

Fixes #617537
2010-05-07 11:28:36 +02:00
Wim Taymans
ef4d2901aa rtspsrc: use the SDP connection info in multicast
Parse the connection info from the SDP.
When we need to configure the multicast destination, fall back to the SDP
connection info when the transport did not specify a destination and ttl.

Fixes #617537
2010-05-06 16:52:26 +02:00
Stefan Kost
de4b0ef7dd goom,monoscope: truncate 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.
2010-05-06 15:43:54 +03:00
Stefan Kost
899d03dcc6 auto{audio,video}{src,sink}: use can_intersect to avoid a caps copy 2010-05-06 15:43:53 +03:00
Stefan Kost
0148a230ac flvdemux: tell what we can do
Any-caps are bad. If apps scan the registry, they'd like to know what we can
output.
2010-05-06 15:43:53 +03:00
Sebastian Dröge
85c6b9b712 videomixer: Make selection of a sinkpad number threadsafe 2010-05-05 19:35:48 +02:00
Sebastian Dröge
9d6e4a7ac8 deinterlace: Add support for all common RGB formats 2010-05-05 17:39:32 +02:00
Sebastian Dröge
848f071ef4 deinterlace: Add support for AYUV 2010-05-05 16:06:51 +02:00
Wim Taymans
d6579912cb rtspsrc: make setup url in a smarter way
Make sure we always separate the base and control url parts with a / when
creating the setup url.
2010-05-04 16:36:15 +02:00
Alessandro Decina
c8a02a91a6 rtspsrc: handle SEEKING queries. 2010-05-04 16:05:13 +02:00
Mark Nauwelaerts
220f865f77 rtpmp4vpay: add config-interval parameter to re-insert config in stream
Add a new config-interval property to instruct the payloader to insert
config (VOSH, VOS, etc) at periodic intervals in the stream
(when a GOP or VOP-I is encountered).

Based on patch by <marc.leeman at gmail.com>

Fixes #607452.
2010-05-04 11:19:43 +02:00
Alessandro Decina
40899379c0 rtpjitterbuffer: move some initialization code from change_state to _init.
Set ->active to TRUE in _init so it can be set to FALSE after creating the
jitterbuffer and it won't be mistakenly reset to TRUE in the change_state
function.
This is needed to start the jitterbuffer as inactive when rtpbin is buffering.
2010-05-03 13:34:59 +02:00
Alessandro Decina
ffc2da30fc rtpbin: fix a bug handling BUFFERING messages.
If a session exists but has no streams, set the min buffering percent to 0
since it means that we haven't received anything for that session yet.
2010-05-03 11:56:58 +02:00
Alessandro Decina
f6e9f359b9 rtpbin: when a stream is created, pause the jitterbuffer if rtpbin is buffering. 2010-05-03 11:51:37 +02:00
Alessandro Decina
38a5b08ef2 rtpbin: fix a bug calculating stream offsets. 2010-05-03 11:23:59 +02:00
Sebastian Dröge
ad1c01661f matroskamux: Write previous cluster's size
This is useful for backwards playback, which should be implemented
in matroskademux at some point.
2010-05-01 14:20:59 +02:00
Sebastian Dröge
1e1cf5df70 matroskademux: Set interlaced flag in the caps if the flag is set in the Matroska file 2010-05-01 14:15:49 +02:00
Sebastian Dröge
db6a3e55c6 matroskamux: Write interlaced flag if the input video content is interlaced
Unfortunately Matroska has no way to specify TFF and friends...
2010-05-01 14:13:24 +02:00
Tim-Philipp Müller
c1d24699f5 rtp: fix printf format of some debug messages 2010-05-01 11:25:26 +01:00
Tim-Philipp Müller
fa4b2938bc matroska: init variable to avoid compiler warning on OSX
Fixes (bogus) "'offset' may be used uninitialized in this function"
warning on build bot (also spotted by philn).
2010-05-01 11:15:04 +01:00
David Schleef
1df1d34fe1 qtdemux: UYVY is 4:2:2, not 4:2:0 2010-04-30 17:19:44 -07:00
Sebastian Dröge
2ac1f1c7ee deinterlace: Make automatic detection of interlacing the default
Previously "force deinterlacing" was the default, which is a not very
sensible default for the normal use case where deinterlace should act
in passthrough mode unless interlaced content is present.
2010-04-30 22:17:12 +02:00
Mark Nauwelaerts
be5ffd96fe rtptheoradepay: also accept in-band configuration
Fixes #574416 (theora).
2010-04-30 13:54:56 +02:00
Mark Nauwelaerts
a344cfba27 rtpvorbisdepay: also accept in-line configuration
Fixes #574416 (vorbis).
2010-04-30 13:54:52 +02:00
Olivier Crête
7bc3253761 rtptheoradepay: Ignore packets without a known codebook
Don't produce an error if a packet is received without a valid codebook,
it's possible that the codebook will just be coming later.

See #574416.
2010-04-30 13:54:50 +02:00
Benjamin M. Schwartz
c3dc498278 y4menc: add 4:2:2, 4:1:1, and 4:4:4 output support
Fixes #610902.
2010-04-30 13:50:08 +02:00
Mark Nauwelaerts
6bf7f5cfd3 rtph264depay: DELTA_UNIT marking of output buffers
... which evidently makes (most) sense if output buffers are
actually frames.

Partially based on a patch by
Miguel Angel Cabrera <mad_aluche at hotmail.com>

Fixes #609658.
2010-04-30 13:50:03 +02:00
Mark Nauwelaerts
0206b67b1d rtph263depay: extra keyframe info from PTYPE header
... as opposed to taking it from h263 payload header, which need not
be so reliable.

Fixes #610172.
2010-04-30 13:50:00 +02:00
Mark Nauwelaerts
fe9e6d82ee rtph263depay: also use Picture Start Code to detect packet loss
This ensures a whole frame is dropped if a (start) packet is lost,
rather than relying only on the DISCONT flag.
2010-04-30 13:49:57 +02:00
Mark Nauwelaerts
84ac277add rtph263depay: detect frame start using Picture Start Code
So we stop dropping fragments as soon as there is a picture start (code).
In particular, this prevents dropping the first frame following
initial DISCONT.
2010-04-30 13:49:54 +02:00
Mark Nauwelaerts
e7903311f5 rtph263depay: handle a few FIXMEs 2010-04-30 13:49:51 +02:00
Mark Nauwelaerts
3692bbb7ae rtph263depay: slightly refactor payload dropping 2010-04-30 13:49:47 +02:00
Mark Nauwelaerts
a08f76a92e rtph263pay: use found GOBs to apply Mode A payloading
... rather than falling back to sending the whole frame in one packet
if number of GOB startcodes < maximum.
One might take this further and still perform Mode B/C payloading,
but at least this should cater for decent fragments in typical cases.

Fixes #599585.
2010-04-30 13:49:43 +02:00
Mark Nauwelaerts
a6bb8338fd matroskademux: implement push mode seeking 2010-04-30 13:49:39 +02:00
Tim-Philipp Müller
e79f7beba6 docs: update for videofilter plugin merge and add gtk-doc blurb for new property 2010-04-29 20:08:43 +01:00
Sebastian Dröge
61217b521c deinterlace: Improve segment handling a bit 2010-04-29 19:28:24 +02:00
Sebastian Dröge
05a2732851 deinterlace: Order caps by amount of contained information 2010-04-29 19:28:24 +02:00
Sebastian Dröge
cb789617f9 deinterlace: Properly set interlaced field in getcaps 2010-04-29 19:28:24 +02:00
Sebastian Dröge
eeb5a23483 deinterlace: Add planar YUV support to all other simple methods 2010-04-29 19:28:24 +02:00
Sebastian Dröge
4ca4ac3f03 deinterlace: Add planar YUV support to greedyh method 2010-04-29 19:28:24 +02:00
Sebastian Dröge
bdb9675519 deinterlace: Add support for planar YUV formats in greedyl method 2010-04-29 19:28:24 +02:00
Sebastian Dröge
03a8379e20 deinterlace: Add support for Y444, Y42B, I420, YV12 and Y41B
The vfir method supports them and will be used until something else
supports it.
2010-04-29 19:28:23 +02:00
Sebastian Dröge
a626b19490 deinterlace: Define deinterlace method base classes as abstract types 2010-04-29 19:28:23 +02:00
Sebastian Dröge
600f82fbfe deinterlace: Move deinterlacing methods to their own file 2010-04-29 19:28:23 +02:00
Sebastian Dröge
a405d5a4f1 deinterlace: Simplify passthrough mode detection 2010-04-29 19:28:23 +02:00
Sebastian Dröge
3dc7215492 deinterlace: Refactor deinterlacing as preparation for supporting more color formats 2010-04-29 19:28:23 +02:00
Sebastian Dröge
e2eb012a41 videobox: Add support for Y444, Y42B and Y41B 2010-04-29 19:28:23 +02:00