Sebastian Dröge [Fri, 6 Feb 2009 10:09:11 +0000 (11:09 +0100)]
mxfdemux: Implement keyframe detection for MPEG4 video streams
Sebastian Dröge [Fri, 6 Feb 2009 09:46:47 +0000 (10:46 +0100)]
mxfdemux: Handle some more special cases when setting the position when seeking
Sebastian Dröge [Fri, 6 Feb 2009 09:46:09 +0000 (10:46 +0100)]
mxfdemux: Adjust last_stop to the last keyframe when seeking
Sebastian Dröge [Fri, 6 Feb 2009 09:06:59 +0000 (10:06 +0100)]
mxfdemux: Fix logic for finding the previous keyframe
Sebastian Dröge [Fri, 6 Feb 2009 08:53:13 +0000 (09:53 +0100)]
mxfdemux: Add keyframe detection for MPEG2 video streams
This is useful for seeking as we usually want to seek to the previous
keyframe. The keyframe detection is done by parsing the MPEG2
elementary stream and if a GOP or I-frame packet is found we
assume a keyframe in this edit unit.
Sebastian Dröge [Thu, 5 Feb 2009 20:29:29 +0000 (21:29 +0100)]
mxfdemux: Protect the metadata with a lock against concurrent access
Sebastian Dröge [Thu, 5 Feb 2009 16:42:37 +0000 (17:42 +0100)]
Random cleanup and smaller bugfixes
Use gst_element_klass_set_details_simple(), install properties
with static strings, create pads directly from the static pad
templates, directly put the segment into the instance struct,
use GST_MSECOND instead of numbers.
The PAR is a GstFraction and not a double, use gst_structure_get_fraction().
Simplify setcaps() functions.
Sebastian Dröge [Thu, 5 Feb 2009 16:00:30 +0000 (17:00 +0100)]
Use GST_VIDEO_CAPS_RGB for the template caps
Sebastian Dröge [Thu, 5 Feb 2009 15:57:55 +0000 (16:57 +0100)]
Fix compiler warnings
Benjamin Schmitz [Thu, 5 Feb 2009 15:54:01 +0000 (16:54 +0100)]
Add assrender plugin for rendering ASS/SSA subtitles
This element has the advantage over subparse's ASS/SSA
support that more features are supported, like fading,
by using libass. Fixes bug #481075.
Edward Hervey [Thu, 5 Feb 2009 09:50:27 +0000 (10:50 +0100)]
metadata test: Fix wrong looping variable. Test is now valid (but fails).
The inner looping was using the outer looping variable.
Michael Smith [Thu, 5 Feb 2009 02:11:03 +0000 (18:11 -0800)]
Fix up things that the indent thingy complained about
Michael Smith [Thu, 5 Feb 2009 02:09:58 +0000 (18:09 -0800)]
Fix major leaks in qtwrapper audio decoders.
Free the decoder component and audiobufferlist when caps change, or when
disposing element.
Michael Smith [Thu, 5 Feb 2009 01:50:51 +0000 (17:50 -0800)]
Handle many more edge cases in dshowvideosink.
Instrument various codepaths with debug messages.
Handle (as best as I could see how - it's pretty nasty) moving a video
window to another monitor.
Add listening for directshow events.
Josep Torra [Wed, 4 Feb 2009 21:50:30 +0000 (22:50 +0100)]
mpegpsdemux: fixes clossing segment generation.
Ensure that the clossing segment is generated correctly and being
properly pushed.
Added some GST_DEBUG to check it.
Ensure that last_stop is updated in stream time.
Calculate duration as delta of PTS as it seems more correct than delta
of SCR in some clips that I tested.
Josep Torra [Wed, 4 Feb 2009 21:17:36 +0000 (22:17 +0100)]
mpegpsdemux: several fixes on the seeking function in pul mode.
Removed a line wrongly copy pasted in my previous commit.
Avoid an unsigned integer overflow.
Seek last_stop in stream time.
Clamp last_stop in stream time between first and last SCR.
Fixed a typo in the GST_DEBUG line and added some more info.
Josep Torra [Wed, 4 Feb 2009 15:20:40 +0000 (16:20 +0100)]
Moved var declarations to the begin of function
Josep Torra [Wed, 4 Feb 2009 15:18:27 +0000 (16:18 +0100)]
Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-bad
Josep Torra [Wed, 4 Feb 2009 15:11:23 +0000 (16:11 +0100)]
Improved seeking in pull mode. Some refactoring and small fixes
Sebastian Dröge [Wed, 4 Feb 2009 10:11:31 +0000 (11:11 +0100)]
Update TODO
Sebastian Dröge [Wed, 4 Feb 2009 10:09:26 +0000 (11:09 +0100)]
Post an UMID tag with the current package's UMID
Sebastian Dröge [Wed, 4 Feb 2009 09:59:53 +0000 (10:59 +0100)]
Reset the current partition after seeking and NEWSEGMENT events
Sebastian Dröge [Wed, 4 Feb 2009 09:53:52 +0000 (10:53 +0100)]
In push mode play all remaining parts of the file on EOS if there are any
Sebastian Dröge [Wed, 4 Feb 2009 09:37:20 +0000 (10:37 +0100)]
Add property to set the maximum allowed time difference between tracks
Sebastian Dröge [Wed, 4 Feb 2009 09:27:03 +0000 (10:27 +0100)]
Always set the current package, not only when it was changed
This is necessary as the current package link will be set to NULL
when updated metadata is parsed and should be set here again.
Sebastian Dröge [Wed, 4 Feb 2009 09:19:51 +0000 (10:19 +0100)]
Try to resolve all synchronization issues, not only the first
Sebastian Dröge [Tue, 3 Feb 2009 16:47:10 +0000 (17:47 +0100)]
Remove some checks that will always be TRUE
Tim-Philipp Müller [Tue, 3 Feb 2009 22:27:33 +0000 (22:27 +0000)]
configure.ac: bump core/base requirements to released versions
Josep Torra [Mon, 2 Feb 2009 22:29:24 +0000 (23:29 +0100)]
Also flush parser when a newsegment is received. Fixes loop in reverse mode.
Josep Torra [Mon, 2 Feb 2009 22:12:07 +0000 (23:12 +0100)]
Add pull mode to mpegpsdemux and report duration reading first and last PTS. Some random cleanups.
Sebastian Dröge [Mon, 2 Feb 2009 16:44:33 +0000 (17:44 +0100)]
Cleanup playback package selection and notify about the current package
Sebastian Dröge [Mon, 2 Feb 2009 15:23:30 +0000 (16:23 +0100)]
Update tags properly, especially on component switch
Sebastian Dröge [Mon, 2 Feb 2009 15:05:14 +0000 (16:05 +0100)]
Error out if no pads could be created
Sebastian Dröge [Mon, 2 Feb 2009 14:54:23 +0000 (15:54 +0100)]
Resolve metadata and update tracks if necessary before seeking
Sebastian Dröge [Mon, 2 Feb 2009 14:54:00 +0000 (15:54 +0100)]
Don't go after the last component of a track
Sebastian Dröge [Mon, 2 Feb 2009 14:53:32 +0000 (15:53 +0100)]
Return an error if updating an already existing pad fails
Sebastian Dröge [Mon, 2 Feb 2009 06:44:12 +0000 (07:44 +0100)]
Fix seeking if the source clip duration is unknown
Sebastian Dröge [Sun, 1 Feb 2009 15:59:25 +0000 (16:59 +0100)]
Add initial support for seeking in push mode
Sebastian Dröge [Sun, 1 Feb 2009 15:58:51 +0000 (16:58 +0100)]
Fix deadlocks when seeking in pull mode failed and check new offset before using it
Sebastian Dröge [Sun, 1 Feb 2009 15:58:01 +0000 (16:58 +0100)]
Update offset in push mode and handle events properly
Sebastian Dröge [Sun, 1 Feb 2009 14:07:09 +0000 (15:07 +0100)]
Implement initial seeking support (pull mode only)
Sebastian Dröge [Sat, 31 Jan 2009 10:29:20 +0000 (11:29 +0100)]
Don't use GLib 2.16 API unconditionally
Sebastian Dröge [Fri, 30 Jan 2009 18:52:59 +0000 (19:52 +0100)]
Check for EOS on all pads after adjusting the essence track durations
Sebastian Dröge [Fri, 30 Jan 2009 18:33:56 +0000 (19:33 +0100)]
Fix duration calculation for essence tracks
Sebastian Dröge [Fri, 30 Jan 2009 14:50:16 +0000 (15:50 +0100)]
Implement GstElement::query/get_query_types vfuncs
Sebastian Dröge [Fri, 30 Jan 2009 14:34:10 +0000 (15:34 +0100)]
Reset all internal state in finalize
Sebastian Dröge [Thu, 29 Jan 2009 19:27:28 +0000 (20:27 +0100)]
Improve EOS detection and fix push mode for the last pushed in buffer
Sebastian Dröge [Thu, 29 Jan 2009 18:58:50 +0000 (19:58 +0100)]
Keep track of essence track position when playing source packages
This ensures that the correct essence elements are played and
that we seek to the correct essence elements.
Sebastian Dröge [Thu, 29 Jan 2009 18:42:09 +0000 (19:42 +0100)]
Compensate for timestamp/duration rounding errors
Sebastian Dröge [Thu, 29 Jan 2009 14:56:08 +0000 (15:56 +0100)]
Improve EOS logic to check all pads when pulling a packet returned EOS
This makes sure that we finish all pads that are at EOS now instead of
just finishing one and returning to this point over and over again.
Sebastian Dröge [Thu, 29 Jan 2009 14:55:44 +0000 (15:55 +0100)]
Only push buffers for pads that are not more than 500ms before other pads
Sebastian Dröge [Thu, 29 Jan 2009 14:39:40 +0000 (15:39 +0100)]
Improve EOS logic to only go into EOS after all tracks are finished
Sebastian Dröge [Wed, 28 Jan 2009 16:34:57 +0000 (17:34 +0100)]
Update TODO list
Sebastian Dröge [Wed, 28 Jan 2009 15:39:30 +0000 (16:39 +0100)]
Try to keep the timestamp difference between tracks lower than 500ms
Sebastian Dröge [Tue, 27 Jan 2009 14:36:53 +0000 (15:36 +0100)]
Fix playback of atom files
Sebastian Dröge [Tue, 27 Jan 2009 14:27:45 +0000 (15:27 +0100)]
Keep track of current playback position
Sebastian Dröge [Tue, 27 Jan 2009 13:38:30 +0000 (14:38 +0100)]
Set essence track positions to 0 if we're at the start partition
Sebastian Dröge [Tue, 27 Jan 2009 13:25:26 +0000 (14:25 +0100)]
Generate an index table for essence streams
Generate an index table for essence streams during playback
and make sure that only the correct essence elements are
used for played tracks.
Make it possible to have one essence stream used in multiple
playback tracks.
Fix some minor bugs.
Sebastian Dröge [Tue, 27 Jan 2009 13:23:03 +0000 (14:23 +0100)]
Don't complain if the preface has no primary package set
Sebastian Dröge [Mon, 26 Jan 2009 15:23:38 +0000 (16:23 +0100)]
Allow index table segments without primer pack
When parsing an index table segment without a valid
primer pack in this partition only parse the static
local tags and ignore all dynamic ones.
This allows us to use index table segments in some
broken files.
Sebastian Dröge [Mon, 26 Jan 2009 15:20:34 +0000 (16:20 +0100)]
Add essence track abstraction
Add an abstraction to represent essence tracks and
use this everywhere. This will later be used to keep
track of positions and to generate/handle seek tables.
Some random cleanup and renaming.
Sebastian Dröge [Mon, 26 Jan 2009 13:47:31 +0000 (14:47 +0100)]
Fix parsing of index table segments
Allocate memory for the pos tables and slice offsets
of the index entries separately to a) fix alignment in
weird cases and b) to actually have something to free()
in the index table segment reset function.
Sebastian Dröge [Mon, 26 Jan 2009 13:33:02 +0000 (14:33 +0100)]
Improve detection of the end of the header metadata
Header metadata is finished after partition.header_byte_count
bytes after the first byte of the primer pack are handled.
After this there can only be index table segments, filler packets,
essence or the start of the next partition.
This fixes playback of some files that have non-standard metadata
packets in the header metadata.
Michael Smith [Sat, 31 Jan 2009 02:27:03 +0000 (18:27 -0800)]
Unref event if we don't forward it, unref pads when done with them.
Stefan Kost [Fri, 30 Jan 2009 20:28:11 +0000 (22:28 +0200)]
Add releaseinfo with online url.
Jan Schmidt [Fri, 30 Jan 2009 18:20:17 +0000 (18:20 +0000)]
Fix compilation on Forte.
Dereference the pointer to the passed socket to check the actual fd
when closing them.
Cast an assignment to kill a warning.
Jan Schmidt [Fri, 30 Jan 2009 18:18:10 +0000 (18:18 +0000)]
Fix the return value of the default parse_frame function.
Fix the return value of the default parse_frame function in both
copies of GstBaseParse
Jan Schmidt [Fri, 30 Jan 2009 17:31:33 +0000 (17:31 +0000)]
Bump common
Edward Hervey [Fri, 30 Jan 2009 07:54:42 +0000 (08:54 +0100)]
Use a symbolic link for the pre-commit client-side hook
Thiago Sousa Santos [Thu, 29 Jan 2009 19:59:35 +0000 (17:59 -0200)]
qtwrapper: Fixes build at case sensitive systems.
Josep Torra [Wed, 28 Jan 2009 12:41:36 +0000 (12:41 +0000)]
mpegdemux: do not skip pes packets that we think are encrypted
pes packets that claim to be encrypted may not be so, so treat as normal.
Just log the flags.
Mark Nauwelaerts [Wed, 28 Jan 2009 12:25:14 +0000 (13:25 +0100)]
Additional media type support in qtmux (and friends).
Support AMR and H263 for both qtmux and gppmux,
and add extensions in sample table description.
Zaheer Merali [Wed, 28 Jan 2009 12:27:42 +0000 (12:27 +0000)]
Revert "mpegdemux: do not skip pes packets that we think are encrypted"
This reverts commit
d3e4e5598f6c3db444d0014597d383ed35a02998.
Josep Torra [Wed, 28 Jan 2009 12:06:49 +0000 (12:06 +0000)]
mpegdemux: do not skip pes packets that we think are encrypted
pes packets that claim to be encrypted may not be so, so treat as normal.
Just log the flags.
Hans de Goede [Sat, 24 Jan 2009 17:13:39 +0000 (18:13 +0100)]
Build the modplug plugin against the modplug library and remove our copy
Always build the modplug plugin against the system modplug library
and remove our own copy. Using the system version has advantages
if security issues or other critical bugs are found in libmodplug
and our own copy wasn't really maintained anyway.
Also our copy only contained some patches to use GLib types and functions.
Fixes bug #568837.
Jan Schmidt [Fri, 23 Jan 2009 23:42:28 +0000 (23:42 +0000)]
Add more to the gitignores
Jan Schmidt [Fri, 23 Jan 2009 14:02:26 +0000 (14:02 +0000)]
Make RGB masks unsigned in rawvideoparse
Allow the full range of 32 bit masks for RGBA/RGB data by making sure
the mask properties are unsigned.
Stefan Kost [Fri, 23 Jan 2009 14:09:51 +0000 (16:09 +0200)]
Add README with midi related links.
Stefan Kost [Fri, 23 Jan 2009 14:00:10 +0000 (16:00 +0200)]
Log aac details found in codec_data.
Stefan Kost [Fri, 23 Jan 2009 12:43:00 +0000 (14:43 +0200)]
Configure byte order for EXIF. Fixes #568704
Exif blocks can be in differnt byte orders. Add an element property to select wich one should be written.
Sebastian Dröge [Fri, 23 Jan 2009 11:46:28 +0000 (12:46 +0100)]
Rename audioresample files and types to legacyresample
Finish the move/rename of audioresample to legacyresample
to prevent any confusion.
Sebastian Dröge [Fri, 23 Jan 2009 11:39:21 +0000 (12:39 +0100)]
Remove speexresample from -bad, it's in -base
Wim Taymans [Fri, 23 Jan 2009 11:13:00 +0000 (12:13 +0100)]
Send BYE packets immediatly for small sessions
When the number of participants is less than 50, the RFC allows for sending the
BYE packet immediatly instead of using the regular BYE timeout.
Fixes #567828.
Hans de Goede [Fri, 23 Jan 2009 10:50:29 +0000 (11:50 +0100)]
Add seeking support to mmssrc. Fixes bug #469930.
Add proper seeking support to mmssrc and clean
up some code. This requires libmms >= 0.4.
Brian Cameron [Fri, 23 Jan 2009 09:44:20 +0000 (10:44 +0100)]
Link modplug plugin with -lm. Fixes bug #568483.
Brian Cameron [Fri, 23 Jan 2009 09:11:52 +0000 (10:11 +0100)]
Fix build on Solaris. Fixes bug #568480.
Fix linking on Solaris by checking for the nsl and socket
libraries which are needed for socket() and gethostbyname().
Don't initialize some fields of struct mh to NULL/0, they're
already set to NULL/0 by a memset(). Also this fields don't
exist on Solaris.
Sebastian Dröge [Thu, 22 Jan 2009 13:37:21 +0000 (14:37 +0100)]
Store all partitions & primer packs in memory for faster access
Store all partitions & primer packs in memory for faster access.
This is later needed for fast seeking.
Pre-fill the list of partitions with the content of the random
index pack.
Don't parse metadata of an partition twice.
Stefan Kost [Thu, 22 Jan 2009 16:20:03 +0000 (18:20 +0200)]
Update common snapshot.
Wim Taymans [Thu, 22 Jan 2009 13:00:57 +0000 (14:00 +0100)]
Update config.h for development.
Sebastian Dröge [Thu, 22 Jan 2009 12:46:44 +0000 (13:46 +0100)]
Fix pre-commit hook
Jan Urbanski [Thu, 22 Jan 2009 12:39:34 +0000 (13:39 +0100)]
Add support for ECMA arrays in script tags. Fixes bug #567965.
Add support for ECMA arrays in script tags. This fixes
seeking on some files that have the seek table stored
inside an ECMA array instead of the normal array.
Wim Taymans [Thu, 22 Jan 2009 12:33:14 +0000 (13:33 +0100)]
Unlock the jitterbuffer before pushing out the packet-lost events.
Move some code before we do the unlock to make the jitterbuffer state
consistent while we are unlocked.
Sebastian Dröge [Thu, 22 Jan 2009 10:54:45 +0000 (11:54 +0100)]
Fix UL for DTS and MPEG2 layer 1
Sebastian Dröge [Thu, 22 Jan 2009 10:54:15 +0000 (11:54 +0100)]
Add support for AAC audio
Sebastian Dröge [Thu, 22 Jan 2009 10:47:48 +0000 (11:47 +0100)]
Store MXF metadata in a hash table, keyed by UID
Store the MXF metadata in a hash table, keyed by the
instance UID. This simplifies resolval of the metadata
and makes looping over all metadata sets unnecessary
in most cases.
Additionally parse metadata always. If we already have
a metadata set with the same UID replace it only if
the new metadata set is from a later offset. This
fixes metadata parsing of files where following partitions
don't have a complete copy of the previous metadata.
Sebastian Dröge [Thu, 22 Jan 2009 10:44:46 +0000 (11:44 +0100)]
Build the random index pack while parsing
If the file contains no random index pack or just
an invalid one build the random index pack while
parsing.
Sebastian Dröge [Thu, 22 Jan 2009 10:43:56 +0000 (11:43 +0100)]
Update copyrights for 2009
Sebastian Dröge [Thu, 22 Jan 2009 10:42:24 +0000 (11:42 +0100)]
Simplify parsing of UL/UUID arrays
Simplify parsing of UL/UUID arrays by abstracting it
into a separate function.
Sebastian Dröge [Thu, 22 Jan 2009 10:37:22 +0000 (11:37 +0100)]
Implement parsing of DMS1 (SMPTE S380M)
Sebastian Dröge [Thu, 22 Jan 2009 10:00:59 +0000 (11:00 +0100)]
Disable the filter plugin from the build
The filter plugin only contains a limited IIR filter element
which is now obsoleted by the audioiirfilter element from
gst-plugins-good/audiofx.