Commit graph

3637 commits

Author SHA1 Message Date
Wim Taymans
fe529e71c5 interleave: fix weird indentation 2009-12-24 17:03:02 +01:00
Wim Taymans
59dc9dac03 rtph263ppay: use faster _adapter_copy() whem possible 2009-12-24 17:01:54 +01:00
Mark Nauwelaerts
05307c46e7 rtph264pay: fix uninitialized variable 2009-12-23 19:39:05 +01:00
Wim Taymans
9f098b352b rtp: use boilerplate 2009-12-23 13:09:54 +01:00
Wim Taymans
2ee7f58416 rtpL16pay: convert to baseaudiopayload
Use GstRTPBaseAudioPayload as the base class. This saves a lot of code and fixes
a bunch of problems that were already solved in the base class.

Fixes #853367
2009-12-23 00:38:05 +01:00
Wim Taymans
cdb8c718bb rtppcmapay: the boilerplate macro sets parent_class 2009-12-23 00:30:49 +01:00
Wim Taymans
05418f1687 rtpbin: avoid some structure copies
Don't make copied in the getter and setter for SDES in the RTPSource. This
avoids a couple of copies of the SDES structure when generating RTCP
packets.
2009-12-22 22:27:21 +01:00
Pascal Buhler
c3448f978e rtpmanager: improve SDES handling
Store SDES internally as a struct to support multiple PRIV values.
Include all values set in SDES struct when sending RTCP SDES.
2009-12-22 21:43:25 +01:00
Wim Taymans
251401aef1 rtph263depay: add some fixmes 2009-12-22 14:41:35 +01:00
Wim Taymans
564581e1b8 rtph263depay: baseclass handles timestamps for us 2009-12-22 14:35:13 +01:00
Wim Taymans
27ff4a8a47 rtph263depay: reset start variable properly 2009-12-22 14:27:40 +01:00
Marco Ballesio
74b3439374 Drop the whole frame if a packet is lost.
Fixes #582575
2009-12-22 11:48:52 +01:00
Wim Taymans
4687199348 rtph264pay: add option to insert PPS/SPS in streams
Add a new spspps-interval property to instruct the payloader to insert
SPS and PPS at periodic intervals in the stream.
Rework the SPS/PPS handling so that bytestream and AVC sample code both use the
same code paths to handle sprop-parameter-sets. This also allows to have the AVC
code to insert SPS/PPS like the bytestream code.

Fixes #604913
2009-12-21 20:45:54 +01:00
Jonathan Conder
1112090589 qtdemux: Adds new tags
Adds some new tags mapping to qtdemux.

Fixes #599759
2009-12-21 12:03:30 -03:00
Wim Taymans
9734699788 rtpbin: add property to remove pads automatically
Add a property called autoremove to automatically remove the pads of sources
that timed out.

Fixes #554839
2009-12-21 15:07:44 +01:00
Wim Taymans
c611bbaa8e ssrcdemux: fix comparison
A NULL means no pad was found.
2009-12-21 15:07:34 +01:00
Michael Smith
eab08d67b3 multiudpsink: pass length parameter to g_convert 2009-12-20 17:26:15 -08:00
Edward Hervey
188725811f matroska: Fix unitialized variable.
Yes, it's stupid, but macosx compilers are even more stupid.
2009-12-18 12:46:06 +01:00
Sebastian Dröge
3ac6f5e48b videomixer: Fix assembly compilation on x86
Fixes bug #604814.
2009-12-17 18:14:55 +01:00
Branko Čibej
7b107f64f3 rganalysis: fix timestamp rounding
Use scaling function to round and avoid overflows.

Fixes #604352
2009-12-17 17:37:03 +01:00
Tiago Katcipis
908a9ee63b rtp: add G723 payloader
Fixes #597823
2009-12-17 17:27:42 +01:00
Wim Taymans
cc277b4a26 qtdemux: Fix ALAC codec_data parsing
Fixes #604611
2009-12-17 16:23:56 +01:00
Thiago Santos
4063bb87e8 qtdemux: Remove cpp style coments
Removes // comments and replace them with /* */ comments
2009-12-16 17:28:30 -03:00
Mark Nauwelaerts
c9a0d2339e matroskademux: also consider BlockNumber indicated in index when seeking 2009-12-16 12:48:02 +01:00
Mark Nauwelaerts
900ff7247e matroskademux: support push based mode
Fixes #598610.
2009-12-16 12:46:40 +01:00
Mark Nauwelaerts
e4183c6904 matroskademux: fix ebml read cache usage 2009-12-16 12:46:37 +01:00
Sebastian Dröge
0a0f7ecc16 videomixer: Use movzbl instead of movzxb for moving one byte to a l register
For some reason latest gcc/binutils accept movzxb here while
movzbl would be correct and is the only thing accepted by older
gcc/binutils.

Fixes bug #604679.
2009-12-16 10:50:32 +01:00
Sebastian Dröge
9e45038d8d videomixer: src/dest are input and output of the AYUV blending MMX assembler 2009-12-16 06:59:01 +01:00
Sebastian Dröge
c26ccb9722 audiowsincband: Use the same upper length limit as audiowsinclimit 2009-12-15 18:18:54 +01:00
Sebastian Dröge
7fec6843c0 audiowsinc{limit,band}: Allow much larger filter lengths now 2009-12-15 18:12:47 +01:00
Sebastian Dröge
119a6ce637 audiofxbasefirfilter: Fix frequency response calculation 2009-12-15 18:12:47 +01:00
Sebastian Dröge
8695581751 audiofxbasefirfilter: Remove dead assignments 2009-12-15 18:12:46 +01:00
Sebastian Dröge
cd2b1c1b58 audiofxbasefirfilter: Add special processing functions for Mono/Stereo
This provides another 7% speedup for the time domain convolution and 1.5%
speedup for the FFT convolution on Mono input.

This optimization assumes that the compiler simplifies calculations
and conditions on constant numbers and unrolls loops with a constant
number of repeats.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
a3d7321c50 audiofxbasefirfilter: Add a "low-latency" mode
This will always use time-domain convolution, which lowers the latency.
With FFT convolution it's always a multiple of the kernel length,
with time domain convolution it's only the pre-latency of the filter kernel.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
ca568ff079 audiofxbasefirfilter: Remove obsolete TODO comments 2009-12-15 18:12:46 +01:00
Sebastian Dröge
45edc1bbd8 audiofxbasefirfilter: Use samples everywhere instead of samples*channels sometimes 2009-12-15 18:12:46 +01:00
Sebastian Dröge
02960383c1 audiofxbasefirfilter: FFT convolution implementation
This provides a great speedup, especially the relationship between kernel
length and processing size is now logarithmic instead of linear. Below a
kernel size of 32 it's a bit slower, afterwards it's much faster:

17     0.788000 -> 0.950000
33     1.208000 -> 1.146000
65     2.166000 -> 1.146000
...
4097 107.444000 -> 1.508000

For sizes smaller 32 the normal time-domain convolution is chosen,
for larger sizes the FFT convolution is automatically used.

Fixes bug #594381.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
ddafc20b28 audiofxbasefirfilter: Make most code parts independent of the processing functions and used convolution algorithm
Only remaining part is the residue pushing, which will be fixed later.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
43576fb0cf audiofxbasefirfilter: Optimize time-domain convolution
Remove some redundant calculations, move comparisions out of
inner loops, etc.

This makes the convolution about 3 (!) times faster but
processing time is of course still proportional to the
filter size.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
c5f955a3b6 audiofxbasefirfilter: Use _CAST macros in some places and do some calculations only once 2009-12-15 18:12:46 +01:00
Sebastian Dröge
abb437454e audiofxbasefirfilter: Rewrite timestamp tracking
It's much simpler now and doesn't introduce accumulating rounding
errors.
2009-12-15 18:12:46 +01:00
Sebastian Dröge
c57be62881 audiofxbasefirfilter: Rename some variables and change comments 2009-12-15 18:12:45 +01:00
Sebastian Dröge
742a7c7f50 audiofxbasefirfilter: Add const qualifier to the source data array 2009-12-15 18:12:45 +01:00
Sebastian Dröge
061ededa36 videomixer: Add MMX implementations of the AYUV blending and color filling functions
This provides a 20% speedup for blending and 100% for color filling.

The blending can probably be optimized even more.
2009-12-15 12:30:21 +01:00
Tim-Philipp Müller
d3a9f07669 id3demux: prefer two letter ISO 639-1 code for extended comment 2009-12-13 13:19:43 +00:00
Tim-Philipp Müller
6c4c8f8670 qtdemux: fix up language code extraction some more
Quicktime uses ISO 639-2 for language codes, but GST_TAG_LANGUAGE
is supposed to hold a ISO 639-1 code, so convert as needed using
the new API from -base.

See #602126.
2009-12-13 13:10:12 +00:00
Tim-Philipp Müller
b66f914586 matroska: fix language code writing and extraction
Matroska uses three-letter ISO 639-2B codes, but GST_TAG_LANGUAGE is
supposed to contain two-letter ISO 639-1 codes, so use new language
code mapping functions in -base to convert between those two as
needed.

Fixes #505823.
2009-12-13 12:51:13 +00:00
Tim-Philipp Müller
1b786258c2 avidemux: minor debug message changes
Fix up a few debug messages so that it's clearer what they mean.
2009-12-13 12:51:13 +00:00
Thiago Santos
52177fa056 Revert "qtdemux: Correctly parse classification tags"
This reverts commit cd883aa60c.

Previous code was correct, 4 is due to table and language code,
not only language code
2009-12-12 17:44:04 -03:00
Thiago Santos
cd883aa60c qtdemux: Correctly parse classification tags
In clsf atoms, the language code is 2 bytes long, not 4.
2009-12-12 16:31:35 -03:00
Sebastian Dröge
66d3ac8fb7 videomixer: Dequeue current buffer on FLUSH_STOP and don't unref NULL buffers
... NULL buffers shouldn't really happen anymore when popping the
buffer from GstCollectPads but better check for this and print a warning.
2009-12-12 16:55:13 +01:00
Sebastian Dröge
760eaf7b2a videomixer: Fix stupid mistake in last commit 2009-12-11 13:11:12 +01:00
Sebastian Dröge
089d9d9dba videomixer: Don't do floating point math in the inner processing loop for I420 blending 2009-12-11 12:36:42 +01:00
Wim Taymans
b8c2ccce4e rtspsrc: handle NULL and empty transport strings
When an RTSP extension returns NULL or an empty transport string, just ignore it
and try to get the next possible transport. Fixes playback of RealMedia streams.
2009-12-10 18:45:55 +01:00
Wim Taymans
6a44d8e198 rtspsrc: install event function on internal RTCP pad
Install a custom event function on the internal RTCP pad so that we can reply
TRUE to a latency event.
2009-12-10 18:45:55 +01:00
Sebastian Dröge
6f51dfba95 videomixer: Remove wrong comments, copied from the I420 blend function 2009-12-10 10:48:49 +01:00
Sebastian Dröge
93089ef445 videomixer: The queued duration is a signed integer
...and it will really be negative sometimes.
2009-12-09 21:15:07 +01:00
Sebastian Dröge
7418dee253 videomixer: Only pop buffers from collectpads after they're fully consumed
This decreases latency and memory usage because new buffers are only
accepted by collectpads if there's no queued buffer.
2009-12-09 21:03:57 +01:00
Sebastian Dröge
cd888c0531 matroskademux: Clean up position/duration handling
Also use the last end time for closing the segment, not the
start time of the last buffer.
2009-12-09 20:42:44 +01:00
Sebastian Dröge
0766a54138 matroskademux: Close the segment on EOS if the real duration is known 2009-12-09 16:50:02 +01:00
Sebastian Dröge
5ca96043ff matroskademux: Update duration if current buffer is already after the old duration 2009-12-09 16:46:18 +01:00
Sebastian Dröge
c9b1ab53fe matroskademux: Drop buffers that are after segment stop
...and if this happened for all streams go EOS.
2009-12-09 16:43:41 +01:00
Sebastian Dröge
276a61ab2a matroskademux: Fix position tracking and sending of filler segments 2009-12-09 16:41:04 +01:00
Sebastian Dröge
b0f8978fd8 videomixer: Use gst_util_uint64_scale_int() for fps to seconds per frame calculations 2009-12-09 16:15:09 +01:00
Sebastian Dröge
3ddb75e3c5 matroskademux: Keep the segment stop position for update newsegment events 2009-12-08 17:34:15 +01:00
Wim Taymans
ee6d7fd2db avidemux: init current_entry in push mode
Set the current_entry to 0 (instead of -1) in push mode so that we correctly
calculate the current frame number and timestamp.

Add some more debug info and fic the duration debug.
2009-12-04 13:52:49 +01:00
Tim-Philipp Müller
24b93d82ec rtspsrc: fix major memory leak when playing back rtsp video streams
Don't forget to unref QoS, navigation and latency events when
dropping them.
2009-12-04 11:14:03 +00:00
Tim-Philipp Müller
d0b25845ec matroskademux: only send pending tags with newsegment events
Send pending tags only from the streaming thread, just after we've sent
the newsegment event, not with e.g. flush-start. This not only does the
right thing, but also makes sure we're not trampling over variables set
up in the streaming thread from the seeking thread in case someone tries
to issue a seek just as the demuxer is parsing the headers.

Fixes #601617. Spotted by Ognyan Tonchev.
2009-12-04 11:13:31 +00:00
Thiago Santos
ff4ac9ddf6 qtdemux: fix debug message printf args
Fixes debug message printf format to make it build in mac's gcc
2009-12-03 17:49:55 -03:00
Aurelien Grimaud
07f27f0efd rtpsession: avoid buffer ref/unref pairs for CSRCs
We ref the buffer before pushing it downstream in order to get the CSRCs of it
after pushing. This causes performance problems when downstream elements want to
change the metadata because the buffer needs to be subbuffered.

Instead, read and store the CSRCs of the buffer in an array before pushing it
and process the array after pushing the buffer. This allows us to remove the
ref/unref pair.

Fixes #603376
2009-11-30 15:59:50 +01:00
Mark Nauwelaerts
e49e71a1d9 rtph264depay: optionally merge NALUs into Access Units
... which may be expected/desired by some downstream decoders
(and spec-wise highly recommended for at least non-bytestream mode).
2009-11-26 17:29:26 +01:00
Mark Nauwelaerts
baa28ddedf qtdemux: fix timestamp datatype 2009-11-26 17:29:03 +01:00
Wim Taymans
8070ae967b jitterbuffer: avoid using wrong clock-rate
Check for a valid clock-rate before attempting to estimate the npt
stop time.
2009-11-25 10:38:23 -06:00
Wim Taymans
5682e2bf01 rtpbin: fix typo in comments 2009-11-25 10:37:30 -06:00
Michael Smith
9d6adc8f3c multiudpsink: return error message on windows too. 2009-11-24 11:13:06 -08:00
Michael Smith
d4826d987c multiudpsink: first phase of fixing up error reporting for windows. 2009-11-24 10:58:49 -08:00
Thiago Santos
b59dc3e5fb avimux: also set the suggested buf size for audio
We were only setting the suggested buf size for video,
we can set it for audio as well.

This and 195e14529d80ef318ce3a778c1995efb11f266cd
fix an issue that prevented seeking on large avi files
on WMP (non-recent versions).
2009-11-24 12:44:57 -03:00
Thiago Santos
831b1e958a avimux: fix indx duration for PCM audio
GstBuffers for PCM audio usually contains more than
1 sample, we need to get the total number of samples to set
the indx duration.
2009-11-24 12:44:56 -03:00
Thiago Santos
8dd78015f1 avimux: Audio buffers should be picked earlier
Adds a 0.5s advantage for audio buffers to being
picked earlier for muxing.
2009-11-24 12:44:56 -03:00
Robert Swain
98279be735 qtdemux: Fix push mode by making sure stbl information is available in
next_entry_size ()
2009-11-24 16:40:19 +01:00
Robert Swain
db5de8f1b6 qtdemux: Fix order of arguments in log message 2009-11-24 16:35:20 +01:00
Robert Swain
f9745e89d3 qtdemux: Ease debugging by removing a goto for an error message 2009-11-23 16:29:15 +01:00
Robert Swain
4025d7cbd7 qtdemux: Parse per sample rather than all at once but build complete index when
seeking
2009-11-23 16:29:15 +01:00
Robert Swain
0c62109d20 qtdemux: Save atom data for later use so it doesn't get freed after initial
parsing
2009-11-23 16:29:15 +01:00
Robert Swain
29c33806c1 qtdemux: Parse from the previously parsed sample up to sample n 2009-11-23 16:29:14 +01:00
Robert Swain
52b1040219 qtdemux: Make qtdemux_parse_samples () parse up to n samples 2009-11-23 16:29:14 +01:00
Robert Swain
1f7b878d89 qtdemux: Separate off stbl sub-atom initialisation 2009-11-23 16:29:14 +01:00
Robert Swain
6a6d2c4970 qtdemux: Move variables into context in preparation for refactorisation 2009-11-23 16:29:14 +01:00
Robert Swain
ab61fb22f6 qtdemux: Fix bug where stps is never parsed due to logic error 2009-11-23 16:29:14 +01:00
Robert Swain
a1e2047472 qtdemux: Port ctts from Gnode * to GstByteReader 2009-11-23 16:29:14 +01:00
Robert Swain
9e49197208 qtdemux: Switch from QtAtomParser to GstByteReader 2009-11-23 16:29:14 +01:00
Wim Taymans
5d41590601 qtdemux: fix typo and grammar 2009-11-23 12:53:50 +01:00
Tim-Philipp Müller
5908c40405 deinterlace: fix typo in mode enum description 2009-11-20 10:30:00 +00:00
Stefan Kost
9ee0815e85 docs: more links and better short description
Fix spelling of GstRtpSsrcDemux to get it linked. Add more links. Change
the short description to be more meaningful.
2009-11-20 11:25:49 +02:00
Thiago Santos
e35085e5b5 qtdemux: Add more fields to SVQ3 caps
qtdemux only added the whole stsd atom as 'codec_data'
in its output caps for SVQ3. This patch makes it add
the SEQH (inside a SMI atom) and a gamma field (taken
from the gama atom) if available.

Fixes #587922
2009-11-18 16:41:50 -03:00
Edward Hervey
f2f75d7fd9 wavenc: Raise rank of muxer to PRIMARY 2009-11-18 17:55:42 +01:00
Edward Hervey
8a1e0c53ae y4m: Raise rank of encoder to PRIMARY 2009-11-18 17:54:36 +01:00
Edward Hervey
a5dd867d6f law: Raise rank of encoders to PRIMARY 2009-11-18 17:54:35 +01:00
Bastien Nocera
efc611e420 Add user-id and user-pw properties
So that one doesn't need to modify the URL to have access
to authenticated RTSP streams.

fixes #601728
2009-11-18 17:27:19 +01:00
Mark Nauwelaerts
bf5f3a3964 qtdemux: fix bogus memory chunk size check 2009-11-18 12:54:48 +01:00
Wim Taymans
f52859432f jitterbuffer: release lock before emiting signals
Release the jbuf lock before emiting the request-pt-map signal to avoid
deadlocks. We also need to catch the shutdown case when locking again.

Fixes #593354
2009-11-18 10:50:44 +01:00
Wim Taymans
8c3b03de26 rtp: add BroadcomVoice depayloader 2009-11-18 10:50:43 +01:00
Wim Taymans
039d225a78 rtpbvpay: add rfc reference 2009-11-18 10:50:43 +01:00
Wim Taymans
02476fb5a3 rtp: add BroadcomVoice payloader 2009-11-18 10:50:43 +01:00
Jan Urbański
dd82612340 flvmux: properly finish the ECMA array
The ECMA array with the file index was missing a mandatory end marker.
Fixes bug #601242.
2009-11-18 08:03:43 +01:00
Jan Schmidt
baa79ffecb Use new still-frame API from gst-plugins-base 2009-11-18 03:09:06 +00:00
Michael Smith
fe9415544e qtdemux: identify IMA adpcm in qt properly. 2009-11-17 17:59:13 -08:00
Tim-Philipp Müller
4b1566d7f3 equalizer: printf format fix 2009-11-05 23:40:15 +00:00
Thiago Santos
feed8c2af3 avimux: do not write empty INFO list
avoid writing an empty INFO list chunk, both because
it is useless and because vlc refuses to play the
resulting file.
2009-11-05 12:31:56 -03:00
Sebastian Dröge
fb682d0444 equalizer: Notify about band property changes caused by changing number of bands 2009-11-05 10:54:12 +01:00
Sebastian Dröge
64e00f172c equalizer: Make changes to band properties and the number of bands threadsafe 2009-11-05 10:45:59 +01:00
Sebastian Dröge
025e26f73a equalizer: Fix stupid off by two bug 2009-11-05 10:30:46 +01:00
Sebastian Dröge
9405a328b1 equalizer: Add band property to select the band filter type
This allows per band configuration of a peak, low shelf or
high shelf filter, which can be very useful if the band frequencies
and widths are manually configured.
2009-11-05 08:21:33 +01:00
Sebastian Dröge
0525abd4af equalizer: Fix code style 2009-11-05 08:21:33 +01:00
Sebastian Dröge
e1acc8f4da equalizer: Some cleanup 2009-11-05 08:21:33 +01:00
Gabriel Millaire
773f142483 celtpay/depay : change GST_DEBUG_OBJECT to GST_LOG_OBJECT in pay_handle_buffer and depay_process 2009-11-04 12:02:50 -05:00
Gabriel Millaire
ac90398092 celtpay/depay: Negotiate parameters through caps
celtdepay : added default framesize(480) channels(1) and clockrate(32000)
            depay_setcaps : now gets channels and framesize from string with default value
            depay_process : now adds timestamp to outbuf
            Added frame_size to GstRtpCeltDepay
            Changed some GST_DEBUG to GST_DEBUG_OBJECT or GST_LOG_OBJECT
celtpay : getcaps : gets channel and framesize and sets caps
          Added frame-size to static caps for audio/x-celt
2009-11-04 12:02:50 -05:00
Jan Schmidt
1636bb0800 deinterlace: Pull in CFLAGS and LIBS flags from -base before core before system. 2009-11-04 15:59:49 +00:00
Edward Hervey
8df3e5c22b qtdemux: init variables to make compiler on osx build bot happy 2009-11-04 16:47:42 +01:00
Tim-Philipp Müller
261454dd92 qtdemux: init variables to make compiler on osx build bot happy 2009-11-03 16:05:47 +00:00
Tim-Philipp Müller
65a1db99eb deinterlace: remove pointless call to gst_element_no_more_pads() 2009-11-02 08:45:53 +00:00
Stefan Kost
03d2f4bdec level: fix decay to be smooth
The length not having any fractional part as it was promoted to gdouble after
dividing two guint64.
2009-11-01 00:31:48 +02:00
Stefan Kost
71044b37b6 level: calculate the message-intervall when it changes 2009-11-01 00:31:48 +02:00
Stefan Kost
f5b3392fa6 level: clocktime is a guint64, use right macro to init fields 2009-11-01 00:31:48 +02:00
Stefan Kost
519e424494 level: use more g-style types 2009-11-01 00:31:48 +02:00
Wim Taymans
0c12f585e3 avidemux: use segment_full when we can
Use segment_full so that we can pass the applied rate to the segment values. We
will change the applied rate when we implement skip mode.
2009-10-27 18:07:18 +01:00
Robert Swain
0cbe0d6e98 wavenc: Fix buffer offset by moving length incrementation 2009-10-27 12:43:33 +01:00
Michael Smith
b0b54d9324 Add dependencies of gstriff to things that link to gstriff, needed on Win32. 2009-10-23 18:09:43 -07:00
Stefan Kost
e43eb89449 tests: add a jitterbuffer test
Tests pushing a few buffers in various order and asserting the order sent by the
jitterbuffer. Contains two disabled tests that need more work.
2009-10-22 13:35:57 +03:00
Sebastian Dröge
68176befa2 matroskamux: Dirac "muxing" units end on EOS too
A Dirac muxing unit are all non-picture, non-end-of-sequence
packets up to and including the first picture or eos packet.

See http://www.diracvideo.org/wiki/index.php/ContainerFormatMappingGuidelines
2009-10-22 12:32:32 +02:00
Tim-Philipp Müller
457ac565ba avidemux: fix compilation with debugging disabled
total_idx is always evaluated.
2009-10-22 02:09:08 +01:00
Edward Hervey
683f2a02fb avidemux: Stop scanning at the last entry... and not the one before :)
This ensures we actually push out everything
2009-10-20 18:23:28 +02:00
Andy Wingo
c917d65e6d qtdemux: unpack more information into image/x-j2c caps
* gst/qtdemux/qtdemux_fourcc.h: Add new fourccs for use by the mj2
  unpacker.
* gst/qtdemux/qtdemux.c (qtdemux_parse_trak): Unpack JPEG2000 component
  mapping and channel definitions from the jp2h header. Will add
  component-map and channel-definitions elements to the caps if the
  component maps or channel definitions are nonstandard, where standard
  order means RGB, 444 packed YUV, or greyscale, with no alpha channel.

Fixes #598915.
2009-10-20 17:20:55 +02:00
Stefan Kost
217b54a8f6 level: code cleanup
Use gdouble instead of double. Calculate falloff_time once instead of twice.
2009-10-18 23:53:42 +03:00
Edward Hervey
024f1bae0c avidemux: MEMDUMP the junk blobs
It will only actually pull the junk blobs from upstream if the memdump
level is activated
2009-10-18 16:16:43 +02:00
Edward Hervey
1f5ace4de1 avidemux: Some avi files have INFO lists in the headers. 2009-10-18 16:16:43 +02:00
Edward Hervey
6e849f84fc avidemux: Don't seek on empty streams 2009-10-18 16:16:43 +02:00
Edward Hervey
a6ed612f42 avidemux: Ensure _calculate_durations_from_index only uses valid streams 2009-10-18 16:15:08 +02:00
Edward Hervey
1936d6ed26 avidemux: Only call convert function if we have strf.auds 2009-10-18 16:15:08 +02:00
Edward Hervey
af99a4a1de avidemux: Use first indexed stream for seeking.
In the future, main_stream can be adjusted to contain the optimal stream
as mentionned in the FIXME line 3440
2009-10-18 16:15:05 +02:00
Edward Hervey
2110cbe556 avidemux: Only expose streams that actually have something in it.
This guarantees that in pull-mode, all streams have a valid index to
work with.
2009-10-18 16:14:40 +02:00
Edward Hervey
546aa4c4dd avidemux: Properly mark presence of index.
Instead of blindly saying we have an index, only do so if we have a
non-empty index.
2009-10-18 15:40:37 +02:00
Mark Nauwelaerts
3d0659b813 debugutils: register pushfilesrc element 2009-10-16 18:19:20 +02:00
Mark Nauwelaerts
8f2beb5e51 avimux: support (some) VBR audio muxing
AVI format can handle VBR audio provided audio chunks are of fixed duration
(cfr fixed duration video frames).  Apply this approach to (always) parsed
raw AAC and (if parsed) to MPEG-1/2 audio.

See #368681.
2009-10-16 17:31:02 +02:00
Stefan Kost
6904e46ef2 build: use gst-glib-gen.mak to fix the glib build rules.
The build rules in glib-gen.mak were using pattern rules in a non save way.
2009-10-16 11:53:38 +03:00
Mark Nauwelaerts
7ceeb14834 avidemux: adjust flow return aggregation to updated loop_data
In particular, each stream is now treated separately, and one stream's
EOS should not lead to overall EOS.
2009-10-15 21:32:08 +02:00
Mark Nauwelaerts
354a062c89 qtdemux: check some more atom sizes prior to parsing 2009-10-15 17:06:41 +02:00
Wim Taymans
6725c91387 rtsp: handle events in TCP mode
We need to handle events in TCP mode so that we can reply to the LATENCY event
with TRUE.
2009-10-15 13:20:26 +02:00
Mark Nauwelaerts
f071ff6993 avidemux: add missing argument in debug message 2009-10-15 11:26:09 +02:00
Wim Taymans
88884cfddb rtspsrc: forward events into the rtpbin
Only catch the SEEK event on the srcpad and let other events enter the rtpbin.
2009-10-14 17:01:51 +02:00
Thiago Santos
959a3f9c95 matroskademux: Fix late tags finding
Use the correct taglist variable when notifying of late tags.
2009-10-14 11:33:24 -03:00
Mark Nauwelaerts
0141934eec avidemux: use GstIndex for (limited) seeking in push mode
... but disable this for now.  Although it basically works fine,
user experience might be shaky (depending on taste), since there
is no keyframe info in push mode.
2009-10-14 13:15:09 +02:00
Mark Nauwelaerts
35dc28d69a avidemux: add GstIndex support 2009-10-14 13:15:06 +02:00
Mark Nauwelaerts
92dd51e511 avidemux: also determine duration in push mode 2009-10-14 13:15:04 +02:00
Mark Nauwelaerts
e967767b27 qtdemux: add GstIndex support 2009-10-14 13:15:02 +02:00
Håvard Graff
58b9de4cca rtpptdemux: only forward the lost-event to the last seen pt-number
forward all events on all pads except for the PacketLost event, which we want to
forward to the last seen pt pad.

Fixes #598377
2009-10-14 12:28:55 +02:00
Wim Taymans
daa6d8f206 avidemux: demote some warnings to debug 2009-10-13 18:19:32 +02:00
Wim Taymans
9aa151a661 avi: add new avi flag we might want to use 2009-10-13 17:48:51 +02:00
Wim Taymans
df0335e65b avimux: calculate suggested buffer size
Calculate the suggested buffer size based on the largest chunk in the file.

See #597847
2009-10-13 17:48:51 +02:00
Wim Taymans
b134ca31fa avimux: add jpeg2000 to allowed caps 2009-10-13 17:48:51 +02:00
Wim Taymans
aea78a75ac avidemux: add debug for the superindex offsets 2009-10-13 17:48:50 +02:00
Jan Schmidt
99f43dbb58 qtdemux: Fix uninitialized variable warning
Fix another bogus may-be-used-uninitialized warning in qtdemux
2009-10-13 16:03:13 +01:00
Wim Taymans
50110d022d avi: lower max file size
Make a constant of the max file size and lower the value to what ffmpeg does,
hopefully improving compatibility with windows media player.

See #597847
2009-10-13 13:08:33 +02:00
Jan Schmidt
42b09362f6 qtdemux: Fix uninitialized variable warnings
The gcc on the OS/X buildbot complains about these variables not being
initialized, even though they can't possibly actually be used
uninitialized.
2009-10-13 00:12:42 +01:00
Mark Nauwelaerts
6f34e2b0db qtdemux: also consider Quicktime text subtitles 2009-10-09 17:49:20 +02:00
Mark Nauwelaerts
955a719c1a qtdemux: provide language tag for stream 2009-10-09 17:49:17 +02:00
Mark Nauwelaerts
1210a92ff6 qtdemux: refactor common parts in track parsing 2009-10-09 17:49:14 +02:00
Mark Nauwelaerts
5ed2c3e562 qtdemux: refactor buffer processing and sending
... so it can be used in both pull and push based mode.
2009-10-09 17:49:12 +02:00
Mark Nauwelaerts
674b0c4289 qtdemux: extract palette data for dvd subpicture streams
... and send it downstream using custom dvd event
2009-10-09 17:49:10 +02:00
Mark Nauwelaerts
b2d70862e8 qtdemux: support 3GPP timed text subtitles
In particular, also make subtitle support less subp(icture)-centric.
2009-10-09 17:49:06 +02:00
Mark Nauwelaerts
faaa32dccb qtdemux: NULL is not a valid taglist 2009-10-09 17:49:04 +02:00
Mark Nauwelaerts
533106203c qtdemux: recognize some more encypted track cases 2009-10-09 17:49:02 +02:00
Josep Torra
114dbba7ad id3: fixes warnings building on macosx
Another round on the formating of that debug line.
2009-10-09 15:59:25 +02:00
Stefan Kost
53cb3e2716 id3: cast pointer math results to glong 2009-10-09 14:44:02 +03:00
Stefan Kost
f854836f5c buikd: explicitely cast, to tell some compilers that this is not long int 2009-10-09 14:21:09 +03:00
Stefan Kost
f41d7e7bd5 build: don't cast, but use the right format specified instead
This correct some of the previous macos fixes.
2009-10-09 13:54:24 +03:00
Josep Torra
863233abf5 rtpvrawpay: fix warning on macosx 2009-10-09 12:01:10 +02:00
Josep Torra
a1fbe64317 rtph263pay: fix warning on macosx 2009-10-09 11:57:59 +02:00
Josep Torra
c3d3eb6c3b qtdemux: fix warnings building on macosx 2009-10-09 11:54:03 +02:00
Josep Torra
093546ba74 id3demux: fix printf warnings on macosx 2009-10-09 11:43:45 +02:00
Josep Torra
28ccc40bab avidemux: fix warning in macosx making the format portable 2009-10-09 11:43:44 +02:00
Josep Torra
00aa3421e0 audiofx: use G_GUINT64_FORMAT to fix warnings on OSX 2009-10-09 11:43:44 +02:00
René Stadler
c40cb18762 matroskademux: fix strstr() usage on possibly unterminated string 2009-10-08 23:31:07 +03:00
Jan Schmidt
cdb0b68e21 avi/wav: Fix some compiler warnings about incompatible pointers. 2009-10-08 10:20:09 +01:00
Jan Schmidt
db6af4bd57 multifile: Fix plugin description 2009-10-07 23:42:48 +01:00
Stefan Kost
e0cdd879b4 build: fprintf, sprintf, sscanf need stdio.h 2009-10-07 14:03:20 +03:00
Stefan Kost
27ea0b076a equalizer: use shelfing filters for first and last band
Refactor the filter setup. Add two new filters with shelf characteristics for
first and last band. Change gain calculation as recommended in the quoted
document (no qrt needed). Rename variables to match the formulas in the
document.
2009-10-07 00:35:27 +03:00
Stefan Kost
7b6e594b69 equalizer: fix filter history usage. Fixes #597397
The process functions where overwriting the history for each channel. Also pull
some static things out of the inner loop.
2009-10-05 23:04:39 +03:00
Wim Taymans
0040d01265 rtpbin: use locking around the sessions 2009-10-05 16:07:24 +02:00
Tim-Philipp Müller
45ff905771 qtdemux: make sure compatible brands buffer exists before dereferencing it 2009-10-05 11:46:08 +01:00
Robert Swain
c7b5df91a9 qtdemux: fix printf warnings on OSX
Cast variables passed to printf to avoid warnings about incorrect
formats (most likely caused by sizeof returning a size_t).

Fixes #597348.
2009-10-05 00:35:15 +01:00
Tim-Philipp Müller
4590daf202 qtdemux: remove internal genre table
No need to maintain our own genre table in qtdemux. The genres are
identical to the ID3 genres, so we can just use libgsttag's
gst_tag_id3_genre_get() to look them up.
2009-10-05 00:26:44 +01:00
Robert Swain
c45c304a7e Fix printf formats to avoid warnings in avidemux. Fixes #597214
https://bugzilla.gnome.org/show_bug.cgi?id=597214
2009-10-03 17:25:19 +02:00
Sebastian Dröge
650292706d matroskademux: Change one GST_WARNING to a GST_DEBUG 2009-10-03 12:21:34 +02:00
Sebastian Dröge
48b784e715 flvdemux: If there's no audio stream after 6 seconds of video signal no-more-pads
...and the other way around. Also ignore any audio/video streams that appear
after no-more-pads.

Fixes bug #597091.
2009-10-03 12:21:34 +02:00
Sebastian Dröge
f84bc538b5 flvdemux: Make sure to only signal no-more-pads a single time 2009-10-03 12:21:34 +02:00
Stefan Kost
d1d126b5b4 rtp: add missing include to fix the build 2009-10-02 18:25:16 +03:00
Stefan Kost
da05a85455 videofilter: add G_OBJECT_WARN_INVALID_PROPERTY_ID to property setter 2009-10-02 13:44:41 +03:00
Stefan Kost
948d5168ce level: don't give wrong number of fields in the message docs 2009-10-02 13:44:41 +03:00
Wim Taymans
8fb77403c5 jitterbuffer: cache latency in nanoseconds
Cache the latency in nanoseconds units to avoid having to convert the
milliseconds value to nanoseconds all the time.
2009-10-01 12:52:40 +02:00
Wim Taymans
c262735164 jitterbuffer: handle -1 input timestamps
Don't try to check a -1 timestamp against the max delay.
2009-10-01 12:12:09 +02:00
Stefan Kost
458cd4dcdc avi: don't misues perf-category and remove unused ext category
The performance category is meant to be used to audit codepaths that lead to bad
performance (e.g. copies, conversion that can be avoided).
Remove the event category which is not used.
2009-10-01 10:57:42 +03:00
Olivier Crête
00db9a585b rtpg729pay/depay: Demote per-buffer debug messages to log level 2009-09-30 20:36:05 -04:00
Olivier Crête
165516f0ef rtpg729pay: Don't leak incoming buffers after subbuffering them 2009-09-30 20:36:05 -04:00
Olivier Crête
680c97a7ca rtpg729pay/depay: Add debug categories 2009-09-30 20:36:05 -04:00
Olivier Crête
1ba7693f7a rtpg729pay: Remove long unneeded define replacement 2009-09-30 20:36:05 -04:00
Wim Taymans
3f263edbbf avi: small cleanups 2009-09-28 22:18:25 +02:00
Wim Taymans
217315c20b avi: fix timestamping in some audio streams
For vbr audio streams we need to use the number of blocks to calculate the
timestamps.
When the allocation of additional index memory fails, don't throw away what
we had before.
Various cleanups.
2009-09-28 22:17:02 +02:00
Wim Taymans
7b9b8343ba avi: add support for ODML indexes again 2009-09-28 22:17:00 +02:00
Wim Taymans
ceb7d66e25 avi: implement index scanning
Implement scanning of the file when we can parse the index.
Some refactoring of common code.
Cleanups and comments.
Remove some reimplemented code.
Remove index massage code and put a FIXME where we should do something
equivalent later.
2009-09-28 22:16:57 +02:00
Wim Taymans
8aa3830852 avi: fix reverse playback 2009-09-28 22:16:55 +02:00
Wim Taymans
3338f91cfe avi: fix prev keyframe search and cleanups 2009-09-28 22:16:53 +02:00
Wim Taymans
1b325945e5 avi: remove code that got converted 2009-09-28 22:16:50 +02:00
Wim Taymans
c199b1d039 avi: more cleanups
Remove some duplicate counters.
Be smarter when updateing the current the timestamp and offset in the stream
because we can reuse previously calculated values when simply go forward one
step.
Correctly set metadata on outgoing buffers.
2009-09-28 22:16:48 +02:00
Wim Taymans
0d70fe30a8 avidemux: small cleanups 2009-09-28 22:16:46 +02:00
Wim Taymans
b4a490655a avi: fix read offset and cleanups 2009-09-28 22:16:43 +02:00
Wim Taymans
9c37611dfa avi: rewrite index playback
disable code, start on reimplementing loop based operation.
Rewrite the index handling so that all streams use their own index for decoding
media.
2009-09-28 22:16:41 +02:00
Wim Taymans
89bcbbbe7c avidemux: add new index parsing code
Add a new function and datastructure to parse and hold the index entries on a
per stream base. Also avoid doing too much work trying to figure out the
timestamps and durations as we can trivially do that later.

Less information in the entries makes them 2 times smaller and not doing too
much work makes this code about 12 times faster than the regular case.

Hook in the new function alongside the existing function for comparison until
the rest of the code is updated to handle the new index datastructure.
2009-09-28 22:16:38 +02:00
Mark Nauwelaerts
0fac7b5347 qtdemux: some optional QT specified stsd MPEG-4 atoms also apply to H264
Fixes #596319.
2009-09-25 19:23:15 +02:00
Mark Nauwelaerts
e21d16a4f8 qtdemux: only send tag events downstream after newsegment 2009-09-25 16:47:42 +02:00
Mark Nauwelaerts
50d5c8dce5 rtspsrc: if transport protocol unsupported, try another one
Also change error message to more accurately reflect cases in which
it can occur.
2009-09-25 16:47:39 +02:00
Wim Taymans
03f46a42e5 qtdemux: add durations modulo 1<<32
For calculating the durations of each sample, we are supposed to add each
duration modulo 1<<32 so make the elapsed time counter a uint32.

Fixes #595942
2009-09-25 11:54:06 +02:00
Wim Taymans
4e114a2b24 qtdemux: small cleanup 2009-09-24 20:38:54 +02:00
Tim-Philipp Müller
01e00ba1cd qtdemux: don't use core API that doesn't exist yet
There's no gst_byte_reader_has_remaining() yet. Fixes build.
2009-09-24 19:33:39 +01:00
Tim-Philipp Müller
fab4113c24 qtdemux: map some atomparser functions to their new bytereader equivalents
Now that GstByteReader has unchecked and inlined variants as well, map
atomparser functions to their respective bytereader equivalents.
2009-09-24 16:34:08 +01:00
Tim-Philipp Müller
0f197776e1 qtdemux: add qt_atom_parser_has_chunks() and fix indentation 2009-09-24 16:32:02 +01:00
Tim-Philipp Müller
f65e6ea3a1 qtdemux: bail out instead of trying to alloc silly index sizes
If it looks like we would be allocating a silly size for our sample
index, just bail out instead of trying to allocate it. Helps with
broken or fuzzed files where we might end up trying to malloc a
couple of hundred MBs otherwise.
2009-09-24 16:29:26 +01:00
Tim-Philipp Müller
abaf91e428 qtdemux: error out correctly if we don't even have enough bytes for an atom header 2009-09-24 16:29:25 +01:00
Tim-Philipp Müller
25db7df49b qtdemux: init fourcc to 0 as well to avoid invalid reads when printf'ing error message 2009-09-24 16:29:25 +01:00
Tim-Philipp Müller
9da3ed6491 qtdemux: add qt_atom_parse_has_remaining() to avoid overflows with _get_remaining() 2009-09-24 16:28:40 +01:00
Tim-Philipp Müller
a16feec38e qtdemux: use GstByteReader when parsing tkhd atom 2009-09-23 16:54:43 +01:00
Tim-Philipp Müller
6b7f4f5e23 qtdemux: use unsigned ints for node length and do more sanity checking of the atom length 2009-09-23 16:54:43 +01:00
Tim-Philipp Müller
3abeb1e578 qtdemux: use GstByteReader for atom dumping and fix a few bugs 2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
c8c9b0f35d qtdemux: move stco, stts, stss and stps atom parsing over to GstByteReader
Make sure we don't read beyond the atom boundary. Note that the code
behaves slightly differently in the corner case where there is not
enough atom data for the specified number of samples (n_samples_time)
in the atom, but still enough data to fill the pre-allocated index of
n_samples entries: before we would just stop parsing the stts data
and continue, whereas now we will likely error out. This should not
be a problem in practice though. We could maintain the old behaviour
by doing reads with a size check inside the loop if needed.
2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
4be46b1586 qtdemux: use bytereader to parse stsz and stsc atoms
Use GstByteReader to parse stsz and stsc chunks, and check size of
available data before parsing it, instead of blindly assuming there
will be enough data. Fixes crashes with some fuzzed/broken files.
2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
5875e2016a qtdemux: add qt_atom_parser_get_offset() and optimise _peek_sub() 2009-09-23 16:54:42 +01:00
Tim-Philipp Müller
410ebb7eb3 qtdemux: add QtAtomParser, an inlined GstByteReader variant 2009-09-23 16:54:41 +01:00
Mark Nauwelaerts
02581dd2a5 matroskademux: use proper order for no-more-pads and newsegment and tag sending 2009-09-23 17:24:22 +02:00
Mark Nauwelaerts
702df566c3 matroskademux: sprinkle a few branch prediction macros 2009-09-23 17:24:22 +02:00
Alessandro Decina
195883b30a Fix compile warnings with gcc 4.0.1. 2009-09-22 15:04:36 +02:00
Jan Schmidt
600516be90 matroskamux: Don't get stuck in an infinite loop with Dirac
At the end, Dirac streams have an EOS packet with 0 length.
Don't ever sit in an infinite loop when processing one. Allows
muxing Dirac into mkv to complete successfully.
2009-09-22 11:50:11 +01:00
Tim-Philipp Müller
0506545b04 videomixer: fix up Makefile some more
Remove CFLAGS from LIBADD and make order of the various CFLAGS and
LIBS at least consistent with each other.
2009-09-22 11:02:02 +01:00
Brian Cameron
341be447a6 videomixer: Add $(GST_PLUGINS_BASE_LIBS) to LDFLAGS for linking libgstvideo
Fixes bug #595897.
2009-09-22 08:09:39 +02:00
Wim Taymans
10eb1a0ff4 avi: fix timestamps in push mode 2009-09-21 18:10:12 +02:00
Wim Taymans
2f26ee4285 avi: add some performance measurements
Measure the performance of various index and header parsing steps to the
PERFORMANCE debug category.
2009-09-21 12:32:51 +02:00
Stefan Kost
0868ddf30f avidemux: some logging cleanup to help understanding the index parsing overhead 2009-09-18 14:27:45 +03:00
Olivier Crête
750387f520 rtpg729pay: Fix adapter leak
The adapter would be leaked if it was empty and the data could be pushed out directly.
2009-09-15 17:24:24 -04:00
David Schleef
78eeb6636e multifilesink: Add next-file property
Add a property to allow control over what event causes a file
to finish being written and a new file start.  The default is
the same as before -- each buffer causes a new file to be
written.  Added is a case where buffers are written to the
same file until a discontinuity in the stream.
2009-09-13 20:00:53 -07:00
Michael Smith
3257374310 wavparse: treat a zero-sized data chunk as extending to the end of the file.
This fixes playback of some files that don't have a valid data chunk length,
apparently some program creates these.
2009-09-11 13:34:01 -07:00
Wim Taymans
445236a769 spectrum: add post-messages property
Add a post-messages property and deprecate the less descriptive message
property.
2009-09-11 13:28:35 +02:00