Commit graph

3562 commits

Author SHA1 Message Date
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