Sebastian Dröge
2b566be795
mxfdemux: Correctly implement timestamping in all cases
...
When the material package track and source package track
edit rate are different the source package track edit
rate applies to the stored essence and the material track
edit rate only applies to the values in the track's sequence
and components.
2009-02-08 21:23:03 +01:00
Sebastian Dröge
3cc77d4dd6
mxfdemux: Correctly handle DURATION queries with a negative duration
2009-02-08 21:22:17 +01:00
Sebastian Dröge
81fb90748f
mxfdemux: When changing to the component after the last component update the essence track position
2009-02-08 21:17:11 +01:00
Sebastian Dröge
c33678dab3
mxfdemux: Small cleanup and an additional check
...
Update TODO list, reduce size of a stack allocated string
and don't allow essence tracks with an invalid edit rate
2009-02-08 21:12:21 +01:00
Sebastian Dröge
658066d085
mxfdemux: For material packages make sure that tracks resolve to source tracks
2009-02-08 07:33:33 +01:00
Sebastian Dröge
8dc9f2ea4d
mxfdemux: Add support for non-standard Avid MXF files containing DNxHD essence
...
Avid uses a custom essence container UL and custom essence element keys
that are fortunately compatible with the generic container essence
elements. Partially fixes bug #561922 .
2009-02-07 10:38:26 +01:00
Sebastian Dröge
3c3dff6869
mxfdemux: Make essence track creation a bit more robust against broken files
...
Some files contain multiple tracks with the same track number but different
track id inside the same source package. This is invalid and we simply ignore
the second and following of such traacks now instead of overwriting the
information of the first one.
2009-02-07 10:13:54 +01:00
Sebastian Dröge
410681f8b5
mxfdemux: Don't include multiple descriptors in the track's descriptors
2009-02-07 10:03:24 +01:00
Sebastian Dröge
6e392318c0
mxfdemux: Add support for non-standard Avid MXF files containing DV essence
...
Avid usually uses a custom essence container label for the essence
descriptors and stores the actual codec that is used inside the
picture essence coding field (and for sound probably in the sound
essence coding field but I have no sample files with sound).
Partially fixes bug #561922 .
2009-02-07 09:27:13 +01:00
Sebastian Dröge
1822dc99d3
mxfdemux: Add data definition for Avid vendor specific picture essence
2009-02-06 11:57:46 +01:00
Sebastian Dröge
86088f92be
mxfdemux: For tracks with no known mapping use dummy caps
2009-02-06 11:55:45 +01:00
Sebastian Dröge
6eef7983fb
mxfdemux: Don't remove invalid new essence track twice from the GPtrArray
2009-02-06 11:21:00 +01:00
Sebastian Dröge
f529a4c6b3
mxfdemux: Implement keyframe detection for MPEG4 video streams
2009-02-06 11:09:11 +01:00
Sebastian Dröge
0d8099685d
mxfdemux: Handle some more special cases when setting the position when seeking
2009-02-06 10:46:47 +01:00
Sebastian Dröge
bb11522f1d
mxfdemux: Adjust last_stop to the last keyframe when seeking
2009-02-06 10:46:09 +01:00
Sebastian Dröge
22cb259f19
mxfdemux: Fix logic for finding the previous keyframe
2009-02-06 10:06:59 +01:00
Sebastian Dröge
6208795598
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.
2009-02-06 09:53:13 +01:00
Sebastian Dröge
c9f6a8b586
mxfdemux: Protect the metadata with a lock against concurrent access
2009-02-05 21:29:29 +01:00
Josep Torra
e3fcf51e2c
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.
2009-02-04 22:50:30 +01:00
Josep Torra
f44b64ce92
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.
2009-02-04 22:17:36 +01:00
Josep Torra
77bc3a162c
Moved var declarations to the begin of function
2009-02-04 16:20:40 +01:00
Josep Torra
b7198258f2
Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-bad
2009-02-04 16:18:27 +01:00
Josep Torra
5d1abdbe2c
Improved seeking in pull mode. Some refactoring and small fixes
2009-02-04 16:11:23 +01:00
Sebastian Dröge
ad2a64870c
Update TODO
2009-02-04 11:12:14 +01:00
Sebastian Dröge
3e2a880c6b
Post an UMID tag with the current package's UMID
2009-02-04 11:12:14 +01:00
Sebastian Dröge
c0557df34d
Reset the current partition after seeking and NEWSEGMENT events
2009-02-04 11:12:13 +01:00
Sebastian Dröge
2ee7e7768d
In push mode play all remaining parts of the file on EOS if there are any
2009-02-04 11:12:13 +01:00
Sebastian Dröge
cc5699340d
Add property to set the maximum allowed time difference between tracks
2009-02-04 11:12:13 +01:00
Sebastian Dröge
fd72ef34f6
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.
2009-02-04 11:12:13 +01:00
Sebastian Dröge
a79c4e0314
Try to resolve all synchronization issues, not only the first
2009-02-04 11:12:13 +01:00
Sebastian Dröge
c4a0bc9887
Remove some checks that will always be TRUE
2009-02-04 11:12:13 +01:00
Josep Torra
9e2dc060a4
Also flush parser when a newsegment is received. Fixes loop in reverse mode.
2009-02-02 23:29:24 +01:00
Josep Torra
c8eb591688
Add pull mode to mpegpsdemux and report duration reading first and last PTS. Some random cleanups.
2009-02-02 23:12:07 +01:00
Sebastian Dröge
18e2ffa484
Cleanup playback package selection and notify about the current package
2009-02-02 17:48:47 +01:00
Sebastian Dröge
5277650a20
Update tags properly, especially on component switch
2009-02-02 16:23:30 +01:00
Sebastian Dröge
0c756199c0
Error out if no pads could be created
2009-02-02 16:05:14 +01:00
Sebastian Dröge
ee131d8af7
Resolve metadata and update tracks if necessary before seeking
2009-02-02 15:54:23 +01:00
Sebastian Dröge
5e57a0a052
Don't go after the last component of a track
2009-02-02 15:54:00 +01:00
Sebastian Dröge
92f372ba30
Return an error if updating an already existing pad fails
2009-02-02 15:53:32 +01:00
Sebastian Dröge
60f5c6f03f
Fix seeking if the source clip duration is unknown
2009-02-02 07:44:12 +01:00
Sebastian Dröge
0ac0645de6
Add initial support for seeking in push mode
2009-02-01 17:00:33 +01:00
Sebastian Dröge
99298da3d5
Fix deadlocks when seeking in pull mode failed and check new offset before using it
2009-02-01 17:00:33 +01:00
Sebastian Dröge
43ade6cf71
Update offset in push mode and handle events properly
2009-02-01 17:00:23 +01:00
Sebastian Dröge
58a3220dde
Implement initial seeking support (pull mode only)
2009-02-01 15:07:09 +01:00
Sebastian Dröge
6a09f5f4fe
Don't use GLib 2.16 API unconditionally
2009-01-31 11:29:20 +01:00
Sebastian Dröge
93a2b5c9ea
Check for EOS on all pads after adjusting the essence track durations
2009-01-31 11:02:26 +01:00
Sebastian Dröge
ebd8b8dbaf
Fix duration calculation for essence tracks
2009-01-31 11:02:26 +01:00
Sebastian Dröge
f638caef57
Implement GstElement::query/get_query_types vfuncs
2009-01-31 11:02:26 +01:00
Sebastian Dröge
061a96fa94
Reset all internal state in finalize
2009-01-31 11:02:26 +01:00
Sebastian Dröge
02769b4a4d
Improve EOS detection and fix push mode for the last pushed in buffer
2009-01-31 11:02:26 +01:00