OSDN Git Service
Luca Barbato [Fri, 17 Jul 2015 01:07:07 +0000 (03:07 +0200)]
hap: Decode using optimal slices sizes
Enjoy some cache locality and use less threads.
About 5x speedup (from 60ms to 12ms to decode a 4k frame).
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Mon, 20 Jul 2015 14:50:43 +0000 (16:50 +0200)]
parseutil: Use non ambiguous aliases for uhd
uhd1 and uhd2 would be ambigous.
Janne Grunau [Mon, 20 Jul 2015 08:46:15 +0000 (10:46 +0200)]
arm: use a local label instead of the function symbol in ff_prefetch_arm
Avoids a relocation which might end out of range for thumb2.
Reported-By: Ludovic Fauvet <etix@videolan.org>
Bug-Id: https://bugs.webkit.org/show_bug.cgi?id=137022
CC: libav-stable@libav.org
Janne Grunau [Sun, 12 Jul 2015 16:30:09 +0000 (18:30 +0200)]
h264: aarch64: intra prediction optimisations
Vittorio Giovara [Wed, 15 Jul 2015 17:41:22 +0000 (18:41 +0100)]
Deprecate avctx.coded_frame
The rationale is that coded_frame was only used to communicate key_frame,
pict_type and quality to the caller, as well as a few other random fields,
in a non predictable, let alone consistent way.
There was agreement that there was no use case for coded_frame, as it is
a full-sized AVFrame container used for just 2-3 int-sized properties,
which shouldn't even belong into the AVCodecContext in the first place.
The appropriate AVPacket flag can be used instead of key_frame, while
quality is exported with the new AVPacketSideData quality factor.
There is no replacement for the other fields as they were unreliable,
mishandled or just not used at all.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:21 +0000 (18:41 +0100)]
Add a quality factor packet side data
This is necessary to preserve the quality information currently exported
with coded_frame. Add the new side data to every encoder that needs it,
and use it in avconv.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:20 +0000 (18:41 +0100)]
Gather all coded_frame allocations and free functions to a single place
Allocating coded_frame is what most encoders do anyway, so it makes
sense to always allocate and free it in a single place. Moreover a lot
of encoders freed the frame with av_freep() instead of the correct API
av_frame_free().
This bring uniformity to encoder behaviour and prevents applications
from erroneusly accessing this field when not allocated. Additionally
this helps isolating encoders that export information with coded_frame,
and heavily simplifies its deprecation.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:19 +0000 (18:41 +0100)]
flashsvenc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:18 +0000 (18:41 +0100)]
ffv1enc: Use input frame to set SAR and interlacing
Vittorio Giovara [Wed, 15 Jul 2015 17:41:17 +0000 (18:41 +0100)]
ffv1enc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:16 +0000 (18:41 +0100)]
qtrleenc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:15 +0000 (18:41 +0100)]
libtheoraenc: Keep coded_frame.key_frame a write-only variable
Vittorio Giovara [Wed, 15 Jul 2015 17:41:14 +0000 (18:41 +0100)]
libvpxenc: Do not entangle coded_frame
Keep coded_frame.key_frame a write-only variable.
Vittorio Giovara [Wed, 15 Jul 2015 17:41:13 +0000 (18:41 +0100)]
libxvid: Do not entangle coded_frame
Vittorio Giovara [Wed, 15 Jul 2015 17:41:12 +0000 (18:41 +0100)]
svq1enc: Do not entangle coded_frame
Vittorio Giovara [Wed, 15 Jul 2015 17:41:11 +0000 (18:41 +0100)]
proresenc: Do not entangle coded_frame
Vittorio Giovara [Wed, 15 Jul 2015 17:41:10 +0000 (18:41 +0100)]
a64multienc: Do not entangle coded_frame
This change (and the following ones of the same kind) is mainly to
simplify wrapping this section with an #if FF_API block later on.
No functional changes are applied, the fields of the context coded_frame
fields are directly initialized, instead of keeping a reference to the
coded_frame itself.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 15 Jul 2015 17:41:09 +0000 (18:41 +0100)]
roqvideoenc: Drop unneeded initialization
Its fields are never initialized to begin with.
Vittorio Giovara [Wed, 15 Jul 2015 17:41:08 +0000 (18:41 +0100)]
mpegvideo_enc: Drop unnneded initialization
coded_frame is already initialized where needed.
Luca Barbato [Thu, 16 Jul 2015 22:31:54 +0000 (00:31 +0200)]
parseutil: Add more resolution aliases
Add DCI 2k and 4k and uhd1 and uhd2.
Anton Khirnov [Tue, 14 Jul 2015 16:16:26 +0000 (18:16 +0200)]
qsvenc: properly handle asynchronous encoding
Wait for async_depth frames before syncing.
Anton Khirnov [Tue, 14 Jul 2015 16:16:26 +0000 (18:16 +0200)]
qsvdec: properly handle asynchronous decoding
Wait for async_depth frames before syncing.
Anton Khirnov [Thu, 16 Jul 2015 17:26:36 +0000 (19:26 +0200)]
af_resample: do not touch the timestamps if we are not resampling
This filter currently assumes that the input audio is continuous and
does some timestamps manipulation based on this assumption.
This is unnecessary if we are only converting the channel layout or the
sample format, without resampling. In such a case, just leave the
timestamps as they are.
Anton Khirnov [Wed, 15 Jul 2015 17:49:24 +0000 (19:49 +0200)]
avconv: split creating and (re-)configuring complex filtergraphs
The current code is less than straightforward due to the fact that
output streams can be created based on filtergraph definitions. This
change should make the code simpler and more readable. It will also be
useful in the future commits.
Anton Khirnov [Wed, 15 Jul 2015 15:17:54 +0000 (17:17 +0200)]
avconv: create the complex filtergraphs earlier
Since global options are processed before all the other options now, we
do not have to try creating the complex filtergraphs several times
anymore, it is enough to do it once after the input files are opened.
Anton Khirnov [Wed, 15 Jul 2015 13:51:39 +0000 (15:51 +0200)]
avconv: move the no streams failure to open_output_file()
It is a better place for it, there is no reason to wait until
transcode_init().
Anton Khirnov [Sun, 28 Jun 2015 08:49:19 +0000 (10:49 +0200)]
avconv: factor out the output stream initialization
Anton Khirnov [Sun, 28 Jun 2015 06:45:02 +0000 (08:45 +0200)]
avconv: use read_file() for reading the 2pass stats
Also, drop the now unused cmdutils_read_file(). There is no reason to
have two functions doing essentially the same thing.
Anton Khirnov [Sun, 28 Jun 2015 06:37:58 +0000 (08:37 +0200)]
avconv: move handling the 2pass logfile into avconv_opt
It more logically belongs there.
Anton Khirnov [Sun, 28 Jun 2015 06:03:44 +0000 (08:03 +0200)]
avconv: set the encoding/decoding_needed flags earlier
This will be useful in the following commits.
Anton Khirnov [Sun, 28 Jun 2015 05:41:22 +0000 (07:41 +0200)]
avconv: drop update_sample_fmt()
There is only one decoder left that supports this (libopus, which is not
used by default since we have a native one) and this code goes against
the avconv design, since it propagates information back from the encoder
to decoder.
Alexandra Hájková [Fri, 17 Jul 2015 12:17:07 +0000 (14:17 +0200)]
asfdec: make nb_sub to be unsigned int
number of subpayloads should be always positive
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Fri, 17 Jul 2015 12:17:06 +0000 (14:17 +0200)]
asfdec: read the replicated data in a separate function
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Fri, 17 Jul 2015 12:17:05 +0000 (14:17 +0200)]
asfdec: convert condition for the replicated data reading to be safer
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Alexandra Hájková [Fri, 17 Jul 2015 12:17:03 +0000 (14:17 +0200)]
asfdec: do not read replicated data when their length is 0
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Janne Grunau [Sun, 12 Jul 2015 15:35:21 +0000 (17:35 +0200)]
fate: add checkasm target
Janne Grunau [Sun, 12 Jul 2015 14:41:42 +0000 (16:41 +0200)]
checkasm: test all architectures with optimisations
Michael Niedermayer [Fri, 17 Jul 2015 16:07:58 +0000 (18:07 +0200)]
checkasm: Give macro a body to avoid potential unexpected syntax issues
Henrik Gramner [Fri, 17 Jul 2015 16:07:57 +0000 (18:07 +0200)]
checkasm: exit with status 0 instead of 1 if there are no tests to perform
Janne Grunau [Sun, 12 Jul 2015 15:03:13 +0000 (17:03 +0200)]
h264: arm: use intra pred8x8 functions only for chroma_format_idc <= 1
Luca Barbato [Fri, 17 Jul 2015 18:07:26 +0000 (20:07 +0200)]
cosmetics: Reformat checkasm tests
Henrik Gramner [Wed, 15 Jul 2015 22:10:28 +0000 (00:10 +0200)]
checkasm: Add unit tests for bswapdsp
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Henrik Gramner [Wed, 15 Jul 2015 22:10:27 +0000 (00:10 +0200)]
x86: bswapdsp: Don't treat 32-bit integers as 64-bit
The upper halves are not guaranteed to be zero in x86-64.
Also use `test` instead of `and` when the result isn't used for anything other
than as a branch condition, this allows some register moves to be eliminated.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Vittorio Giovara [Thu, 16 Jul 2015 15:11:04 +0000 (16:11 +0100)]
configure: Factor out g722dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:03 +0000 (16:11 +0100)]
configure: Factor out wmv2dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:02 +0000 (16:11 +0100)]
configure: Factor out vp8dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:01 +0000 (16:11 +0100)]
configure: Factor out vp56dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:11:00 +0000 (16:11 +0100)]
configure: Factor out rv34dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:10:59 +0000 (16:10 +0100)]
configure: Factor out mss34dsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:10:58 +0000 (16:10 +0100)]
configure: Factor out ividsp module
Vittorio Giovara [Thu, 16 Jul 2015 15:10:57 +0000 (16:10 +0100)]
configure: Factor out flacdsp module
Dave Yeo [Fri, 17 Jul 2015 05:21:11 +0000 (22:21 -0700)]
OS/2: Cleanup slib_create_def_cmd
Export symbols by name rather then ordinal.
Remove PROTMODE directive as it does not make sense for 32 bit library.
Also silences a warning from some linkers.
Signed-off-by: Dave Yeo <dave.r.yeo@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Fri, 10 Jul 2015 12:45:14 +0000 (14:45 +0200)]
libx264: Add support for the MPEG2 encoder
Vittorio Giovara [Fri, 10 Jul 2015 14:52:00 +0000 (15:52 +0100)]
hq_hqa: Fix decoding when INFO section is absent
Vittorio Giovara [Mon, 13 Jul 2015 23:11:16 +0000 (00:11 +0100)]
APIchanges: Mention lavfi and lavd identification symbol addition
Vittorio Giovara [Fri, 10 Jul 2015 17:46:19 +0000 (18:46 +0100)]
Revert "mov: Double-check that alias path is not an absolute path"
This reverts commit
9286de045968ad456d4e752651eec22de5e89060.
The change broke support for legit absolute file paths.
Reported-by: Maksym Veremeyenko <verem@m1stereo.tv>.
Kieran Kunhya [Wed, 8 Jul 2015 22:17:44 +0000 (23:17 +0100)]
h264: Add support for Closed Caption export
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Henrik Gramner [Mon, 13 Jul 2015 21:11:25 +0000 (23:11 +0200)]
checkasm: Add unit tests for h264qpel
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Tue, 30 Jun 2015 14:24:12 +0000 (16:24 +0200)]
mpegts: Mark the muxer as supporting variable fps
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Tue, 14 Jul 2015 10:31:15 +0000 (12:31 +0200)]
hevc: Split the struct setup from the pps parsing
Luca Barbato [Sun, 12 Jul 2015 13:48:00 +0000 (15:48 +0200)]
mp3: Forward seeking errors
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 12 Jul 2015 22:48:49 +0000 (00:48 +0200)]
hevc: Print the non-supported chroma_format_idc
And drop the spurious newline.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sun, 12 Jul 2015 22:48:48 +0000 (00:48 +0200)]
hevc: Factor out the pixel format mapping from the sps parser
The function will grow larger as more formats are supported.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Alexandra Hájková [Mon, 13 Jul 2015 10:02:03 +0000 (12:02 +0200)]
asfdec: prevent memory leaks found with Coverity Scan
Signed-off-by: Anton Khirnov <anton@khirnov.net>
James Almer [Mon, 13 Jul 2015 03:05:11 +0000 (00:05 -0300)]
dxva2_hevc: unbreak compilation after recent sps/pps changes
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Mon, 13 Jul 2015 06:56:53 +0000 (08:56 +0200)]
hevc_parser: fix standalone build with the hevc decoder disabled
The parser depends on hevc_ps, which in turn needs some data tables.
Found-by: James Almer <jamrial@gmail.com>
Anton Khirnov [Mon, 13 Jul 2015 05:49:03 +0000 (07:49 +0200)]
hevc_ps: make sure failing to decode an SPS always returns an error
Some of the goto err clauses do not set the error code. It seems better
to fall back on INVALIDDATA instead of adding it everywhere explicitly.
Anton Khirnov [Sun, 12 Jul 2015 16:57:10 +0000 (18:57 +0200)]
hevc: handle a NULL sps in set_sps() properly
This can happen in update_thread_context(), when the previous frame was
corrupted.
Anton Khirnov [Sun, 12 Jul 2015 16:52:02 +0000 (18:52 +0200)]
hevc: do not pass an entire HEVCContext into export_stream_params()
It only needs the parameter sets.
Anton Khirnov [Thu, 9 Jul 2015 17:34:51 +0000 (19:34 +0200)]
hevc_parser: parse and export some stream parameters
Particularly those that will be needed by the QSV decoder.
More can be added later as necessary.
Anton Khirnov [Thu, 9 Jul 2015 16:36:16 +0000 (18:36 +0200)]
hevc: improve a comment
That loop does the actual full decoding, so 'parse' can be misleading.
Anton Khirnov [Thu, 9 Jul 2015 16:33:52 +0000 (18:33 +0200)]
hevc: move splitting the packet into NALUs into a separate function
This function is independent of the decoding context, so we'll be able
to use it in the parser.
Anton Khirnov [Thu, 9 Jul 2015 16:11:44 +0000 (18:11 +0200)]
hevc: eliminate the second call to hls_nal_unit()
Also, make hls_nal_unit() work only on the provided NAL unit, without
requiring a whole decoding context.
This will allow splitting this code for reuse by the parser.
Anton Khirnov [Thu, 9 Jul 2015 16:01:08 +0000 (18:01 +0200)]
hevc: skip invalid/ignored NALUs when splitting the packet
There is no need to wait until actually decoding the NALU. This will
allow to get rid of the second hls_nal_unit() call later.
Anton Khirnov [Thu, 9 Jul 2015 12:22:43 +0000 (14:22 +0200)]
hevc: remove HEVCContext usage from hevc_ps
Factor out the parameter sets into a separate struct and use it instead.
This will allow us to reuse this code in the parser.
Anton Khirnov [Mon, 6 Jul 2015 19:53:13 +0000 (21:53 +0200)]
mpegvideo_parser: export pixel format and dimensions
Andreas Cadhalpun [Fri, 10 Jul 2015 17:41:43 +0000 (19:41 +0200)]
hevc: check slice address length
It is used as get_bits argument and reading 0 bits doesn't make sense.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Fri, 10 Jul 2015 07:57:41 +0000 (09:57 +0200)]
doc: add a section about building with libmfx
Anton Khirnov [Fri, 10 Jul 2015 07:31:24 +0000 (09:31 +0200)]
bytestream2: set the reader to the end when reading more than available
This prevents possible infinite loops with the calling code along the
lines of while (bytestream2_get_bytes_left()) { ... }, where the reader
does not advance.
CC: libav-stable@libav.org
Henrik Gramner [Sat, 11 Jul 2015 18:32:11 +0000 (20:32 +0200)]
Checkasm: assembly testing and benchmarking tool
It provides the following features:
* verify correctness by comparing output to the C version.
* detect failure to save and restore clobbered callee-saved registers.
* detect 32-bit parameters being used as if they were 64-bit in x86-64
(the upper halves are not guaranteed to be zero - but in practice
they very often are, which makes those bugs hard to spot otherwise).
* easy benchmarking.
Compile by running 'make checkasm'.
Execute by running 'tests/checkasm/checkasm'.
Optional arguments are '--bench' to run benchmarks for all functions,
'--bench=<pattern>' to run benchmarks for all functions that starts with
<pattern>, and '<integer>' to seed the PRNG for reproducible results.
Contains unit tests for most h264pred functions to get started, more tests
can be added afterwards using those as a reference.
Loosely based on code from x264. Currently only supports x86 and x86-64,
but additional architectures shouldn't be too much of an obstacle to add.
Note that functions with floating point parameters or floating point
return values are not supported. Some compiler-specific features or
preprocessor hacks would likely be required to add support for that.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
Hendrik Leppkes [Sun, 12 Jul 2015 10:34:13 +0000 (12:34 +0200)]
asfdec: always reset packet state after seeking
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Andreas Cadhalpun [Sat, 11 Jul 2015 16:40:31 +0000 (18:40 +0200)]
riff: Validate bitrate
Luca Barbato [Sat, 11 Jul 2015 15:38:26 +0000 (17:38 +0200)]
mp3: Make the seek more robust
Try to parse up to 4 packets to find the closest packet.
Reported-By: jan.schlueter@ofai.at
Luca Barbato [Sat, 11 Jul 2015 10:41:42 +0000 (12:41 +0200)]
riff: Use the correct logging context
Luca Barbato [Sat, 11 Jul 2015 09:47:13 +0000 (11:47 +0200)]
g726: Do not crash on user mistake
Properly report the sample rate as invalid
CC: libav-stable@libav.org
Dan Flett [Thu, 11 Jul 2013 16:16:07 +0000 (18:16 +0200)]
fbdev: Support the RGB565 colour space.
Tested on a Raspberry Pi.
Signed-off-by: Martin Storsjö <martin@martin.st>
Andreas Cadhalpun [Fri, 10 Jul 2015 19:59:32 +0000 (21:59 +0200)]
imc: Use correct position for flcoeffs2 calculation
flcoeffs2[pos] should be the log2 of flcoeffs1[pos].
flcoeffs1[0] can be 0 here, thus flcoeffs2[pos] gets set to -inf,
causing problems further down.
This seems to have been copied from imc_decode_level_coefficients in
commit
4eb4bb3 without updating the position.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Alexandra Hájková [Fri, 10 Jul 2015 10:39:58 +0000 (12:39 +0200)]
asfdec: Fix reading from the pipe
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Vittorio Giovara [Thu, 9 Jul 2015 19:36:19 +0000 (21:36 +0200)]
libvpx: Add the library header
Unbreak make checkheaders
Luca Barbato [Thu, 9 Jul 2015 12:42:34 +0000 (14:42 +0200)]
lavc: Add nvenc.h to the skipheader
Unbreak make checkheaders
Luca Barbato [Wed, 8 Jul 2015 22:18:19 +0000 (00:18 +0200)]
configure: Make the new qsv encoder depend on libmfx
Found-by: kropping
Henrik Gramner [Wed, 8 Jul 2015 20:33:53 +0000 (22:33 +0200)]
x86: Serialize rdtsc in read_time()
Improves the accuracy of measurements, especially in short sections.
To quote the Intel 64 and IA-32 Architectures Software Developer's Manual:
"The RDTSC instruction is not a serializing instruction. It does not necessarily
wait until all previous instructions have been executed before reading the counter.
Similarly, subsequent instructions may begin execution before the read operation
is performed. If software requires RDTSC to be executed only after all previous
instructions have completed locally, it can either use RDTSCP (if the processor
supports that instruction) or execute the sequence LFENCE;RDTSC."
SSE2 is a requirement for lfence so only use it on SSE2-capable systems.
Prefer lfence;rdtsc over rdtscp since rdtscp is supported on fewer systems.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Sebastien Zwickert [Wed, 8 Jul 2015 18:23:37 +0000 (20:23 +0200)]
avconv: vda: Unlock the pixel buffer once it is accessed
Avoid possible issues with memmapped hardware buffers in
case VDA is not doing a conversion on behalf of the user
and make the code more proper as working example.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Wed, 8 Jul 2015 14:14:47 +0000 (16:14 +0200)]
doc: Use the succinct syntax for the channelmap example
Mixing succinct and long syntax does not work.
Anton Khirnov [Tue, 16 Jun 2015 16:22:11 +0000 (18:22 +0200)]
lavc: add Intel libmfx-based HEVC encoder
Anton Khirnov [Tue, 16 Jun 2015 16:22:11 +0000 (18:22 +0200)]
lavc: add Intel libmfx-based MPEG2 encoder
Anton Khirnov [Tue, 30 Jun 2015 13:19:52 +0000 (15:19 +0200)]
hevc: split bitstream unescaping to a separate file
It will be useful in the QSV HEVC encoder.
Anton Khirnov [Tue, 30 Jun 2015 12:51:53 +0000 (14:51 +0200)]
hevc_ps: split the code for parsing the SPS and exporting it into the context
This will be useful in the later commits, where we want to parse an SPS
without having a whole decoding context.
Anton Khirnov [Tue, 30 Jun 2015 18:28:23 +0000 (20:28 +0200)]
lavf/hevc: pad the RBSP buffer as required by the bistream reader
Vittorio Giovara [Fri, 3 Jul 2015 15:46:44 +0000 (16:46 +0100)]
lavc: Deprecate avctx.rc_strategy
Only used by libxvid in ratecontrol module, so move it to a codec
private option.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>