gstreamer-omap:gst-ducati.git
5 years agoAdded a tool to process GST traces and provide latencies for each element
Olivier Naudan [Mon, 29 Oct 2012 17:58:48 +0000 (13:58 -0400)]
Added a tool to process GST traces and provide latencies for each element

5 years agoducatividenc: use GST_PERFORMANCE category for traces related to profiling
Olivier Naudan [Mon, 29 Oct 2012 13:36:00 +0000 (09:36 -0400)]
ducatividenc: use GST_PERFORMANCE category for traces related to profiling

5 years agojpegvdec: set numOutputDataUnits = 1 to please the codec
Alessandro Decina [Fri, 10 Aug 2012 11:14:06 +0000 (11:14 +0000)]
jpegvdec: set numOutputDataUnits = 1 to please the codec

5 years agoAdd ducatijpegdec
Alessandro Decina [Fri, 10 Aug 2012 11:11:06 +0000 (11:11 +0000)]
Add ducatijpegdec

5 years agoducatimpeg4dec: add MPEG4 decoder error strings
Vincent Penquerc'h [Mon, 12 Nov 2012 16:27:17 +0000 (16:27 +0000)]
ducatimpeg4dec: add MPEG4 decoder error strings

5 years agoducatih264dec: write out a MB error map when codec debug info is on
Vincent Penquerc'h [Fri, 9 Nov 2012 09:42:31 +0000 (09:42 +0000)]
ducatih264dec: write out a MB error map when codec debug info is on

5 years agoducativc1dec: lie about simple profile videos being main profile
Vincent Penquerc'h [Thu, 8 Nov 2012 17:19:22 +0000 (17:19 +0000)]
ducativc1dec: lie about simple profile videos being main profile

This fixes playback of at least one video claiming it's simple profile,
but containing frames that use a feature that are unavailable in
simple profile (intensity compensation).

As Ducati supports both main and simple profile, I don't *think* this
should have any adverse effect, but if there happens to be some profile
related issue in the future, this patch may be one to revert to see if
things improve.

5 years agoMangle a few files with gst-indent, for future sanity
Vincent Penquerc'h [Thu, 8 Nov 2012 15:10:46 +0000 (15:10 +0000)]
Mangle a few files with gst-indent, for future sanity

5 years agoducativc1dec: add VC1 error strings
Vincent Penquerc'h [Thu, 8 Nov 2012 15:09:57 +0000 (15:09 +0000)]
ducativc1dec: add VC1 error strings

5 years agoducatih264dec: add H264 decoder error strings
Vincent Penquerc'h [Thu, 8 Nov 2012 14:56:43 +0000 (14:56 +0000)]
ducatih264dec: add H264 decoder error strings

5 years agoducati: rework debug bit logging for extensibility
Vincent Penquerc'h [Thu, 8 Nov 2012 14:46:54 +0000 (14:46 +0000)]
ducati: rework debug bit logging for extensibility

Codecs have their own "bit space", in which the same bits
represent different conditions.

5 years agoducatih264dec: log basic MB error information when requested
Vincent Penquerc'h [Thu, 8 Nov 2012 14:26:06 +0000 (14:26 +0000)]
ducatih264dec: log basic MB error information when requested

5 years agoducatividdec: add a property for gathering debug info from the codec
Vincent Penquerc'h [Thu, 8 Nov 2012 14:21:57 +0000 (14:21 +0000)]
ducatividdec: add a property for gathering debug info from the codec

The actual info is codec dependent. This is not done unconditionally
because it requires extra allocated memory, and potentially incurs
a speed penalty.

5 years agoducativc1dec: move log where it will be displayed
Vincent Penquerc'h [Wed, 7 Nov 2012 14:20:32 +0000 (14:20 +0000)]
ducativc1dec: move log where it will be displayed

5 years agoRevert "h264dec: Actually do not accept level 5.1 in High profiles"
Thibault Saunier [Fri, 2 Nov 2012 14:08:21 +0000 (11:08 -0300)]
Revert "h264dec: Actually do not accept level 5.1 in High profiles"

We had the confirmation that 5.1 HP is supported

This reverts commit bd0024c9af7016e897192e66bcb3c5717f9faf08.

5 years agoducatividdec: remove another leftover -strided caps remnant
Vincent Penquerc'h [Thu, 1 Nov 2012 10:06:21 +0000 (10:06 +0000)]
ducatividdec: remove another leftover -strided caps remnant

5 years agoducativc1dec: use const where appropriate
Vincent Penquerc'h [Thu, 1 Nov 2012 10:06:04 +0000 (10:06 +0000)]
ducativc1dec: use const where appropriate

5 years agoducatividdec: print timestamp difference, not start timestamp
Vincent Penquerc'h [Tue, 30 Oct 2012 11:34:34 +0000 (11:34 +0000)]
ducatividdec: print timestamp difference, not start timestamp

5 years agoducatih264enc: check dpb size calculation for negative values
Vincent Penquerc'h [Mon, 29 Oct 2012 14:47:47 +0000 (14:47 +0000)]
ducatih264enc: check dpb size calculation for negative values

It will happen if the required input parameters are unknown.

5 years agoducatividdec: fix typo in log
Vincent Penquerc'h [Mon, 29 Oct 2012 14:47:27 +0000 (14:47 +0000)]
ducatividdec: fix typo in log

5 years agoducatih264enc: add num-reorder-frames on caps
Vincent Penquerc'h [Mon, 29 Oct 2012 12:53:54 +0000 (12:53 +0000)]
ducatih264enc: add num-reorder-frames on caps

Since we know in advance how many frames will be required for
reordering, and since ducati doesn't seem to put that information
in the stream, we can set it in caps to tell the decoder it
doesn't have to use a conservative high bound that will most
likely be way too much.

5 years agoducatividenc/ducatividdec: time VIDENC/VIDDEC call time in ms
Vincent Penquerc'h [Mon, 29 Oct 2012 12:16:42 +0000 (12:16 +0000)]
ducatividenc/ducatividdec: time VIDENC/VIDDEC call time in ms

Makes it easier to read than ns, and the encoder was missing it.

5 years agoducatividdec: remove -strided caps remnants
Vincent Penquerc'h [Fri, 26 Oct 2012 14:37:55 +0000 (15:37 +0100)]
ducatividdec: remove -strided caps remnants

5 years agoducatividenc: add ordering info to encoded buffers
Vincent Penquerc'h [Fri, 26 Oct 2012 12:18:54 +0000 (13:18 +0100)]
ducatividenc: add ordering info to encoded buffers

Since we know about the ordering, doing so lets us avoid
needing a parser fill this in (if we have a parser that
can do it in the first place).

5 years agoducatividenc: properly timestamp frames to cater for B frames
Vincent Penquerc'h [Thu, 25 Oct 2012 18:03:08 +0000 (18:03 +0000)]
ducatividenc: properly timestamp frames to cater for B frames

This relies on an assumption about the codec which is explained
in a comment in the source.

5 years agoducatividdec: do not push all frames on IDR
Vincent Penquerc'h [Thu, 25 Oct 2012 17:59:33 +0000 (17:59 +0000)]
ducatividdec: do not push all frames on IDR

h264parse now generates an ordering that doesn't reset on IDR frames,
so we do not need to do this, which breaks in some cases, and we now
always rely on the ordering information we get.

5 years agoducatividenc: change default keyframe interval to 16
Vincent Penquerc'h [Wed, 24 Oct 2012 09:58:07 +0000 (10:58 +0100)]
ducatividenc: change default keyframe interval to 16

For some unclear reason, the ducati H264 encoder only accepts
some particular pairs of values for inter and intra intervals.
While 15 was working fine with no B frames, the default intra
interval does not like being used with 15, but accepts 16.

5 years agoducatih264enc: force inter-interval to 1 for low delay case
Vincent Penquerc'h [Wed, 24 Oct 2012 08:05:06 +0000 (09:05 +0100)]
ducatih264enc: force inter-interval to 1 for low delay case

This is a setup requirement of the ducati encoder.

5 years agoducatih264enc: fix B frames being disabled
Vincent Penquerc'h [Tue, 23 Oct 2012 17:01:02 +0000 (18:01 +0100)]
ducatih264enc: fix B frames being disabled

The dynparams also need overriding, or the settings in
params will get ignored.

5 years agoducatividenc: change the "None" rate-preset value to "none", for consistency
Vincent Penquerc'h [Tue, 23 Oct 2012 15:30:26 +0000 (16:30 +0100)]
ducatividenc: change the "None" rate-preset value to "none", for consistency

5 years agoducatividenc: remove duplicate casts and assignments
Vincent Penquerc'h [Tue, 23 Oct 2012 15:15:41 +0000 (16:15 +0100)]
ducatividenc: remove duplicate casts and assignments

5 years agoducatih264enc: override params after letting the base class set defaults
Vincent Penquerc'h [Tue, 23 Oct 2012 15:07:53 +0000 (16:07 +0100)]
ducatih264enc: override params after letting the base class set defaults

5 years agoMake max-reorder-frames an actual max, not a default max
Vincent Penquerc'h [Tue, 23 Oct 2012 13:04:16 +0000 (14:04 +0100)]
Make max-reorder-frames an actual max, not a default max

This is more user friendly, and more useful.

5 years agoducatividdec: do not reorder frames when reordering info is absent
Vincent Penquerc'h [Tue, 23 Oct 2012 10:01:34 +0000 (10:01 +0000)]
ducatividdec: do not reorder frames when reordering info is absent

This will happen for H264 if no parser is used, for instance.

5 years agoducatih264enc: default to using B frames
Vincent Penquerc'h [Mon, 22 Oct 2012 11:36:31 +0000 (12:36 +0100)]
ducatih264enc: default to using B frames

Also reword the inter-interval description for clarity,
it wasn't quite correct on the exact number of B frames.

5 years agoducativideodec: add a max-reorder-frames decoder property
Vincent Penquerc'h [Fri, 19 Oct 2012 09:37:09 +0000 (10:37 +0100)]
ducativideodec: add a max-reorder-frames decoder property

It allows giving a default high bound for the number of
previous frames to buffer in order to do reordering, for
those codecs with B frames. This will be used instead of
the default high bound of 16 if a stream limit can not
be found, allowing latency to be kept in check.

5 years agoducatividenc: log how many bytes the encoded data is
Vincent Penquerc'h [Fri, 19 Oct 2012 09:06:12 +0000 (10:06 +0100)]
ducatividenc: log how many bytes the encoded data is

5 years agoducatih264enc: expose number of B frames allowed
Vincent Penquerc'h [Thu, 18 Oct 2012 17:11:20 +0000 (18:11 +0100)]
ducatih264enc: expose number of B frames allowed

5 years agoMake the sync point determination codec specific
Vincent Penquerc'h [Thu, 18 Oct 2012 16:12:57 +0000 (17:12 +0100)]
Make the sync point determination codec specific

This removes some H264 special casing code from the base class.

5 years agoducatividenc: use the defines from the dce header where possible
Vincent Penquerc'h [Thu, 18 Oct 2012 16:02:36 +0000 (17:02 +0100)]
ducatividenc: use the defines from the dce header where possible

5 years agoducatimpeg4enc: set caps in configure
Vincent Penquerc'h [Thu, 18 Oct 2012 10:52:17 +0000 (10:52 +0000)]
ducatimpeg4enc: set caps in configure

If this is not done, then a buffer-alloc call will be done
downstream before caps are set, and downstream will not yet
know stream particularities such as width and height.

This fixes pipelines with ducatimpeg4enc ! ducatimpeg4dec
without an intervening mpeg4videoparse.

5 years agoducatih264enc: fix hrd-buffer-size property type
Vincent Penquerc'h [Wed, 17 Oct 2012 13:25:03 +0000 (13:25 +0000)]
ducatih264enc: fix hrd-buffer-size property type

It is unsigned, not signed.

5 years agoducatih264enc: include profile and level on src caps
Vincent Penquerc'h [Wed, 17 Oct 2012 13:18:21 +0000 (13:18 +0000)]
ducatih264enc: include profile and level on src caps

5 years agoducatih264dec: assume no B frames for baseline profile
Vincent Penquerc'h [Wed, 17 Oct 2012 12:53:48 +0000 (12:53 +0000)]
ducatih264dec: assume no B frames for baseline profile

... and constrained-baseline too, as this doesn't appear in my
H264 spec and it looks like it should be stricter than baseline
from the name.

5 years agoducatimpeg2dec: add frame reordering
Vincent Penquerc'h [Mon, 15 Oct 2012 11:53:36 +0000 (12:53 +0100)]
ducatimpeg2dec: add frame reordering

5 years agoducatividdec: move frame reordering to the base class
Vincent Penquerc'h [Mon, 15 Oct 2012 11:47:34 +0000 (12:47 +0100)]
ducatividdec: move frame reordering to the base class

It was made for H264, but MPEG2 is going to need it as well.
When reordering is enabled, the buffer end offset is used as
an opaque value to compare buffer. H264 sets it to the POC,
but it may be set to a timestamp, or anything else.

5 years agoducatih264dec: use num-reorder-frames to size the frame backlog array
Vincent Penquerc'h [Tue, 9 Oct 2012 13:04:46 +0000 (14:04 +0100)]
ducatih264dec: use num-reorder-frames to size the frame backlog array

Using the number of reference frames is incorrect, I did not realize
when I wrote this code that all frames may not be used as reference,
and so the numbers may differ.

5 years agoducatih264dec: reorder buffers by picture order count
Vincent Penquerc'h [Thu, 4 Oct 2012 14:47:49 +0000 (15:47 +0100)]
ducatih264dec: reorder buffers by picture order count

This fixes out of order frames when H264 video comes from
demuxers which timestamp by decoding order instead of
presentation order (such as MPEG/TS and AVI).

5 years agoh264enc: Expose the SliceMode property
Thibault Saunier [Wed, 3 Oct 2012 16:16:49 +0000 (13:16 -0300)]
h264enc: Expose the SliceMode  property

5 years agoh264enc: Expose the EntropyCodingMode property
Thibault Saunier [Wed, 3 Oct 2012 15:48:17 +0000 (12:48 -0300)]
h264enc: Expose the EntropyCodingMode property

5 years agovidenc: Allow 'None' and 'user defined' values for VidEncRatePreset
Thibault Saunier [Wed, 3 Oct 2012 15:15:05 +0000 (12:15 -0300)]
videnc: Allow 'None' and 'user defined' values for VidEncRatePreset

5 years agoh264enc: expose the HRDBufferSize parameter
Thibault Saunier [Wed, 3 Oct 2012 14:42:42 +0000 (11:42 -0300)]
h264enc: expose the HRDBufferSize parameter

5 years agoh264enc: Expose qpI/qpMinI/qpMaxI parameters
Thibault Saunier [Wed, 3 Oct 2012 11:05:01 +0000 (08:05 -0300)]
h264enc: Expose qpI/qpMinI/qpMaxI parameters

5 years agoh264enc: Expose the rcAlgo parameter
Thibault Saunier [Tue, 2 Oct 2012 13:41:24 +0000 (10:41 -0300)]
h264enc: Expose the rcAlgo parameter

5 years agoducatividdec: set number of out buffers to 0 when we don't pass any
Vincent Penquerc'h [Tue, 2 Oct 2012 16:25:32 +0000 (17:25 +0100)]
ducatividdec: set number of out buffers to 0 when we don't pass any

This fixes a spurious error from the codec on flushing, when we
call process with no output buffers, while still being configured
for two output buffers.

5 years agoducatih264enc: fix alignment misnamed align
Vincent Penquerc'h [Tue, 2 Oct 2012 12:48:09 +0000 (12:48 +0000)]
ducatih264enc: fix alignment misnamed align

5 years agoh264dec: Actually do not accept level 5.1 in High profiles
Thibault Saunier [Tue, 2 Oct 2012 09:36:56 +0000 (06:36 -0300)]
h264dec: Actually do not accept level 5.1 in High profiles

The codec documentation is not very clear about whether it is supported
or not. To avoid accepting files that would make the codec crashing
make sure not to use the ducati decoder in that case.

5 years agoh264dec: Set the maxNumRefFrames attribute we get from the caps
Thibault Saunier [Mon, 1 Oct 2012 17:28:04 +0000 (19:28 +0200)]
h264dec: Set the maxNumRefFrames attribute we get from the caps

In some corner case the one computed in ivahd did not correspond to
the real value of the file. We do have the right value ourself so
rely on it.

Fixes: "#101 decoder error / planet.mkv / DCE / glp1.x"

5 years agoh264dec: Set the max level to 5.1 in caps as IVAHD actually supports it
Thibault Saunier [Mon, 1 Oct 2012 17:27:07 +0000 (19:27 +0200)]
h264dec: Set the max level to 5.1 in caps as IVAHD actually supports it

+ Pass gstducatih264dec through gst-indent

5 years agoducatividenc: log extended error info, and use the correct one from _process
Vincent Penquerc'h [Tue, 25 Sep 2012 11:24:10 +0000 (11:24 +0000)]
ducatividenc: log extended error info, and use the correct one from _process

6 years agoducatih264enc: announce stream-format and align in template caps
Vincent Penquerc'h [Wed, 12 Sep 2012 10:10:27 +0000 (10:10 +0000)]
ducatih264enc: announce stream-format and align in template caps

Since these are set to specific values when the source pad is
set up, they are not subject to negotiation, so it's best to
announce them in the template caps so linking can fail early.

6 years agoducatividdec: do not tell ducati we pass input when we do not
Vincent Penquerc'h [Fri, 7 Sep 2012 08:52:53 +0000 (08:52 +0000)]
ducatividdec: do not tell ducati we pass input when we do not

6 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.

6 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.

6 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.

6 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.

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

6 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

6 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.

6 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

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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

6 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

6 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

6 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.

6 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

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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.

6 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)

6 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

6 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.

6 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

6 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).

6 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

6 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

6 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
above.

6 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

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