9 years agoducatividenc: cleanup param initialization
Vincent Penquerc'h [Wed, 22 Aug 2012 14:26:51 +0000 (14:26 +0000)]
ducatividenc: cleanup param initialization

Use a local params pointer, and remove a nop assignment
and a duplicate one.

9 years agoducatimpeg4enc: avoid casting before checking if the cast is valid
Vincent Penquerc'h [Wed, 22 Aug 2012 14:24:06 +0000 (14:24 +0000)]
ducatimpeg4enc: avoid casting before checking if the cast is valid

Especially as the cast was made after again.

9 years agoviddec: Add a lookup table between decoder arrays and the buffers we pass in
Thibault Saunier [Thu, 6 Sep 2012 15:52:01 +0000 (12:52 -0300)]
viddec: Add a lookup table between decoder arrays and the buffers we pass in

This avoid leak if we flush and some buffers have not been "officially" freed by
the decoders.

9 years agoviddec: Do not rely on the decoder setting freeBufID to unref our buffers when possible
Thibault Saunier [Wed, 5 Sep 2012 19:55:29 +0000 (16:55 -0300)]
viddec: Do not rely on the decoder setting freeBufID to unref our buffers when possible

In some corner cases this is not reliable and once a buffer is processed and pushed through the
pad we can just drop our references without any problem.

9 years agoviddec: Pass through gst-indent
Thibault Saunier [Wed, 5 Sep 2012 19:53:24 +0000 (16:53 -0300)]
viddec: Pass through gst-indent

9 years agoducati: fix spelling mistake in plugin description
Vincent Penquerc'h [Thu, 16 Aug 2012 15:19:47 +0000 (15:19 +0000)]
ducati: fix spelling mistake in plugin description

9 years agoRevert "ducati: fix build when encoders are missing"
Vincent Penquerc'h [Thu, 16 Aug 2012 15:04:44 +0000 (15:04 +0000)]
Revert "ducati: fix build when encoders are missing"

This reverts commit d17883fbb7224040671dadb422f7613439abac48.

9 years agompeg4enc: the codec header is not used so don't include it
Alessandro Decina [Tue, 7 Aug 2012 14:37:26 +0000 (14:37 +0000)]
mpeg4enc: the codec header is not used so don't include it

9 years agoducatividdec: remove the interlaced MPEG2 half height hack
Vincent Penquerc'h [Fri, 3 Aug 2012 13:43:19 +0000 (13:43 +0000)]
ducatividdec: remove the interlaced MPEG2 half height hack

It breaks a sample I have, and should not be needed anymore.

9 years agompeg4enc: switch to base params (fixes l3 errors)
Alessandro Decina [Wed, 1 Aug 2012 09:48:27 +0000 (09:48 +0000)]
mpeg4enc: switch to base params (fixes l3 errors)

Base params Are Good (tm) and as a side effect, they seem to fix those
"L3 standard error: TARGET:DMM1 at address 0x0" errors we were getting.

9 years agoducatividdec: ensure status is zeroed at start
Vincent Penquerc'h [Fri, 27 Jul 2012 14:12:46 +0000 (14:12 +0000)]
ducatividdec: ensure status is zeroed at start

Some data (eg, buf) must be NULL when unused, so zero everything
to make sure everything that has to be is.

9 years agoRevert "configure: ensure HAVE_ENCODERS is placed in config.h"
Alessandro Decina [Tue, 24 Jul 2012 12:21:19 +0000 (12:21 +0000)]
Revert "configure: ensure HAVE_ENCODERS is placed in config.h"

This reverts commit d5d385a284f5754fb30ccd44ec429dff63bacc1a.

9 years agoducatividdec: only heed bytesConsumed when not in entire frame mode
Vincent Penquerc'h [Tue, 24 Jul 2012 10:41:21 +0000 (10:41 +0000)]
ducatividdec: only heed bytesConsumed when not in entire frame mode

This value seems to be invalid when in entire frame input mode.

This fixes VC-1 playback.

9 years agoducatih264dec: fix caps specifying "align" instead of "alignment"
Vincent Penquerc'h [Mon, 23 Jul 2012 16:47:29 +0000 (16:47 +0000)]
ducatih264dec: fix caps specifying "align" instead of "alignment"

This caused a caps intersection to succeed when it should have failed.

9 years agoducatividdec: remove memory dump debug trace
Vincent Penquerc'h [Fri, 20 Jul 2012 15:50:45 +0000 (15:50 +0000)]
ducatividdec: remove memory dump debug trace

9 years agogst-ducati: fix < 0 checks
Vincent Penquerc'h [Wed, 18 Jul 2012 17:58:47 +0000 (17:58 +0000)]
gst-ducati: fix < 0 checks

9 years agogst-ducati: reorder H.264 frames ourselves
Vincent Penquerc'h [Wed, 18 Jul 2012 12:19:01 +0000 (12:19 +0000)]
gst-ducati: reorder H.264 frames ourselves

9 years agoducatih264dec: re-enable auto for display-delay
Rob Clark [Wed, 18 Jul 2012 17:20:45 +0000 (17:20 +0000)]
ducatih264dec: re-enable auto for display-delay

Needed for clips w/ more than 1 B frame to play properly.

9 years agoconfigure: ensure HAVE_ENCODERS is placed in config.h
Vincent Penquerc'h [Tue, 17 Jul 2012 13:27:39 +0000 (13:27 +0000)]
configure: ensure HAVE_ENCODERS is placed in config.h

9 years agoducatividdec: do not skip outputID processing when outBufsInUseFlag is set
Vincent Penquerc'h [Tue, 17 Jul 2012 11:50:41 +0000 (11:50 +0000)]
ducatividdec: do not skip outputID processing when outBufsInUseFlag is set

twi thinks the codec may possibly output a partially decoded buffer while
still outputting a valid full frame for display. The docs aren't very
clear, so I'll revert that particular change.

I see no difference with this change on or off in the test streams I have
here, so I'm not sure there's a difference in practice.

9 years agoducatividdec: rename drop_frame to can_drop_frame
Vincent Penquerc'h [Tue, 17 Jul 2012 11:14:09 +0000 (11:14 +0000)]
ducatividdec: rename drop_frame to can_drop_frame

This makes it less confusing, as I thought drop_frame was actually
dropping the frame before looking at the implementation.

9 years agoRevert "ducatividdec: perform QoS after feeding the data to the hardware decoder"
Vincent Penquerc'h [Tue, 17 Jul 2012 11:11:28 +0000 (11:11 +0000)]
Revert "ducatividdec: perform QoS after feeding the data to the hardware decoder"

This reverts commit 5fa560d82caf91230fbc04b3768952727e1bd022.

It turns out that drop_frame does not in fact drop those frames that are
necessary for decoding future frames.

9 years agoducati: fix build when encoders are missing
Vincent Penquerc'h [Tue, 17 Jul 2012 10:29:27 +0000 (10:29 +0000)]
ducati: fix build when encoders are missing

This just tests for the H264 encoder header, I'm not sure if that's
safe enough or if one can have a random set of encoders installed,
in which case each header should be tested separately.

For now though, it fixes the build.

9 years agoducatividdec: perform QoS after feeding the data to the hardware decoder
Vincent Penquerc'h [Tue, 17 Jul 2012 10:11:08 +0000 (10:11 +0000)]
ducatividdec: perform QoS after feeding the data to the hardware decoder

We do not want to drop frames before decoding them, or we will be unable
to recover a good image till next keyframe (or equivalent). Instead, we
always feed the data to the hardware decoder, and drop the decoder frames.

The "wait for a keyframe" code was split off the unrelated QoS code and
kept before feeding the data.

9 years agoducatividdec: add a comment about a fishy, but OK, bit of code
Vincent Penquerc'h [Tue, 17 Jul 2012 10:09:31 +0000 (10:09 +0000)]
ducatividdec: add a comment about a fishy, but OK, bit of code

I can't think of a good way to size this statically, and that size
seems like a good enough bound, even though it's technically wrong.

9 years agoducatividdec: do not discard unused input data
Vincent Penquerc'h [Tue, 17 Jul 2012 10:07:11 +0000 (10:07 +0000)]
ducatividdec: do not discard unused input data

The video decoder may not use all data applied to it in a decode call.
When this happens, we want to supply the remaining data again next time,
or corruption will happen due to "missing" data.

The data is currently copied, which is not an issue in practice as this
seems to happen not often, and more a small amount of data.

9 years agoducatividdec: only send buffers when the decoder is done
Vincent Penquerc'h [Tue, 17 Jul 2012 10:04:45 +0000 (10:04 +0000)]
ducatividdec: only send buffers when the decoder is done

For interlaced streams, a decoder may supply a partially filled buffer,
and will set a flag when that buffer is not yet fully filled.
In such a case, we do not want to send it downstream, but wait for it
to be filled before doing so.

Also instruct the codec to force a frame start on flush, just in case.

9 years agoducatividdec: delay flushing till the end of the codec processing
Vincent Penquerc'h [Tue, 17 Jul 2012 09:58:07 +0000 (09:58 +0000)]
ducatividdec: delay flushing till the end of the codec processing

This avoids resetting various state in the middle of processing,
which could lead to buffer leaks, and generally more confusing flow.

9 years agoducatividdec: print error when there actually is one
Vincent Penquerc'h [Fri, 29 Jun 2012 12:15:46 +0000 (12:15 +0000)]
ducatividdec: print error when there actually is one

(and print the right one while we're at it)

9 years agoducatimpeg4dec: add note about xvid being broken with base params
Alessandro Decina [Mon, 16 Jul 2012 08:35:33 +0000 (08:35 +0000)]
ducatimpeg4dec: add note about xvid being broken with base params

9 years agoRevert "ducatimpeg4dec: switch to using base params"
Alessandro Decina [Mon, 16 Jul 2012 08:33:25 +0000 (08:33 +0000)]
Revert "ducatimpeg4dec: switch to using base params"

This reverts commit 40817373191324531a110448bcb1c28fcd79d9bf.
Using base params seems to break xvid decoding. Hrm.

9 years agoducatih264enc: set numTemporalLayer to 1
Alessandro Decina [Fri, 13 Jul 2012 14:26:35 +0000 (14:26 +0000)]
ducatih264enc: set numTemporalLayer to 1

numTemporalLayer=0 is not supported and makes SETPARAMS fail

9 years agoSet IDRFrameInterval to 1 on the H264 encoder
Martin Storsjo [Wed, 2 May 2012 16:42:29 +0000 (19:42 +0300)]
Set IDRFrameInterval to 1 on the H264 encoder

Without this, IDRFrameInterval is left at 0, making only the
first I frame an IDR frame (and marked as keyframe).

9 years agoExpose the intra-frame interval as a property
Martin Storsjo [Wed, 2 May 2012 17:42:53 +0000 (20:42 +0300)]
Expose the intra-frame interval as a property

9 years agoMark I frames as keyframes for encoders other than H264
Martin Storsjo [Wed, 2 May 2012 17:10:49 +0000 (20:10 +0300)]
Mark I frames as keyframes for encoders other than H264

9 years agoRemove duplicate assignments
Martin Storsjo [Wed, 2 May 2012 21:22:33 +0000 (00:22 +0300)]
Remove duplicate assignments

Both variables assigned are already assigned the same values

9 years agoClear the right pointer after freeing
Martin Storsjo [Wed, 2 May 2012 21:21:53 +0000 (00:21 +0300)]
Clear the right pointer after freeing

9 years agoRe-enable ducatih264enc and ducatimpeg4enc
Alessandro Decina [Wed, 11 Jul 2012 16:16:59 +0000 (16:16 +0000)]
Re-enable ducatih264enc and ducatimpeg4enc

9 years agovidenc: port to drm/rpmsg
Alessandro Decina [Wed, 11 Jul 2012 16:13:57 +0000 (16:13 +0000)]
videnc: port to drm/rpmsg

9 years agoducatividdec: fix a miniobject and bo leak
Vincent Penquerc'h [Fri, 29 Jun 2012 11:34:55 +0000 (11:34 +0000)]
ducatividdec: fix a miniobject and bo leak

9 years agoducati: add some more detailed logging about video decoder extended errors
Vincent Penquerc'h [Thu, 28 Jun 2012 16:26:59 +0000 (16:26 +0000)]
ducati: add some more detailed logging about video decoder extended errors

9 years agoducatimpeg4dec: switch to using base params
Alessandro Decina [Thu, 28 Jun 2012 09:37:26 +0000 (09:37 +0000)]
ducatimpeg4dec: switch to using base params

9 years agoducatividdec: fix event leak
Vincent Penquerc'h [Wed, 27 Jun 2012 11:28:08 +0000 (11:28 +0000)]
ducatividdec: fix event leak

9 years agoducatividdec: fix buffer leaks on error paths
Vincent Penquerc'h [Wed, 27 Jun 2012 11:23:53 +0000 (11:23 +0000)]
ducatividdec: fix buffer leaks on error paths

9 years agoducatividdec: fix deadlocks on early out paths
Vincent Penquerc'h [Wed, 27 Jun 2012 11:12:27 +0000 (11:12 +0000)]
ducatividdec: fix deadlocks on early out paths

9 years agoducatividdec: prevent overread when all buffer slots are used
Vincent Penquerc'h [Wed, 27 Jun 2012 11:03:11 +0000 (11:03 +0000)]
ducatividdec: prevent overread when all buffer slots are used

9 years agoducatividdec: detect unsupported codecs when switching from NULL to READY
Vincent Penquerc'h [Mon, 18 Jun 2012 14:18:35 +0000 (14:18 +0000)]
ducatividdec: detect unsupported codecs when switching from NULL to READY

This should allow playbin2 to try other codecs, if available.

9 years agoducatividdec: support crop qdata
Rob Clark [Thu, 14 Jun 2012 02:18:06 +0000 (21:18 -0500)]
ducatividdec: support crop qdata

Note: eventually remove crop event.. but for now leave it until other
elements are updated.

9 years agouse GstDRMBufferPool and dmabuf for sharing buffers
Rob Clark [Thu, 14 Jun 2012 00:27:13 +0000 (19:27 -0500)]
use GstDRMBufferPool and dmabuf for sharing buffers

Use GstDRMBufferPool instead of own private bufferpool, and use
dmabuf to import buffers (either allocated by our bufferpool or
by downstream element) and qdata to attach our own private data
to the buffer.  In this way the differences in code path between
using our own buffers and a downstream element's buffers is

9 years agoRevert "ducatividdec: share the drm fd with other elements in the pipeline"
Rob Clark [Mon, 11 Jun 2012 14:55:34 +0000 (09:55 -0500)]
Revert "ducatividdec: share the drm fd with other elements in the pipeline"

Instead use dmabuf fd's to share w/ other elements in the pipeline.  This
way we don't need to share a common fd for the drm/omapdce device.

This reverts commit c115a41edd4abbc4784e6921e5a9c30a17b63dfa.

9 years agoducatih264dec: force free outbufs on error 0x201 (concealment, no slice)
Alessandro Decina [Tue, 5 Jun 2012 09:21:13 +0000 (11:21 +0200)]
ducatih264dec: force free outbufs on error 0x201 (concealment, no slice)

When the codec returns error 0x201, it doesn't free the output buffer, leading
to (downstream) buffer pool exhaustion. Special case this condition, partly
reverting 1c65dfe58e9c178503cae32dfcf10eb18c8e1bf2.

9 years agoducatividdec: share the drm fd with other elements in the pipeline
Alessandro Decina [Thu, 24 May 2012 06:16:28 +0000 (06:16 +0000)]
ducatividdec: share the drm fd with other elements in the pipeline

Implement the GstVideoContext interface to share the drm fd with
other elements in the pipeline

9 years agoInitial port to omapdce
Alessandro Decina [Tue, 24 Apr 2012 15:07:15 +0000 (15:07 +0000)]
Initial port to omapdce

9 years agoDisable encoders as they aren't supported by omapdce yet
Alessandro Decina [Tue, 24 Apr 2012 15:06:31 +0000 (15:06 +0000)]
Disable encoders as they aren't supported by omapdce yet

9 years agoRemove dependency on libtimemmgr
Alessandro Decina [Tue, 24 Apr 2012 15:05:25 +0000 (15:05 +0000)]
Remove dependency on libtimemmgr

9 years agoducatih264dec: don't free inArgs->inputID twice on some error conditions
Alessandro Decina [Tue, 8 May 2012 12:36:36 +0000 (14:36 +0200)]
ducatih264dec: don't free inArgs->inputID twice on some error conditions

Remove some code that used to force-free inArgs->inputID on some errors. Now we
flush the codec so the buffer is unlocked during flushing.

9 years agoducatividdec: never leave the flow_ret outarg uninitialized in codec_process
Alessandro Decina [Tue, 8 May 2012 12:27:56 +0000 (14:27 +0200)]
ducatividdec: never leave the flow_ret outarg uninitialized in codec_process

9 years agoREADME update
Luciana Fujii Pontello [Fri, 13 Apr 2012 14:13:40 +0000 (10:13 -0400)]
README update

9 years agoducatibufferpool: fix race in gst_ducati_bufferpool_destroy
Alessandro Decina [Wed, 11 Apr 2012 12:08:06 +0000 (14:08 +0200)]
ducatibufferpool: fix race in gst_ducati_bufferpool_destroy

Pop items from ->freelist with the pool lock taken to avoid races with other
threads unreffing outstanding buffers.

9 years agoducatividdec: propagate downstream flow errors
Alessandro Decina [Wed, 11 Apr 2012 12:04:56 +0000 (14:04 +0200)]
ducatividdec: propagate downstream flow errors

9 years agoducatividdec: reset outArgs in flush()
Alessandro Decina [Wed, 11 Apr 2012 12:01:18 +0000 (14:01 +0200)]
ducatividdec: reset outArgs in flush()

Reset outArgs in flush() so that it isn't left in an inconsistent state if
flush() is called from codec_process() during error handling.

9 years agoducatividdec: fix getcaps method adding rowstride
Luciana Fujii Pontello [Sun, 1 Apr 2012 02:34:19 +0000 (22:34 -0400)]
ducatividdec: fix getcaps method adding rowstride

For yuv-strided formats we need to add the rowstride field with the
allowed range to make caps intersect properly.

9 years agoducatividdec: Implement src pad getcaps function
Luciana Fujii Pontello [Thu, 22 Mar 2012 01:42:30 +0000 (21:42 -0400)]
ducatividdec: Implement src pad getcaps function

The caps of the src pad should not change with upstream negotiation
except between regular yuv and rowstrided.

9 years agoducatividdec: Fix indentation
Luciana Fujii Pontello [Thu, 22 Mar 2012 01:41:32 +0000 (21:41 -0400)]
ducatividdec: Fix indentation

9 years agoducatividenc: err.. mark keyframes on IVIDEO_IDR_FRAME frames
Alessandro Decina [Wed, 28 Mar 2012 14:03:26 +0000 (16:03 +0200)]
ducatividenc: err.. mark keyframes on IVIDEO_IDR_FRAME frames

9 years agoducatividenc: add cropping support
Alessandro Decina [Tue, 27 Mar 2012 17:19:08 +0000 (19:19 +0200)]
ducatividenc: add cropping support

9 years agoducatividenc: mark keyframes
Alessandro Decina [Thu, 22 Mar 2012 14:43:28 +0000 (15:43 +0100)]
ducatividenc: mark keyframes

9 years agoducatih264enc: set output caps
Alessandro Decina [Thu, 22 Mar 2012 14:42:34 +0000 (15:42 +0100)]
ducatih264enc: set output caps

9 years agoducatividenc: don't memcpy input if it's already tiler backed
Alessandro Decina [Thu, 22 Mar 2012 14:41:11 +0000 (15:41 +0100)]
ducatividenc: don't memcpy input if it's already tiler backed

9 years agoducatih264dec: implement LATENCY query
Alessandro Decina [Thu, 22 Mar 2012 14:32:38 +0000 (15:32 +0100)]
ducatih264dec: implement LATENCY query

9 years agoducatividdec: store upstream framerate
Alessandro Decina [Thu, 22 Mar 2012 14:31:59 +0000 (15:31 +0100)]
ducatividdec: store upstream framerate

9 years agoducatih264dec: det displayDelay to IVIDDEC3_DISPLAY_DELAY_1
Alessandro Decina [Fri, 17 Feb 2012 11:28:51 +0000 (12:28 +0100)]
ducatih264dec: det displayDelay to IVIDDEC3_DISPLAY_DELAY_1

9 years agoducatividdec: flush the codec on caps changes
Alessandro Decina [Tue, 28 Feb 2012 17:07:33 +0000 (18:07 +0100)]
ducatividdec: flush the codec on caps changes

Flush the codec when caps change. Needed for downstream sinks that provide a
buffer pool and need to destroy all the outstanding buffers before they can
negotiate new caps (hello v4l2sink).

9 years agoducatividdec: send a crop event every time caps change
Alessandro Decina [Tue, 28 Feb 2012 17:04:59 +0000 (18:04 +0100)]
ducatividdec: send a crop event every time caps change

9 years agoducatih264dec: don't leak on decode errors
Alessandro Decina [Fri, 17 Feb 2012 11:28:51 +0000 (12:28 +0100)]
ducatih264dec: don't leak on decode errors

9 years agoducatih264dec: handle IH264VDEC_ERR_NOSLICE errors
Alessandro Decina [Thu, 16 Feb 2012 17:13:13 +0000 (18:13 +0100)]
ducatih264dec: handle IH264VDEC_ERR_NOSLICE errors

Handle IH264VDEC_ERR_NOSLICE errors by flushing and skipping to the next

9 years agoducatividdec: make codec_flush non-static so it can be used by derived classes
Alessandro Decina [Thu, 16 Feb 2012 17:11:05 +0000 (18:11 +0100)]
ducatividdec: make codec_flush non-static so it can be used by derived classes

Rename codec_flush to gst_ducati_viddec_codec_flush and make it non-static so
derived elements can use it (for example during error recovering).

9 years agoducatividdec: add var to skip buffers until the next keyframe
Alessandro Decina [Thu, 16 Feb 2012 17:08:15 +0000 (18:08 +0100)]
ducatividdec: add var to skip buffers until the next keyframe

Add wait_keyframe variable that is set to TRUE whenever we need to skip buffers
until the next keyframe.

9 years agoducatih264dec: implement B frame dropping strategy similar to ducativc1dec
Alessandro Decina [Tue, 14 Feb 2012 16:41:40 +0000 (17:41 +0100)]
ducatih264dec: implement B frame dropping strategy similar to ducativc1dec

9 years agoducatividdec: don't discard input timestamps at stream start
Alessandro Decina [Tue, 14 Feb 2012 15:07:27 +0000 (16:07 +0100)]
ducatividdec: don't discard input timestamps at stream start

Don't discard input timestamps when forcing the allocation of buffers from the
internal pool (see 9471fe2). Fixes sync glitches with interlaced streams.

9 years agoducatividdec: workaround for the mpeg2 decoder giving wrong crop_height for interlace...
Alessandro Decina [Tue, 29 Nov 2011 19:37:30 +0000 (20:37 +0100)]
ducatividdec: workaround for the mpeg2 decoder giving wrong crop_height for interlaced streams

9 years agoducatividdec: don't renegotiate while flushing
Alessandro Decina [Tue, 29 Nov 2011 19:54:47 +0000 (20:54 +0100)]
ducatividdec: don't renegotiate while flushing

Fixes a crash introduced by calling codec_flush in PAUSED=>READY

9 years agoducatividdec: flush the codec going to READY
Alessandro Decina [Thu, 2 Feb 2012 10:39:20 +0000 (11:39 +0100)]
ducatividdec: flush the codec going to READY

Flush the codec going to READY so we don't leak buffers if state is changed to
<= READY before EOS.

9 years agobufferpool: reset ->orig to NULL in _finalize
Alessandro Decina [Thu, 2 Feb 2012 10:35:39 +0000 (11:35 +0100)]
bufferpool: reset ->orig to NULL in _finalize

Reset ->orig to NULL on _finalize so that if a buffer is recycled we don't
_unref invalid memory.

9 years agoducativc1dec: when dropping frames, drop only bframes
Alessandro Decina [Tue, 31 Jan 2012 12:03:34 +0000 (13:03 +0100)]
ducativc1dec: when dropping frames, drop only bframes

9 years agoducatividdec: make it possible for subclasses to participate in qos handling
Alessandro Decina [Tue, 31 Jan 2012 11:59:06 +0000 (12:59 +0100)]
ducatividdec: make it possible for subclasses to participate in qos handling

9 years agoducatimpeg4dec: don't leak input buffers
Alessandro Decina [Tue, 24 Jan 2012 16:35:34 +0000 (17:35 +0100)]
ducatimpeg4dec: don't leak input buffers

9 years agoducatividdec: destroy the internal pool once we have an output buffer
Alessandro Decina [Fri, 20 Jan 2012 10:55:57 +0000 (11:55 +0100)]
ducatividdec: destroy the internal pool once we have an output buffer

We use the internal pool until we get the first output buffer, then we switch to
downstream provided buffers. Destroy the internal pool once we get the first
output buffer so that we release memory. The pool is then recreated when/if

9 years agoducatividdec: update the internal pool caps when switching interlaced mode
Alessandro Decina [Fri, 20 Jan 2012 10:32:23 +0000 (11:32 +0100)]
ducatividdec: update the internal pool caps when switching interlaced mode

9 years agoset encoders' ranks to PRIMARY + 1
Luciana Fujii Pontello [Fri, 20 Jan 2012 00:45:17 +0000 (19:45 -0500)]
set encoders' ranks to PRIMARY + 1

Increase encoders' ranks to make them be chosen before other
primary encoders.

9 years agogstducati: Fix indentation
Luciana Fujii Pontello [Fri, 20 Jan 2012 00:44:43 +0000 (19:44 -0500)]
gstducati: Fix indentation

9 years agoducatividdec: workaround for interlaced clips that are detected as progressive from...
Alessandro Decina [Thu, 19 Jan 2012 16:07:31 +0000 (17:07 +0100)]
ducatividdec: workaround for interlaced clips that are detected as progressive from upstream

Sometimes upstream thinks that some input is progressive (usually if interlaced
isn't marked correctly at the container level) when it's actually interlaced.
Detect such cases with help from the codec and adjust caps (and buffers)

9 years agoducatividdec: fix regression with clips having outBufsInUseFlag==TRUE
Alessandro Decina [Wed, 11 Jan 2012 16:00:34 +0000 (17:00 +0100)]
ducatividdec: fix regression with clips having outBufsInUseFlag==TRUE

9 years agoducatimpeg4dec: don't forget to push the codec data buffer
Alessandro Decina [Mon, 9 Jan 2012 16:16:54 +0000 (17:16 +0100)]
ducatimpeg4dec: don't forget to push the codec data buffer

9 years agoducatividdec: auto-detect when input ts are PTS
Rob Clark [Tue, 27 Dec 2011 22:03:50 +0000 (16:03 -0600)]
ducatividdec: auto-detect when input ts are PTS

When input timestamps are in ascending order, and output timestamps
are not, that must mean the parser/demuxser is giving us the timestamps
in presentation order (PTS), not decode order (DTS).

9 years agoducatividdec: some minor trace cleanups
Rob Clark [Tue, 27 Dec 2011 21:38:15 +0000 (15:38 -0600)]
ducatividdec: some minor trace cleanups

9 years agoducatimpeg2dec: we want parsed stream
Rob Clark [Tue, 27 Dec 2011 21:36:49 +0000 (15:36 -0600)]
ducatimpeg2dec: we want parsed stream

9 years agoducativc1dec: workaround to not abort decoding on broken frames
Alessandro Decina [Fri, 23 Dec 2011 12:14:16 +0000 (13:14 +0100)]
ducativc1dec: workaround to not abort decoding on broken frames

When on some broken frames the codec returns fatal error 0x00409000, pretend it
isn't fatal and just carry on as the codec seems to be able to continue
decoding subsequent valid frames correctly.

9 years agoducatividdec: make it possible for decoders to implement their own error handling
Alessandro Decina [Fri, 23 Dec 2011 12:10:22 +0000 (13:10 +0100)]
ducatividdec: make it possible for decoders to implement their own error handling

Useful to implement decoder specific hacks to workaround broken error reporting
from codecs.

9 years agompeg4dec: don't enable deblocking filter. Fixes codec creation failures.
Alessandro Decina [Wed, 21 Dec 2011 13:35:30 +0000 (14:35 +0100)]
mpeg4dec: don't enable deblocking filter. Fixes codec creation failures.

Set outloopDeBlocking to FALSE as the codec doesn't seem to support that being
TRUE on recent ducati.