summaryrefslogtreecommitdiffstats
path: root/gst/mxf
AgeCommit message (Collapse)AuthorFilesLines
2009-02-06mxfdemux: Adjust last_stop to the last keyframe when seekingSebastian Dröge1-3/+9
2009-02-06mxfdemux: Fix logic for finding the previous keyframeSebastian Dröge1-6/+9
2009-02-06mxfdemux: Add keyframe detection for MPEG2 video streamsSebastian Dröge3-0/+91
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.
2009-02-05mxfdemux: Protect the metadata with a lock against concurrent accessSebastian Dröge2-21/+62
2009-02-04Update TODOSebastian Dröge1-2/+4
2009-02-04Post an UMID tag with the current package's UMIDSebastian Dröge3-0/+15
2009-02-04Reset the current partition after seeking and NEWSEGMENT eventsSebastian Dröge1-1/+6
2009-02-04In push mode play all remaining parts of the file on EOS if there are anySebastian Dröge1-13/+72
2009-02-04Add property to set the maximum allowed time difference between tracksSebastian Dröge2-3/+21
2009-02-04Always set the current package, not only when it was changedSebastian Dröge1-1/+1
This is necessary as the current package link will be set to NULL when updated metadata is parsed and should be set here again.
2009-02-04Try to resolve all synchronization issues, not only the firstSebastian Dröge1-35/+33
2009-02-04Remove some checks that will always be TRUESebastian Dröge1-26/+19
2009-02-02Cleanup playback package selection and notify about the current packageSebastian Dröge1-15/+21
2009-02-02Update tags properly, especially on component switchSebastian Dröge1-5/+18
2009-02-02Error out if no pads could be createdSebastian Dröge1-0/+3
2009-02-02Resolve metadata and update tracks if necessary before seekingSebastian Dröge1-4/+6
2009-02-02Don't go after the last component of a trackSebastian Dröge1-0/+1
2009-02-02Return an error if updating an already existing pad failsSebastian Dröge1-21/+56
2009-02-02Fix seeking if the source clip duration is unknownSebastian Dröge1-14/+19
2009-02-01Add initial support for seeking in push modeSebastian Dröge1-63/+216
2009-02-01Fix deadlocks when seeking in pull mode failed and check new offset before ↵Sebastian Dröge1-2/+11
using it
2009-02-01Update offset in push mode and handle events properlySebastian Dröge1-36/+41
2009-02-01Implement initial seeking support (pull mode only)Sebastian Dröge2-18/+242
2009-01-31Don't use GLib 2.16 API unconditionallySebastian Dröge2-19/+75
2009-01-31Check for EOS on all pads after adjusting the essence track durationsSebastian Dröge1-8/+31
2009-01-31Fix duration calculation for essence tracksSebastian Dröge1-2/+4
2009-01-31Implement GstElement::query/get_query_types vfuncsSebastian Dröge1-8/+114
2009-01-31Reset all internal state in finalizeSebastian Dröge1-2/+3
2009-01-31Improve EOS detection and fix push mode for the last pushed in bufferSebastian Dröge1-60/+80
2009-01-31Keep track of essence track position when playing source packagesSebastian Dröge2-20/+16
This ensures that the correct essence elements are played and that we seek to the correct essence elements.
2009-01-31Compensate for timestamp/duration rounding errorsSebastian Dröge2-0/+13
2009-01-31Improve EOS logic to check all pads when pulling a packet returned EOSSebastian Dröge1-3/+2
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.
2009-01-31Only push buffers for pads that are not more than 500ms before other padsSebastian Dröge1-14/+27
2009-01-31Improve EOS logic to only go into EOS after all tracks are finishedSebastian Dröge1-33/+117
2009-01-31Update TODO listSebastian Dröge1-4/+0
2009-01-31Try to keep the timestamp difference between tracks lower than 500msSebastian Dröge1-27/+202
2009-01-31Fix playback of atom filesSebastian Dröge1-1/+1
2009-01-31Keep track of current playback positionSebastian Dröge1-11/+14
2009-01-31Set essence track positions to 0 if we're at the start partitionSebastian Dröge1-9/+28
2009-01-31Generate an index table for essence streamsSebastian Dröge11-183/+272
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.
2009-01-31Don't complain if the preface has no primary package setSebastian Dröge1-6/+8
2009-01-31Allow index table segments without primer packSebastian Dröge2-11/+13
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.
2009-01-31Add essence track abstractionSebastian Dröge2-247/+460
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.
2009-01-31Fix parsing of index table segmentsSebastian Dröge1-4/+6
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.
2009-01-31Improve detection of the end of the header metadataSebastian Dröge2-12/+20
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.
2009-01-23Store all partitions & primer packs in memory for faster accessSebastian Dröge4-128/+213
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.
2009-01-22Fix UL for DTS and MPEG2 layer 1Sebastian Dröge1-2/+2
2009-01-22Add support for AAC audioSebastian Dröge1-0/+10
2009-01-22Store MXF metadata in a hash table, keyed by UIDSebastian Dröge7-835/+819
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.
2009-01-22Build the random index pack while parsingSebastian Dröge2-10/+40
If the file contains no random index pack or just an invalid one build the random index pack while parsing.