Commit graph

2556 commits

Author SHA1 Message Date
Julien Moutte
8f0627ea08 [MOVED FROM BAD 05/57] gst/flv/: Make sure we don't try filling up the index if no times object was parsed. Fix the way we decide to push ta...
Original commit message from CVS:
2007-08-22  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag):
* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
(gst_flv_parse_tag_script), (gst_flv_parse_tag_audio),
(gst_flv_parse_tag_video): Make sure we don't try filling up the
index if no times object was parsed. Fix the way we decide to
push
tags and emit no-more-pads. Fix some printf typing in debugging.
2009-05-12 21:20:50 +02:00
Wim Taymans
d83e2e9292 [MOVED FROM BAD 04/57] gst/flv/gstflvdemux.c: Fix locking and refcounting on the index.
Original commit message from CVS:
* gst/flv/gstflvdemux.c: (gst_flv_demux_set_index),
(gst_flv_demux_get_index):
Fix locking and refcounting on the index.
2009-05-12 21:20:50 +02:00
Julien Moutte
c3228fbb67 [MOVED FROM BAD 03/57] gst/flv/gstflvdemux.c: First method for seeking in pull mode using the index built step by step or coming from metadata.
Original commit message from CVS:
2007-08-14  Julien MOUTTE  <julien@moutte.net>

* gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup),
(gst_flv_demux_adapter_flush), (gst_flv_demux_chain),
(gst_flv_demux_pull_tag), (gst_flv_demux_do_seek),
(gst_flv_demux_handle_seek), (gst_flv_demux_sink_event),
(gst_flv_demux_src_event), (gst_flv_demux_query),
(gst_flv_demux_change_state), (gst_flv_demux_set_index),
(gst_flv_demux_get_index), (gst_flv_demux_dispose),
(gst_flv_demux_class_init): First method for seeking in pull
mode using the index built step by step or coming from metadata.
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (FLV_GET_STRING),
(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Parse
more metadata types and keyframes index.
2009-05-12 21:20:50 +02:00
Julien Moutte
11e27e7856 [MOVED FROM BAD 02/57] gst/flv/: Handle not linked pads, try to make it reusable, more safety checks.
Original commit message from CVS:
2007-07-25  Julien MOUTTE  <julien@moutte.net>

(gst_flv_demux_chain), (gst_flv_demux_pull_tag),
(gst_flv_demux_change_state), (gst_flv_demux_dispose),
(gst_flv_demux_init):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (FLV_GET_STRING),
(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_header):
* gst/flv/gstflvparse.h: Handle not linked pads, try to make it
reusable, more safety checks.
2009-05-12 21:20:49 +02:00
Julien Moutte
7a0d2df294 [MOVED FROM BAD 01/57] Adds a first draft of an FLV demuxer.
Original commit message from CVS:
2007-07-19  Julien MOUTTE  <julien@moutte.net>

* configure.ac:
* gst/flv/Makefile.am:
* gst/flv/gstflvdemux.c: (gst_flv_demux_flush),
(gst_flv_demux_cleanup), (gst_flv_demux_chain),
(gst_flv_demux_pull_tag), (gst_flv_demux_pull_header),
(gst_flv_demux_seek_to_prev_keyframe), (gst_flv_demux_loop),
(gst_flv_demux_sink_activate),
(gst_flv_demux_sink_activate_push),
(gst_flv_demux_sink_activate_pull), (gst_flv_demux_sink_event),
(gst_flv_demux_change_state), (gst_flv_demux_dispose),
(gst_flv_demux_base_init), (gst_flv_demux_class_init),
(gst_flv_demux_init), (plugin_init):
* gst/flv/gstflvdemux.h:
* gst/flv/gstflvparse.c: (FLV_GET_BEUI24), (FLV_GET_STRING),
(gst_flv_demux_query_types), (gst_flv_demux_query),
(gst_flv_parse_metadata_item), (gst_flv_parse_tag_script),
(gst_flv_parse_tag_audio), (gst_flv_parse_tag_video),
(gst_flv_parse_tag_type), (gst_flv_parse_header):
* gst/flv/gstflvparse.h: Adds a first draft of an FLV demuxer.
It does not do seeking yet, it supports pull and push mode so
YES
you can use it to play youtube videos directly from an HTTP uri.
Not so much testing done yet but it parses metadata, reply to
duration queries, etc...
2009-05-12 21:20:49 +02:00
Sebastian Dröge
d94a71a4c5 rtp: Link to -lm
Fixes bug #582281.
2009-05-12 13:00:46 +02:00
Tristan Matthews
39da7e523d avidemux: initialize variable to 0
Fixes #582218.
2009-05-11 21:02:27 +02:00
Sebastian Dröge
a1fe742e80 matroskademux: Only search for the index entry once 2009-05-11 18:21:13 +02:00
Sebastian Dröge
4cb39bc723 matroskademux: Use the first index entry if it's after the seek position 2009-05-11 18:18:36 +02:00
Sebastian Dröge
a62ed3b153 avidemux: Use the first entry for a given stream if the first entry is after the seek position 2009-05-11 18:15:22 +02:00
Sebastian Dröge
97fa58f397 avidemux: Use binary search for finding the requested index entry when seeking 2009-05-11 16:50:48 +02:00
Sebastian Dröge
e4909b37eb matroskademux: Improve/optimize seeking
First of all a keyframe seek should be done to the
keyframe right before the requested position and not
to the keyframe that is nearest to the requested position.

Use per track index arrays and use our new binary search function
from core to speed up the search.
2009-05-11 15:36:46 +02:00
David Schleef
f01adcbc0f matroska: fix printf format to agree with argument 2009-05-09 10:50:45 -07:00
Wim Taymans
a9e496d92f rtj2kdepay: add basic JPEG 2000 depayloader 2009-05-08 11:35:02 +02:00
Wim Taymans
5ec808cf7e rtpj2kpay: set marker bit correctly 2009-05-08 11:32:03 +02:00
Wim Taymans
a4dfd61a77 rtpj2kpay: add a simple JPEG 2000 payloader 2009-05-08 10:38:42 +02:00
Wim Taymans
ee1f1ae5d5 rtpjpegpay: we only need to swap bits on LE 2009-05-08 10:31:12 +02:00
Christian Schaller
bdf1698f35 Add RANKS for various encoders and muxers 2009-05-07 18:10:08 +01:00
Wim Taymans
bdbdb41e93 matroskademux: add some debugging 2009-05-07 17:10:43 +02:00
Wim Taymans
e4b59136fa matroskademux: parse xiph headers length correctly
See #580980
2009-05-07 17:10:43 +02:00
Gabriel Bouvigne
3e0f1b84a4 rganalysis: Add ability to post level messages
Fixes bug #581568.
2009-05-07 16:25:41 +02:00
Wim Taymans
e2a483f0f9 rtpjpegpay: refuse some unsupported jpeg formats 2009-05-06 23:56:44 +02:00
Wim Taymans
4ef9eee8b4 rtptheorapay: fix description 2009-05-06 18:06:49 +02:00
Wim Taymans
d87871f5f7 rtpjpegpay: rewrite quant table handling
Rewrite the quant table parsing to also handle multiple tables in one JPEG HDQ
segment.
Handle more jpeg types by keeping track of the tables used per component and
putting the used ones in the quant headers.
2009-05-06 16:11:49 +02:00
Wim Taymans
b7c5847dbd rtpjpegpay: handle input with 1 quant table
Also handle input with just one quant table, simply duplicate the quant table.
Handle invalid SOF correctly and some small cleanups.
Fixes #578257
2009-05-06 12:56:58 +02:00
Marco Ballesio
8e7273076d qtdemux: fix byte order swapping in 3GPP classification entity tag
Fixes #580746.
2009-05-06 00:16:37 +03:00
Arnout Vandecappelle
439ca2c795 multipartdemux: avoid reading from inavlid memory
Read the timestamp of the incomming buffer before we push it in the adapter and
flush it out again as the buffer might be unreffed then and we read from invalid
memory.
Fixes #581444.
2009-05-05 17:07:13 +02:00
Arnout Vandecappelle
3f2144c5ee multipartdemux: don't leak dynamic pads
Free the dynamic pads data in finalize.
Fixes #581432
2009-05-05 17:03:29 +02:00
Wim Taymans
0f1033c59f rtpjpegpay: correctly set the type header
Don't require width/height on the caps. Use the SOF header to find width/height
and fall back to the caps if there is no SOF. Also use the SOF info to find the
subsampling and quantization tables used. This allows us to set the right type
value in the JPEG rtp header.

Deprecate the quality property, it's unused now and it was used wrongly before.

Always send full quant tables for now until we have some code to detect default
ones.

Fixes #580880
2009-05-05 16:32:17 +02:00
Wim Taymans
7c59f39bfe rtpjpegdepay: use width/height from payload
Use the width and the height from the payload headers and set them on the
output caps for added awesomeness.

Fix quant parsing, we need to check the type in the lower 6 bits.

Add first bits of caching quantization tables.
2009-05-05 16:28:44 +02:00
Wim Taymans
732704c007 rtspsrc: Fix find_stream_by_* functions
Fix various version of find_stream_by_* by not trying to convert an int to a
pointer and vice versa, for portability reasons.

Fixes #581333
2009-05-04 18:55:12 +02:00
Chris Winter
752cfb16fe rtspsrc: fix dummy nat packet logic
Fix a typo in the dummy NAT packet sending code.

Fixes #581329
2009-05-04 18:32:05 +02:00
Mark Nauwelaerts
959a9b494b rtspsrc: avoid errors after server eof
Server eof (e.g. connection closed) is announced as connection closed,
so better record state and act accordingly to prevent (read/write)
errors during subsequent teardown/cleanup sequences.  #Fixes 580851.(c).
2009-05-04 17:01:35 +02:00
Mark Nauwelaerts
734548a34f rtspsrc: also set base_time on src after flush
timestamps following flush/seek should be consistent between
UDP and TCP interleaved case.  Fixes #580851.(b).
2009-05-04 17:01:28 +02:00
Mark Nauwelaerts
20c7be5741 rtspsrc: sanity checks on range info
A max range that overflows should not be trusted,
nor should a max range that equals the min range.
Fixes #580851.(a).
2009-05-04 17:01:20 +02:00
Wim Taymans
56656dd03d rtspsrc: use SKIP flag to use SCALE headers
We can use the SKIP seek flag to instruct the server to send data faster then
normal but with the same bandwidth.
Fixes #537609
2009-05-04 16:18:23 +02:00
Wim Taymans
70d1b6e1ae qtdemux: use binary search for index
Use the new binary search method for finding the right index entry faster.
2009-05-04 12:35:19 +02:00
Wim Taymans
9ea2c113ba videobox: draw the complete U and V planes
Round up the scaled U and V width and height so that we always draw the correct
amount of pixels to fill the complete image.

Fixes #569611
2009-05-04 11:26:56 +02:00
Wim Taymans
1619c09e3e qtdemux: add some more micro optimisations 2009-05-01 19:35:11 +02:00
Wim Taymans
ab0d1bc942 qtdemux: micro optimize qtdemux a little
Sprinkle some G_LIKELY around.

Avoid traversing and dumping the tree when debugging is not activated.
2009-04-30 18:41:44 +02:00
Wim Taymans
b5d84439fd qtdemux: add support for subtitle pictures
Add support for subtitle pictures.
Fixes #568278.
2009-04-30 14:22:27 +02:00
Wim Taymans
de0a2575fc rtspsrc: release state lock before stopping task
We need to release the state lock before trying to wait for the task to end
because the task might also take the lock.

Fixes #577671
2009-04-29 18:09:07 +02:00
Hans de Goede
6cfa856381 qtdemux: handle ac-3 audio
fix demuxing of m4v streams with ac-3 audio
Fixes #580554
2009-04-29 12:19:27 +02:00
Wim Taymans
b3782442ae udpsrc: fix getaddrinfo error reporting
getaddrinfo errors should be reported with gai_strerror instead of errno as
spotted by MikeS.
2009-04-27 18:00:17 +02:00
Wim Taymans
f33501ad4b g726pay: fix compilation 2009-04-27 10:08:55 +02:00
Wim Taymans
84c3d1a2c8 g726pay: add RFC compliant packetizing
Shuffle the input bits according to RFC 3551 for G726 payloads.
Add option to force the previous behaviour.

Fixes #567140
2009-04-27 10:08:55 +02:00
Wim Taymans
e213debe8e g726depay: add debug category
Add a debugging category, add some comments and remove _peek_parent().
2009-04-27 10:08:55 +02:00
Tim-Philipp Müller
a85d7b7059 id3demux: parse unsynchronised tags properly
We didn't handle unsynchronization at all up to now, which might have
caused frames to not be extracted - esp. frames after an APIC picture
frame. Fixes #577468.
2009-04-24 01:58:23 +01:00
Tim-Philipp Müller
19117a39fe id3demux: pass the right size value for size of all frames to the parser
Frame data size is tag size adjusted for size of the tag header and
footer, not tag size including header and footer.
2009-04-24 01:05:40 +01:00
Patrick Radizi
5b86c66e8a rtspsrc: fix some more pad leaks
Fix some pad leaks.
See #577318.
2009-04-22 15:27:24 +02:00