Commit graph

2973 commits

Author SHA1 Message Date
Mark Nauwelaerts 96e72522fc avidemux: push mode; cater for chunk padding 2009-08-10 14:41:52 +02:00
Mark Nauwelaerts f67db2a089 avidemux: only use stream's pad after having checked it exists 2009-08-10 14:41:34 +02:00
Mark Nauwelaerts 4249f52c6c avidemux: sprinkle some more GST_DEBUG_FUNCPTR 2009-08-10 14:41:29 +02:00
Mark Nauwelaerts 6d26594eef avidemux: post error message if no pads to push EOS event on 2009-08-10 14:41:27 +02:00
Mark Nauwelaerts b0a0c06155 avidemux: fix typo in warning message 2009-08-10 14:41:23 +02:00
Mark Nauwelaerts 7750173244 avidemux: fix some buffer ref handling 2009-08-10 14:41:19 +02:00
Mark Nauwelaerts 5b0f7f04e7 avidemux: do not exceed maximum number of supported streams 2009-08-10 14:41:16 +02:00
Mark Nauwelaerts effa7b4660 avidemux: prevent double unref; gst_avi_demux_parse_avih already unrefs 2009-08-10 14:41:14 +02:00
Mark Nauwelaerts 42bc085d95 avidemux: verify size of INFO LIST to satisfy subsequent expectations 2009-08-10 14:41:12 +02:00
Mark Nauwelaerts f4f8e8532c avidemux: check video stream framerate against avi header frame duration
The former might be bogus in silly cases, and the latter seems to
carry more weight.
2009-08-10 14:41:09 +02:00
Mark Nauwelaerts 3863871100 avidemux: streamline stream duration calculation 2009-08-10 14:41:07 +02:00
Edward Hervey d29ba8d48f matroska: remove dead assignments 2009-08-10 09:58:33 +02:00
Edward Hervey 0d6f0801f5 rtp: Remove dead assignments and resulting unneeded variables. 2009-08-10 09:58:33 +02:00
Thiago Santos 08862850a7 matroska: Adds support to muxing/demuxing WMA
Adds support for muxing wma audio family and fixes
demuxing of wma family in matroskademux. matroskademux
was broken because it missed codec_data.
2009-08-09 20:34:05 -03:00
Thiago Santos df442b4727 matroskamux: adds support for wmv family
Adds support to WMV1, WMV2, WMV3 and other family formats that
are signaled by the 'format' field in the caps (i.e. WVC1).
Partially fixes #576378
2009-08-09 20:34:04 -03:00
LoneStar 494555cecd id3demux: Try GST_*_TAG_ENCODING and locale encoding if tags are not UTF8
Fixes bug #499242.
2009-08-09 12:52:17 +02:00
Vincent Penquerc'h 19b7001bf9 matroska: add kate subtitle support to matroska muxer and demuxer
See #525743.
2009-08-08 12:54:48 +01:00
Tim-Philipp Müller b0bcb27517 id3demux: add ID3 v2.3 spec as well 2009-08-07 16:51:45 +01:00
Tim-Philipp Müller 0417283077 id3demux: sizes in ID3 v2.3 are unlikely to be sync-safe integers
In ID3 v2.3 compressed frames will have a 4-byte data length indicator
after the frame header to indicate the size of the decompressed data.
This integer is unlikely to be a sync-safe integer for v2.3 tags,
only in v2.4 it's sync-safe.
2009-08-07 16:42:39 +01:00
Tim-Philipp Müller 3ec0a31d64 id3demux: fix typo in debug message 2009-08-07 16:36:55 +01:00
Tim-Philipp Müller 2e05af3876 id3demux: fix parsing of unsync'ed ID3 v2.4 tags and frames
Reversing the unsynchronisation seems to work slightly differently
for ID3 v2.3 tags and v2.4 tags: v2.3 tags don't have syncsafe frame
sizes in the frame header, so the unsynchronisation is applied to
the whole frame data including all the frame headers. v2.4 frames
have sync-safe sizes, however, so the unsynchronisation only needs
to be applied to the actual frame data, and it seems that's what's
being done as well. So we need to undo the unsynchronisation on a
per-frame basis for v2.4 tags for things to work properly.

Fixes extraction of coverart/images from APIC frames in ID3 v2.4
tags (#588148).

Add unit test for this as well.
2009-08-07 16:02:23 +01:00
Wim Taymans ddfa9961c6 rtph264pay: use array instead of queue 2009-08-06 11:14:44 +02:00
Mark Nauwelaerts 2bfb42c5f8 rtph264pay: push NALs only after SPS/PPS
parse complete (bytestream) buffer for SPS/PPS before pushing NALs.

Fixes #564501.
2009-08-06 11:14:44 +02:00
Edward Hervey d65d542e9d rtpqdm2depay: Fix debug statement. 2009-08-04 11:17:17 +02:00
Edward Hervey 20c7977b9b rtpqdm2depay,rtpsv3vdepay: Add debugging category. 2009-08-03 21:26:31 +02:00
Edward Hervey 25c5514fab rtpqdm2depay: Handle gaps in incoming packets.
Whenever we see a gap, we flush the temporary packets (but not the adapter). If we
had some data temporarily stored it will be outputted (the sound will sound a bit
garbled... but that's how it sounds on MacOSX :)
2009-08-03 21:26:30 +02:00
Edward Hervey 6aff520a24 rtpqdmdepay: Fix CRC calculation and remove commented code. 2009-08-03 21:26:30 +02:00
Edward Hervey d39c057e42 rtp: New QDM2 rtp depayloader.
Reverse-engineered by comparing:
* A rtp hinted file provided by DarwinStreamingServer
* The output procued by DSS for that same file

Also used various streaming sources available on the internet to fine-tune
the code.

The header/codec_data extraction methods are from FFMpeg (LGPL).
2009-08-03 21:26:30 +02:00
Edward Hervey e2b3665ae6 rtpsv3vdepay: Properly fill codec_data and cleanup code a bite more. 2009-08-03 21:26:30 +02:00
Edward Hervey 65a2871e90 rtpsv3vdepay: Only output buffers once we're configured. 2009-08-03 21:26:30 +02:00
Edward Hervey 1743763c0b rtpsv3vdepay: Add more encoding-name variants 2009-08-03 21:26:30 +02:00
Sebastian Dröge 8b9d547c14 flvmux: Fix writing of the index for < 128 buffers
Partially fixes bug #590447.
2009-08-03 20:08:00 +02:00
Sebastian Dröge cb4eb5714c flvmux: Fix resetting of the element
Reset the have_video/have_audio flags and make sure to
properly release the request pads.

Partially fixes bug #590447.
2009-08-03 20:07:00 +02:00
Wim Taymans 784b95ddbf rtspsrc: don't add non-utf8 chars to structures 2009-08-03 18:13:46 +02:00
Luc Deschenaux 654ca56d85 jpegdepay: use attributes for extra properties
Use some of the SDP attributes when they are present to specify the output
dimension and framerate. This allows us to receive jpeg frames larger than
2040 width/height.

Fixes #564437
2009-08-03 18:02:31 +02:00
Wim Taymans efb9c17975 RTP docs: update with attributes in caps 2009-08-03 18:01:27 +02:00
Luc Deschenaux f96e900a64 rtspsrc: put all SDP attributes on caps
Put the SDP attributes on the caps too so that they can be used by
depayloaders.

See #564437
2009-08-03 17:21:44 +02:00
Tim-Philipp Müller 6c323f5b0d multiudpsink: don't do things with side-effects inside g_return_val_if_fail()
Someone might compile this code with -DG_DISABLE_ASSERT some day.
2009-08-02 11:50:43 +01:00
Tim-Philipp Müller 93690bfdd6 flvmux: fix invalid write caused by using sizeof("string") as length
sizeof("foo") includes the string's NUL-terminator in the size returned,
but we're writing strings here with an explicit size at the beginning
and no NUL-terminator. In most cases using sizeof("foo") as length in
memcpy is not harmful, but it is where the string goes right at the
end of our buffer to write, since we don't allocate space for that
NUL terminator.
2009-07-31 23:54:47 +01:00
Sebastian Dröge 22d712786c avidemux: Fix last commit and improve readability 2009-07-29 14:31:48 +02:00
Руслан Ижбулатов 3702fcdb80 Fixed the fix for TIME->DEFAULT conversion.
Fixes bug #578052 again.
2009-07-29 13:58:33 +02:00
Edward Hervey 050e91995e rtpsv3depay: Fix width/height calculation, bring up to marginal rank.
Based on documentation found on http://wiki.multimedia.cx/
2009-07-29 13:39:08 +02:00
Thiago Santos 52482a3741 avimux: adds support to wma 2009-07-28 00:30:43 -03:00
Thiago Santos f43b442cf9 avimux: adds support to wmv 2009-07-28 00:07:15 -03:00
Thiago Santos 40abf68562 qtdemux: Downgrade warning message to debug 2009-07-27 21:39:57 -03:00
Sebastian Dröge f0054bcc82 effectv: Don't allow caps changes for some effectv filters
These filters use information from previous frames to
generate the current frame and a caps change will make
the effect start from the beginning again.
2009-07-24 19:54:05 +02:00
Sebastian Dröge 6eada080a0 warptv: Make the sine table global instead of having it in every instance 2009-07-24 19:54:05 +02:00
Sebastian Dröge aa02444768 flvdemux: Implement SEEKING query
Also add some more query types to the answer of the query type function.

Fixes bug #589424.
2009-07-23 11:51:07 +02:00
Stefan Kost 8990398733 interleave: fix indenting and upgrade two debugs to warnings.
Fix newlines in variable decls. Change two debugs to become warnings as they
indicate that things will not work.
2009-07-21 10:07:00 +03:00
Sebastian Dröge b7bf2f6820 matroskademux: Answer SEEKING queries in the original format 2009-07-21 07:52:00 +02:00
Josep Torra efcfb89b5c udputils: initialize struct content with 0.
Fixes some random crashes.
2009-07-21 01:12:44 +02:00
Sebastian Dröge bb03d8ff18 matroskademux: Implement SEEKING query 2009-07-20 16:52:19 +02:00
Sebastian Dröge c5b420068a effectv: Chain up finalize to the parent class in warptv
Fixes a memory leak.
2009-07-16 17:10:21 +02:00
Sebastian Dröge 2abd58de9d effectv: Add rippletv element
This produces a water ripple effect on the video input,
based on motion or a rain drop algorithm.

Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.

Fixes bug #588695.
2009-07-16 12:05:31 +02:00
Sebastian Dröge 433255304e effectv: Add streaktv effect filter element
This combines the StreakTV and BaltanTV filters from the
effectv project.

Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.

Fixes bug #588368.
2009-07-16 12:04:38 +02:00
Sebastian Dröge f981bec99d effectv: Fix processing on big endian architectures 2009-07-16 12:04:36 +02:00
Sebastian Dröge c17134c6de effectv: Add radioactv effect filter
This filter adds a radiation-like motion blur effect
to the video stream.

Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.

Fixes bug #588359.
2009-07-16 12:04:08 +02:00
Sebastian Dröge 3ad603be84 effectv: Make the optv threshold property an uint 2009-07-16 12:04:06 +02:00
Sebastian Dröge 2c2611b6bf effect: Add optv effect filter from the effectv project
This filter binarizes input frames and combines them with various
optical pattern.

Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.

Fixes bug #588349.
2009-07-16 12:03:29 +02:00
Marc Leeman 7484b631b7 mpvpay: Rework the timestamping
Rework the timestamping in the mpv payloader so that the timestamps are more
accurate.

Fixes #587680
2009-07-13 17:55:25 +02:00
Sebastian Dröge 91ad86c0f9 videomixer: Random cleanup 2009-07-10 19:54:25 +02:00
Sebastian Dröge f19ef7eada videomixer: Send queries to the master pad by default instead of all pads 2009-07-10 19:54:13 +02:00
Sebastian Dröge 0bf61ecfaf videomixer: Add RGB, BGR, xRGB, RGBx, xBGR, BGRx support 2009-07-10 19:35:49 +02:00
Sebastian Dröge bbcb4f8f15 videomixer: Clean up debugging a bit 2009-07-10 17:43:07 +02:00
Sebastian Dröge 0775db4455 videomixer: Remove some redundant checks and error out immediately if not negotiated
Also stop leaking the output buffer in some error cases.
2009-07-10 17:33:40 +02:00
Sebastian Dröge 4ccd9c92ae videomixer: Remove the calculate_frame_size() function and use libgstvideo instead 2009-07-10 17:23:03 +02:00
Edward Hervey 34c97c0c6f videomixer: Remove unused link/unlink pad methods 2009-07-10 14:37:16 +02:00
Edward Hervey b02949faeb videomixer: I420 mode: Add fast path for 0.0 and 1.0 alpha
If the source alpha is 0.0, we take nothing.
If the source alpha is 1.0, we overwrite everything.
2009-07-10 14:37:13 +02:00
Edward Hervey 3c88249d48 videomixer: I420 blending : Fix main algorithm.
When blending a source layer with an alpha of 'a' on top of another
destination layer we take the sum of:
* 'a' percent of the source layer
* (100 - 'a') percent of the destination layer (the remainder)
2009-07-10 14:37:10 +02:00
Edward Hervey ace4cb2295 videomixer: Make debugging category global to all the code. 2009-07-10 14:37:07 +02:00
Edward Hervey 3ebf5e9a2a videomixer: improve readability of debugging statements. 2009-07-10 14:37:04 +02:00
Mark Nauwelaerts a905ef233e rtspsrc: do not leak timeout message 2009-07-09 11:34:40 +02:00
Sebastian Dröge 63115fe72c avi: Don't forward NEWSEGMENT events from upstream
New ones are generated later and simply forwarding them can
result in NEWSEGMENT events of different format going downstream.

Fixes bug #587983.
2009-07-09 07:14:23 +02:00
Sebastian Dröge 356972740a videomixer: Make checker pattern lookup table constant 2009-07-08 18:19:45 +02:00
Sebastian Dröge 69f9b7c8d6 videomixer: Add support for ARGB
And clean up the caps parsing.
2009-07-08 18:17:48 +02:00
Benjamin Gaignard abd383a2a6 udp: Initialize pointer to NULL
Otherwise we're calling free() with some random
memory address in error cases.

Fixes bug #587982.
2009-07-08 15:19:03 +02:00
Mark Nauwelaerts 977796fd07 qtdemux: sprinkle some more const 2009-07-08 11:20:30 +02:00
Mark Nauwelaerts a4d586daac qtdemux: perform some more (careful) data buffering
Once buffering has started (with an mdat atom), continue buffering
until moov atom is reached, which handles cases with multiple
mdat atoms.  Also keep adapter/offset better in sync with upstream
and fix some debug statements.  Fixes #587426.
2009-07-08 11:20:27 +02:00
Philip Jgenstedt 0ebff2d14c avidemux: Replace deprecated GST_DISABLE_DEBUG with correct macro. Fixes #587826 2009-07-06 10:40:31 +02:00
Tim-Philipp Müller 2bcf52dde7 qtdemux: error out instead of dividing by 0
Error out if timescale is 0.
2009-07-01 13:07:48 +01:00
Tim-Philipp Müller f6a1211495 Revert "qtdemux: Make sure we don't blacklist streams by wrongly comparing their"
This reverts commit 5503a59a57.

Reverting this since it causes regressions with a lot of sample files
I have, all of which worked fine with the last -good release (#586891).
2009-07-01 09:32:42 +01:00
Tim-Philipp Müller ae27524be0 qtdemux: comment out unused structure 2009-07-01 09:24:38 +01:00
Tim-Philipp Müller 8fa148d2f1 qtdemux: more size checks, and use g_try_new0() instead of g_new0()
Whenever we alloc something based on a user-supplied size, we should
really use g_try_new(), otherwise we can easily be made to abort by
passing a ridiculously large number to us for allocing. Fixes
problems with some fuzzed files.
2009-07-01 09:24:38 +01:00
Tim-Philipp Müller 405aae4568 qtdemux: guard against bogus atom sizes and short reads
Check the possibly 64-bit atom size more carefully before casting it
to an int and passing it to gst_pad_pull_range(), otherwise we might
end up pulling 0 bytes, getting an empty buffer as requested and
dereferencing not available data whilst thinking we actually asked
for and got 0x1000000000000 bytes. Similar fix for push mode operation
where neededbytes ends up being 0 bytes, which makes us assert. Fixes
crash with broken or fuzzed file (NB #122378).
2009-07-01 09:24:38 +01:00
Tim-Philipp Müller c730912f67 qtdemux: use 0x prefix when logging numbers in hex 2009-07-01 09:24:38 +01:00
LRN 122d40a742 Don't use sendmsg()-dependent code on Windows
Fixes #585842
2009-06-30 20:38:33 +02:00
Wim Taymans 89f0c37c9f law: fix caps and negotiation
Fix the caps to include the depth (instead of width twice) in the caps of
audio/x-raw-int.
Fix negotiation to not only copy the rate/channels of the first structure.
2009-06-30 15:59:20 +02:00
Tim-Philipp Müller 1fb30a154a qtdemux: don't process track_num/track_count tags with a 0 value
Number/count values of 0 mean they're not set. Don't put those in the
taglist.
2009-06-26 13:29:27 +01:00
Julien Moutte 5503a59a57 qtdemux: Make sure we don't blacklist streams by wrongly comparing their
duration with entire clip duration.
2009-06-25 13:23:40 +02:00
Krzysztof Błaszkowski 9fbdfefc56 rtpdec: fix some buffer leaks 2009-06-25 13:18:14 +02:00
Edward Hervey 32a3d6e717 flvparse: Add missing break in switch/case. 2009-06-25 08:11:09 +02:00
Edward Hervey 67ca4c57b1 flvdemux: Remove unused variable, hint branch likeliness, add comments. 2009-06-25 08:10:38 +02:00
Edward Hervey ff3730fb7b avidemux: Removed unused variable 2009-06-25 08:09:57 +02:00
Edward Hervey 4780d17894 qtdemux: Remove dead assignments and unused variables.
Also add branch likeliness macros.
2009-06-25 07:41:44 +02:00
Edward Hervey b9d7f2527e qtdemux: Fix uninitialized variables. Fixes build on macosx 2009-06-25 07:41:43 +02:00
Tim-Philipp Müller 632bb7818a avidemux: short-circuit gst_avi_demux_src_convert() when parsing the index
Don't call gst_avi_demux_src_convert() for each single index entry. Not
only do we already have the pointer to the stream context, we also know
the formats we want to convert from and to already, so we may just as
well use optimised conversion routines that bypass some of the checks
and lookups made in gst_avi_demux_src_convert().
2009-06-24 13:04:01 +01:00
Edward Hervey 86c2299ed1 qtdemux: Another round of G_*LIKELY micro-optimisations. 2009-06-24 12:48:32 +02:00
Edward Hervey 30dd458567 qtdemux: Take last sample duration for dummy segment calculation.
This fixes the cases where files without EDL wouldn't output their
last buffer.
2009-06-24 12:48:32 +02:00
Edward Hervey 4e6808bc52 avidemux: Sprinkle branch likeliness macros over the code. 2009-06-24 12:37:39 +02:00
Edward Hervey 279be94321 qtdemux: Add GST_MEMDUMP statements for unknown atoms.
This is to help developers track down and implement unhandled atoms faster.
2009-06-24 12:37:38 +02:00