mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
cosmetics: Fix spelling mistakes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
This commit is contained in:
parent
5c31eaa999
commit
41ed7ab45f
@ -377,7 +377,7 @@ version 0.7_beta2:
|
|||||||
- DPX image encoder
|
- DPX image encoder
|
||||||
- SMPTE 302M AES3 audio decoder
|
- SMPTE 302M AES3 audio decoder
|
||||||
- ffmpeg no longer quits after the 'q' key is pressed; use 'ctrl+c' instead
|
- ffmpeg no longer quits after the 'q' key is pressed; use 'ctrl+c' instead
|
||||||
- 9bit and 10bit per sample support in the H.264 decoder
|
- 9 bits and 10 bits per sample support in the H.264 decoder
|
||||||
|
|
||||||
|
|
||||||
version 0.7_beta1:
|
version 0.7_beta1:
|
||||||
@ -732,7 +732,7 @@ version 0.4.9-pre1:
|
|||||||
- rate distorted optimal lambda->qp support
|
- rate distorted optimal lambda->qp support
|
||||||
- AAC encoding with libfaac
|
- AAC encoding with libfaac
|
||||||
- Sunplus JPEG codec (SP5X) support
|
- Sunplus JPEG codec (SP5X) support
|
||||||
- use Lagrange multipler instead of QP for ratecontrol
|
- use Lagrange multiplier instead of QP for ratecontrol
|
||||||
- Theora/VP3 decoding support
|
- Theora/VP3 decoding support
|
||||||
- XA and ADX ADPCM codecs
|
- XA and ADX ADPCM codecs
|
||||||
- export MPEG-2 active display area / pan scan
|
- export MPEG-2 active display area / pan scan
|
||||||
|
6
avconv.c
6
avconv.c
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* avconv main
|
* avconv main
|
||||||
* Copyright (c) 2000-2011 The libav developers.
|
* Copyright (c) 2000-2011 The Libav developers
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
@ -1630,7 +1630,7 @@ static int init_output_bsfs(OutputStream *ost)
|
|||||||
for (i = 0; i < ost->nb_bitstream_filters; i++) {
|
for (i = 0; i < ost->nb_bitstream_filters; i++) {
|
||||||
ret = av_bsf_alloc(ost->bitstream_filters[i], &ctx);
|
ret = av_bsf_alloc(ost->bitstream_filters[i], &ctx);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
av_log(NULL, AV_LOG_ERROR, "Error allocating a bistream filter context\n");
|
av_log(NULL, AV_LOG_ERROR, "Error allocating a bitstream filter context\n");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
ost->bsf_ctx[i] = ctx;
|
ost->bsf_ctx[i] = ctx;
|
||||||
@ -1644,7 +1644,7 @@ static int init_output_bsfs(OutputStream *ost)
|
|||||||
|
|
||||||
ret = av_bsf_init(ctx);
|
ret = av_bsf_init(ctx);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
av_log(NULL, AV_LOG_ERROR, "Error initializing bistream filter: %s\n",
|
av_log(NULL, AV_LOG_ERROR, "Error initializing bitstream filter: %s\n",
|
||||||
ost->bitstream_filters[i]->name);
|
ost->bitstream_filters[i]->name);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -760,7 +760,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
|
|||||||
ic->flags |= AVFMT_FLAG_NONBLOCK;
|
ic->flags |= AVFMT_FLAG_NONBLOCK;
|
||||||
ic->interrupt_callback = int_cb;
|
ic->interrupt_callback = int_cb;
|
||||||
|
|
||||||
/* open the input file with generic libav function */
|
/* open the input file with generic Libav function */
|
||||||
err = avformat_open_input(&ic, filename, file_iformat, &o->g->format_opts);
|
err = avformat_open_input(&ic, filename, file_iformat, &o->g->format_opts);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
print_error(filename, err);
|
print_error(filename, err);
|
||||||
|
4
avplay.c
4
avplay.c
@ -1362,7 +1362,7 @@ static int output_picture2(PlayerState *is, AVFrame *src_frame, double pts1, int
|
|||||||
}
|
}
|
||||||
/* update video clock for next frame */
|
/* update video clock for next frame */
|
||||||
frame_delay = av_q2d(is->video_dec->time_base);
|
frame_delay = av_q2d(is->video_dec->time_base);
|
||||||
/* for MPEG2, the frame can be repeated, so we update the
|
/* For MPEG-2, the frame can be repeated, so we update the
|
||||||
clock accordingly */
|
clock accordingly */
|
||||||
frame_delay += src_frame->repeat_pict * (frame_delay * 0.5);
|
frame_delay += src_frame->repeat_pict * (frame_delay * 0.5);
|
||||||
is->video_clock += frame_delay;
|
is->video_clock += frame_delay;
|
||||||
@ -2123,7 +2123,7 @@ static int stream_component_open(PlayerState *is, int stream_index)
|
|||||||
/* init averaging filter */
|
/* init averaging filter */
|
||||||
is->audio_diff_avg_coef = exp(log(0.01) / AUDIO_DIFF_AVG_NB);
|
is->audio_diff_avg_coef = exp(log(0.01) / AUDIO_DIFF_AVG_NB);
|
||||||
is->audio_diff_avg_count = 0;
|
is->audio_diff_avg_count = 0;
|
||||||
/* since we do not have a precise anough audio fifo fullness,
|
/* since we do not have a precise enough audio FIFO fullness,
|
||||||
we correct audio sync only if larger than this threshold */
|
we correct audio sync only if larger than this threshold */
|
||||||
is->audio_diff_threshold = 2.0 * SDL_AUDIO_BUFFER_SIZE / avctx->sample_rate;
|
is->audio_diff_threshold = 2.0 * SDL_AUDIO_BUFFER_SIZE / avctx->sample_rate;
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ static int use_value_sexagesimal_format = 0;
|
|||||||
/* globals */
|
/* globals */
|
||||||
static const OptionDef *options;
|
static const OptionDef *options;
|
||||||
|
|
||||||
/* AVprobe context */
|
/* avprobe context */
|
||||||
static const char *input_filename;
|
static const char *input_filename;
|
||||||
static AVInputFormat *iformat = NULL;
|
static AVInputFormat *iformat = NULL;
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ API changes, most recent first:
|
|||||||
|
|
||||||
2016-xx-xx - xxxxxxx - lavc 57.15.0 - avcodec.h
|
2016-xx-xx - xxxxxxx - lavc 57.15.0 - avcodec.h
|
||||||
Add a new bitstream filtering API working with AVPackets.
|
Add a new bitstream filtering API working with AVPackets.
|
||||||
Deprecate the old bistream filtering API.
|
Deprecate the old bitstream filtering API.
|
||||||
|
|
||||||
2016-xx-xx - xxxxxxx - lavfi 6.3.0 - avfilter.h
|
2016-xx-xx - xxxxxxx - lavfi 6.3.0 - avfilter.h
|
||||||
Add AVFilterContext.hw_device_ctx.
|
Add AVFilterContext.hw_device_ctx.
|
||||||
@ -501,7 +501,7 @@ API changes, most recent first:
|
|||||||
|
|
||||||
2013-08-05 - f824535 - lavc 55.13.0 - avcodec.h
|
2013-08-05 - f824535 - lavc 55.13.0 - avcodec.h
|
||||||
Deprecate the bitstream-related members from struct AVVDPAUContext.
|
Deprecate the bitstream-related members from struct AVVDPAUContext.
|
||||||
The bistream buffers no longer need to be explicitly freed.
|
The bitstream buffers no longer need to be explicitly freed.
|
||||||
|
|
||||||
2013-08-05 - 549294f - lavc 55.12.0 - avcodec.h
|
2013-08-05 - 549294f - lavc 55.12.0 - avcodec.h
|
||||||
Deprecate the CODEC_CAP_HWACCEL_VDPAU codec capability. Use CODEC_CAP_HWACCEL
|
Deprecate the CODEC_CAP_HWACCEL_VDPAU codec capability. Use CODEC_CAP_HWACCEL
|
||||||
@ -591,7 +591,7 @@ lavd 54.0.0, lavfi 3.5.0
|
|||||||
* base -- is now stored in AVBufferRef
|
* base -- is now stored in AVBufferRef
|
||||||
* reference, type, buffer_hints -- are unnecessary in the new API
|
* reference, type, buffer_hints -- are unnecessary in the new API
|
||||||
* hwaccel_picture_private, owner, thread_opaque -- should not
|
* hwaccel_picture_private, owner, thread_opaque -- should not
|
||||||
have been acessed from outside of lavc
|
have been accessed from outside of lavc
|
||||||
* qscale_table, qstride, qscale_type, mbskip_table, motion_val,
|
* qscale_table, qstride, qscale_type, mbskip_table, motion_val,
|
||||||
mb_type, dct_coeff, ref_index -- mpegvideo-specific tables,
|
mb_type, dct_coeff, ref_index -- mpegvideo-specific tables,
|
||||||
which are not exported anymore.
|
which are not exported anymore.
|
||||||
|
@ -641,7 +641,7 @@ For DXVA2, this option should contain the number of the display adapter to use.
|
|||||||
If this option is not specified, the default adapter is used.
|
If this option is not specified, the default adapter is used.
|
||||||
|
|
||||||
@item qsv
|
@item qsv
|
||||||
For QSV, this option corresponds to the valus of MFX_IMPL_* . Allowed values
|
For QSV, this option corresponds to the values of MFX_IMPL_* . Allowed values
|
||||||
are:
|
are:
|
||||||
@table @option
|
@table @option
|
||||||
@item auto
|
@item auto
|
||||||
@ -886,7 +886,7 @@ avconv -i infile -streamid 0:33 -streamid 1:36 out.ts
|
|||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{output,per-stream})
|
@item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{output,per-stream})
|
||||||
Set bitstream filters for matching streams. @var{bistream_filters} is
|
Set bitstream filters for matching streams. @var{bitstream_filters} is
|
||||||
a comma-separated list of bitstream filters. Use the @code{-bsfs} option
|
a comma-separated list of bitstream filters. Use the @code{-bsfs} option
|
||||||
to get the list of bitstream filters.
|
to get the list of bitstream filters.
|
||||||
@example
|
@example
|
||||||
|
@ -20,7 +20,7 @@ avplay [options] @file{input_file}
|
|||||||
@chapter Description
|
@chapter Description
|
||||||
@c man begin DESCRIPTION
|
@c man begin DESCRIPTION
|
||||||
|
|
||||||
AVplay is a very simple and portable media player using the Libav
|
avplay is a very simple and portable media player using the Libav
|
||||||
libraries and the SDL library. It is mostly used as a testbed for the
|
libraries and the SDL library. It is mostly used as a testbed for the
|
||||||
various Libav APIs.
|
various Libav APIs.
|
||||||
@c man end
|
@c man end
|
||||||
@ -171,7 +171,7 @@ Seek to percentage in file corresponding to fraction of width.
|
|||||||
@ignore
|
@ignore
|
||||||
|
|
||||||
@setfilename avplay
|
@setfilename avplay
|
||||||
@settitle AVplay media player
|
@settitle avplay media player
|
||||||
|
|
||||||
@c man begin SEEALSO
|
@c man begin SEEALSO
|
||||||
avconv(1), avprobe(1) and the Libav HTML documentation
|
avconv(1), avprobe(1) and the Libav HTML documentation
|
||||||
|
@ -19,7 +19,7 @@ are used to precisely specify which stream(s) does a given option belong to.
|
|||||||
|
|
||||||
A stream specifier is a string generally appended to the option name and
|
A stream specifier is a string generally appended to the option name and
|
||||||
separated from it by a colon. E.g. @code{-codec:a:1 ac3} option contains
|
separated from it by a colon. E.g. @code{-codec:a:1 ac3} option contains
|
||||||
@code{a:1} stream specifer, which matches the second audio stream. Therefore it
|
@code{a:1} stream specifier, which matches the second audio stream. Therefore it
|
||||||
would select the ac3 codec for the second audio stream.
|
would select the ac3 codec for the second audio stream.
|
||||||
|
|
||||||
A stream specifier can match several stream, the option is then applied to all
|
A stream specifier can match several stream, the option is then applied to all
|
||||||
|
@ -15,7 +15,7 @@ md5.c MD5 Message-Digest Algorithm
|
|||||||
rational.c code to perform exact calculations with rational numbers
|
rational.c code to perform exact calculations with rational numbers
|
||||||
tree.c generic AVL tree
|
tree.c generic AVL tree
|
||||||
crc.c generic CRC checksumming code
|
crc.c generic CRC checksumming code
|
||||||
integer.c 128bit integer math
|
integer.c 128-bit integer math
|
||||||
lls.c
|
lls.c
|
||||||
mathematics.c greatest common divisor, integer sqrt, integer log2, ...
|
mathematics.c greatest common divisor, integer sqrt, integer log2, ...
|
||||||
mem.c memory allocation routines with guaranteed alignment
|
mem.c memory allocation routines with guaranteed alignment
|
||||||
|
@ -23,7 +23,7 @@ player. See @file{doc/examples/output.c} to use it to generate
|
|||||||
audio or video streams.
|
audio or video streams.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@section Integrating libav in your program
|
@section Integrating Libav in your program
|
||||||
|
|
||||||
Shared libraries should be used whenever is possible in order to reduce
|
Shared libraries should be used whenever is possible in order to reduce
|
||||||
the effort distributors have to pour to support programs and to ensure
|
the effort distributors have to pour to support programs and to ensure
|
||||||
@ -617,7 +617,7 @@ least make sure that it does not break anything.
|
|||||||
If the code changed has already a test present in FATE you should run it,
|
If the code changed has already a test present in FATE you should run it,
|
||||||
otherwise it is advised to add it.
|
otherwise it is advised to add it.
|
||||||
|
|
||||||
Improvements to codec or demuxer might change the FATE results. Make sure
|
Improvements to a codec or demuxer might change the FATE results. Make sure
|
||||||
to commit the update reference with the change and to explain in the comment
|
to commit the update reference with the change and to explain in the comment
|
||||||
why the expected result changed.
|
why the expected result changed.
|
||||||
|
|
||||||
|
@ -803,8 +803,8 @@ Use @var{0} to disable alpha plane coding.
|
|||||||
@subsection Speed considerations
|
@subsection Speed considerations
|
||||||
|
|
||||||
In the default mode of operation the encoder has to honor frame constraints
|
In the default mode of operation the encoder has to honor frame constraints
|
||||||
(i.e. not produc frames with size bigger than requested) while still making
|
(i.e. not produce frames with a size larger than requested) while still making
|
||||||
output picture as good as possible.
|
the output picture as good as possible.
|
||||||
A frame containing a lot of small details is harder to compress and the encoder
|
A frame containing a lot of small details is harder to compress and the encoder
|
||||||
would spend more time searching for appropriate quantizers for each slice.
|
would spend more time searching for appropriate quantizers for each slice.
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@
|
|||||||
* libavcodec API use example.
|
* libavcodec API use example.
|
||||||
*
|
*
|
||||||
* @example avcodec.c
|
* @example avcodec.c
|
||||||
* Note that this library only handles codecs (mpeg, mpeg4, etc...),
|
* Note that this library only handles codecs (MPEG, MPEG-4, etc...),
|
||||||
* not file formats (avi, vob, etc...). See library 'libavformat' for the
|
* not file formats (AVI, VOB, etc...). See library 'libavformat' for the
|
||||||
* format handling
|
* format handling.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -234,7 +234,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
|
|||||||
|
|
||||||
printf("Audio decoding\n");
|
printf("Audio decoding\n");
|
||||||
|
|
||||||
/* find the mpeg audio decoder */
|
/* find the MPEG audio decoder */
|
||||||
codec = avcodec_find_decoder(AV_CODEC_ID_MP2);
|
codec = avcodec_find_decoder(AV_CODEC_ID_MP2);
|
||||||
if (!codec) {
|
if (!codec) {
|
||||||
fprintf(stderr, "codec not found\n");
|
fprintf(stderr, "codec not found\n");
|
||||||
@ -424,7 +424,7 @@ static void video_encode_example(const char *filename)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* add sequence end code to have a real mpeg file */
|
/* add sequence end code to have a real MPEG file */
|
||||||
fwrite(endcode, 1, sizeof(endcode), f);
|
fwrite(endcode, 1, sizeof(endcode), f);
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
@ -465,12 +465,12 @@ static void video_decode_example(const char *outfilename, const char *filename)
|
|||||||
|
|
||||||
av_init_packet(&avpkt);
|
av_init_packet(&avpkt);
|
||||||
|
|
||||||
/* set end of buffer to 0 (this ensures that no overreading happens for damaged mpeg streams) */
|
/* set end of buffer to 0 (this ensures that no overreading happens for damaged MPEG streams) */
|
||||||
memset(inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
memset(inbuf + INBUF_SIZE, 0, AV_INPUT_BUFFER_PADDING_SIZE);
|
||||||
|
|
||||||
printf("Video decoding\n");
|
printf("Video decoding\n");
|
||||||
|
|
||||||
/* find the mpeg1 video decoder */
|
/* find the MPEG-1 video decoder */
|
||||||
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO);
|
codec = avcodec_find_decoder(AV_CODEC_ID_MPEG1VIDEO);
|
||||||
if (!codec) {
|
if (!codec) {
|
||||||
fprintf(stderr, "codec not found\n");
|
fprintf(stderr, "codec not found\n");
|
||||||
@ -545,9 +545,9 @@ static void video_decode_example(const char *outfilename, const char *filename)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* some codecs, such as MPEG, transmit the I and P frame with a
|
/* Some codecs, such as MPEG, transmit the I- and P-frame with a
|
||||||
latency of one frame. You must do the following to have a
|
latency of one frame. You must do the following to have a
|
||||||
chance to get the last frame of the video */
|
chance to get the last frame of the video. */
|
||||||
avpkt.data = NULL;
|
avpkt.data = NULL;
|
||||||
avpkt.size = 0;
|
avpkt.size = 0;
|
||||||
len = avcodec_decode_video2(c, picture, &got_picture, &avpkt);
|
len = avcodec_decode_video2(c, picture, &got_picture, &avpkt);
|
||||||
|
@ -365,7 +365,7 @@ static void add_video_stream(OutputStream *ost, AVFormatContext *oc,
|
|||||||
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
|
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
|
||||||
c->pix_fmt = STREAM_PIX_FMT;
|
c->pix_fmt = STREAM_PIX_FMT;
|
||||||
if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
|
if (c->codec_id == AV_CODEC_ID_MPEG2VIDEO) {
|
||||||
/* just for testing, we also add B frames */
|
/* just for testing, we also add B-frames */
|
||||||
c->max_b_frames = 2;
|
c->max_b_frames = 2;
|
||||||
}
|
}
|
||||||
if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) {
|
if (c->codec_id == AV_CODEC_ID_MPEG1VIDEO) {
|
||||||
|
@ -1541,7 +1541,7 @@ For more information, see
|
|||||||
@section gradfun
|
@section gradfun
|
||||||
|
|
||||||
Fix the banding artifacts that are sometimes introduced into nearly flat
|
Fix the banding artifacts that are sometimes introduced into nearly flat
|
||||||
regions by truncation to 8bit colordepth.
|
regions by truncation to 8-bit colordepth.
|
||||||
Interpolate the gradients that should go where the bands are, and
|
Interpolate the gradients that should go where the bands are, and
|
||||||
dither them.
|
dither them.
|
||||||
|
|
||||||
@ -1900,7 +1900,7 @@ libopencv function @code{cvSmooth}.
|
|||||||
Overlay one video on top of another.
|
Overlay one video on top of another.
|
||||||
|
|
||||||
It takes two inputs and has one output. The first input is the "main"
|
It takes two inputs and has one output. The first input is the "main"
|
||||||
video on which the second input is overlayed.
|
video on which the second input is overlaid.
|
||||||
|
|
||||||
It accepts the following parameters:
|
It accepts the following parameters:
|
||||||
|
|
||||||
@ -2327,7 +2327,7 @@ select='not(mod(n\,100))'
|
|||||||
# Select only frames contained in the 10-20 time interval
|
# Select only frames contained in the 10-20 time interval
|
||||||
select='gte(t\,10)*lte(t\,20)'
|
select='gte(t\,10)*lte(t\,20)'
|
||||||
|
|
||||||
# Select only I frames contained in the 10-20 time interval
|
# Select only I-frames contained in the 10-20 time interval
|
||||||
select='gte(t\,10)*lte(t\,20)*eq(pict_type\,I)'
|
select='gte(t\,10)*lte(t\,20)*eq(pict_type\,I)'
|
||||||
|
|
||||||
# Select frames with a minimum distance of 10 seconds
|
# Select frames with a minimum distance of 10 seconds
|
||||||
@ -2957,7 +2957,7 @@ number or a valid video frame rate abbreviation. The default value is
|
|||||||
|
|
||||||
The following graph description will generate a red source
|
The following graph description will generate a red source
|
||||||
with an opacity of 0.2, with size "qcif" and a frame rate of 10
|
with an opacity of 0.2, with size "qcif" and a frame rate of 10
|
||||||
frames per second, which will be overlayed over the source connected
|
frames per second, which will be overlaid over the source connected
|
||||||
to the pad with identifier "in":
|
to the pad with identifier "in":
|
||||||
|
|
||||||
@example
|
@example
|
||||||
@ -3070,7 +3070,7 @@ A '|'-separated list of parameters to pass to the frei0r source.
|
|||||||
An example:
|
An example:
|
||||||
@example
|
@example
|
||||||
# Generate a frei0r partik0l source with size 200x200 and framerate 10
|
# Generate a frei0r partik0l source with size 200x200 and framerate 10
|
||||||
# which is overlayed on the overlay filter main input
|
# which is overlaid on the overlay filter's main input
|
||||||
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
|
frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@ -369,7 +369,7 @@ The syntax is:
|
|||||||
-grab_x @var{x_offset} -grab_y @var{y_offset}
|
-grab_x @var{x_offset} -grab_y @var{y_offset}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
Set the grabing region coordinates. The are expressed as offset from the top left
|
Set the grabbing region coordinates. The are expressed as offset from the top left
|
||||||
corner of the X11 window. The default value is 0.
|
corner of the X11 window. The default value is 0.
|
||||||
|
|
||||||
@c man end INPUT DEVICES
|
@c man end INPUT DEVICES
|
||||||
|
@ -29,7 +29,7 @@ NUT has some variants signaled by using the flags field in its main header.
|
|||||||
|
|
||||||
The BROADCAST variant provides a secondary time reference to facilitate
|
The BROADCAST variant provides a secondary time reference to facilitate
|
||||||
detecting endpoint latency and network delays.
|
detecting endpoint latency and network delays.
|
||||||
It assumes all the endpoint clocks are syncronized.
|
It assumes all the endpoint clocks are synchronized.
|
||||||
To be used in real-time scenarios.
|
To be used in real-time scenarios.
|
||||||
|
|
||||||
@section PIPE
|
@section PIPE
|
||||||
|
@ -7,7 +7,7 @@ If you plan to do non-x86 architecture specific optimizations (SIMD normally),
|
|||||||
then take a look in the x86/ directory, as most important functions are
|
then take a look in the x86/ directory, as most important functions are
|
||||||
already optimized for MMX.
|
already optimized for MMX.
|
||||||
|
|
||||||
If you want to do x86 optimizations then you can either try to finetune the
|
If you want to do x86 optimizations then you can either try to fine-tune the
|
||||||
stuff in the x86 directory or find some other functions in the C source to
|
stuff in the x86 directory or find some other functions in the C source to
|
||||||
optimize, but there aren't many left.
|
optimize, but there aren't many left.
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ general x86 registers (e.g. eax) as well as XMM registers. This last one is
|
|||||||
particularly important on Win64, where xmm6-15 are callee-save, and not
|
particularly important on Win64, where xmm6-15 are callee-save, and not
|
||||||
restoring their contents leads to undefined results. In external asm (e.g.
|
restoring their contents leads to undefined results. In external asm (e.g.
|
||||||
yasm), you do this by using:
|
yasm), you do this by using:
|
||||||
cglobal functon_name, num_args, num_regs, num_xmm_regs
|
cglobal function_name, num_args, num_regs, num_xmm_regs
|
||||||
In inline asm, you specify clobbered registers at the end of your asm:
|
In inline asm, you specify clobbered registers at the end of your asm:
|
||||||
__asm__(".." ::: "%eax").
|
__asm__(".." ::: "%eax").
|
||||||
If gcc is not set to support sse (-msse) it will not accept xmm registers
|
If gcc is not set to support sse (-msse) it will not accept xmm registers
|
||||||
|
@ -62,7 +62,7 @@ bash ./configure
|
|||||||
@section Darwin (OS X, iPhone)
|
@section Darwin (OS X, iPhone)
|
||||||
|
|
||||||
The toolchain provided with Xcode is sufficient to build the basic
|
The toolchain provided with Xcode is sufficient to build the basic
|
||||||
unacelerated code.
|
unaccelerated code.
|
||||||
|
|
||||||
OS X on PowerPC or ARM (iPhone) requires a preprocessor from
|
OS X on PowerPC or ARM (iPhone) requires a preprocessor from
|
||||||
@url{git://git.libav.org/gas-preprocessor.git} to build the optimized
|
@url{git://git.libav.org/gas-preprocessor.git} to build the optimized
|
||||||
@ -137,7 +137,7 @@ pacman -S make pkgconf diffutils
|
|||||||
pacman -S mingw-w64-x86_64-yasm mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL
|
pacman -S mingw-w64-x86_64-yasm mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
To target 32bit replace the @code{x86_64} with @code{i686} in the command above.
|
To target 32 bits replace @code{x86_64} with @code{i686} in the command above.
|
||||||
|
|
||||||
@section Microsoft Visual C++ or Intel C++ Compiler for Windows
|
@section Microsoft Visual C++ or Intel C++ Compiler for Windows
|
||||||
|
|
||||||
|
@ -10,12 +10,12 @@ Current (simplified) Architecture:
|
|||||||
/ \
|
/ \
|
||||||
special converter [Input to YUV converter]
|
special converter [Input to YUV converter]
|
||||||
| |
|
| |
|
||||||
| (8bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:0:0 )
|
| (8-bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:0:0 )
|
||||||
| |
|
| |
|
||||||
| v
|
| v
|
||||||
| Horizontal scaler
|
| Horizontal scaler
|
||||||
| |
|
| |
|
||||||
| (15bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:1:1 / 4:0:0 )
|
| (15-bit YUV 4:4:4 / 4:2:2 / 4:2:0 / 4:1:1 / 4:0:0 )
|
||||||
| |
|
| |
|
||||||
| v
|
| v
|
||||||
| Vertical scaler and output converter
|
| Vertical scaler and output converter
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
This is a quick description of the viterbi aka dynamic programing
|
This is a quick description of the Viterbi aka dynamic programming
|
||||||
algorthm.
|
algorithm.
|
||||||
|
|
||||||
Its reason for existence is that wikipedia has become very poor on
|
Its reason for existence is that Wikipedia has become very poor on
|
||||||
describing algorithms in a way that makes it useable for understanding
|
describing algorithms in a way that makes it useable for understanding
|
||||||
them or anything else actually. It tends now to describe the very same
|
them or anything else actually. It tends now to describe the very same
|
||||||
algorithm under 50 different names and pages with few understandable
|
algorithm under 50 different names and pages with few understandable
|
||||||
@ -41,7 +41,7 @@ readable)
|
|||||||
Our goal is to find a path from left to right through it which
|
Our goal is to find a path from left to right through it which
|
||||||
minimizes the sum of the score of all edges.
|
minimizes the sum of the score of all edges.
|
||||||
(and of course left/right is just a convention here it could be top down too)
|
(and of course left/right is just a convention here it could be top down too)
|
||||||
Similarly the minimum could be the maximum by just fliping the sign,
|
Similarly the minimum could be the maximum by just flipping the sign,
|
||||||
Example of a path with scores:
|
Example of a path with scores:
|
||||||
|
|
||||||
O O O O O O O
|
O O O O O O O
|
||||||
@ -53,7 +53,7 @@ Example of a path with scores:
|
|||||||
O O O O O O-1-O---> (sum here is 24)
|
O O O O O O-1-O---> (sum here is 24)
|
||||||
|
|
||||||
|
|
||||||
The viterbi algorthm now solves this simply column by column
|
The Viterbi algorithm now solves this simply column by column
|
||||||
For the previous column each point has a best path and a associated
|
For the previous column each point has a best path and a associated
|
||||||
score:
|
score:
|
||||||
|
|
||||||
@ -100,10 +100,10 @@ trivial given we know the previous column best paths and scores:
|
|||||||
O 0 4
|
O 0 4
|
||||||
|
|
||||||
|
|
||||||
the viterbi algorthm continues exactly like this column for column until the
|
the Viterbi algorithm continues exactly like this column for column until the
|
||||||
end and then just picks the path with the best score (above that would be the
|
end and then just picks the path with the best score (above that would be the
|
||||||
one with score 3)
|
one with score 3)
|
||||||
|
|
||||||
|
|
||||||
Author: Michael niedermayer
|
Author: Michael Niedermayer
|
||||||
Copyright LGPL
|
Copyright LGPL
|
||||||
|
@ -1916,8 +1916,8 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce,
|
|||||||
avpriv_request_sample(ac->avctx, "SSR");
|
avpriv_request_sample(ac->avctx, "SSR");
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
}
|
}
|
||||||
// I see no textual basis in the spec for this occuring after SSR gain
|
// I see no textual basis in the spec for this occurring after SSR gain
|
||||||
// control, but this is what both reference and real implmentations do
|
// control, but this is what both reference and real implementations do
|
||||||
if (tns->present && er_syntax)
|
if (tns->present && er_syntax)
|
||||||
if (decode_tns(ac, tns, gb, ics) < 0)
|
if (decode_tns(ac, tns, gb, ics) < 0)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
@ -3047,7 +3047,7 @@ static av_cold int aac_decode_close(AVCodecContext *avctx)
|
|||||||
|
|
||||||
struct LATMContext {
|
struct LATMContext {
|
||||||
AACContext aac_ctx; ///< containing AACContext
|
AACContext aac_ctx; ///< containing AACContext
|
||||||
int initialized; ///< initilized after a valid extradata was seen
|
int initialized; ///< initialized after a valid extradata was seen
|
||||||
|
|
||||||
// parser data
|
// parser data
|
||||||
int audio_mux_version_A; ///< LATM syntax version
|
int audio_mux_version_A; ///< LATM syntax version
|
||||||
|
@ -130,7 +130,7 @@ av_cold void ff_aac_sbr_init(void)
|
|||||||
/** Places SBR in pure upsampling mode. */
|
/** Places SBR in pure upsampling mode. */
|
||||||
static void sbr_turnoff(SpectralBandReplication *sbr) {
|
static void sbr_turnoff(SpectralBandReplication *sbr) {
|
||||||
sbr->start = 0;
|
sbr->start = 0;
|
||||||
// Init defults used in pure upsampling mode
|
// Init defaults used in pure upsampling mode
|
||||||
sbr->kx[1] = 32; //Typo in spec, kx' inits to 32
|
sbr->kx[1] = 32; //Typo in spec, kx' inits to 32
|
||||||
sbr->m[1] = 0;
|
sbr->m[1] = 0;
|
||||||
// Reset values for first SBR header
|
// Reset values for first SBR header
|
||||||
|
@ -142,7 +142,7 @@ function ff_mpadsp_apply_window_\type\()_neon, export=1
|
|||||||
sub x10, x10, #4<<2
|
sub x10, x10, #4<<2
|
||||||
b.gt 1b
|
b.gt 1b
|
||||||
|
|
||||||
// comuting samples[16]
|
// computing samples[16]
|
||||||
add x6, x1, #32<<2
|
add x6, x1, #32<<2
|
||||||
ld1 {v0.2s}, [x6], x9
|
ld1 {v0.2s}, [x6], x9
|
||||||
ld1 {v1.2s}, [x0], x9
|
ld1 {v1.2s}, [x0], x9
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Autodesk RLE Decoder
|
* Autodesk RLE Decoder
|
||||||
* Copyright (C) 2005 the ffmpeg project
|
* Copyright (C) 2005 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2003 The ffmpeg Project
|
* Copyright (c) 2001-2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* first version by Francois Revol (revol@free.fr)
|
* first version by Francois Revol (revol@free.fr)
|
||||||
* fringe ADPCM codecs (e.g., DK3, DK4, Westwood)
|
* fringe ADPCM codecs (e.g., DK3, DK4, Westwood)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2003 The ffmpeg Project
|
* Copyright (c) 2001-2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2003 The ffmpeg Project
|
* Copyright (c) 2001-2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2003 The ffmpeg Project
|
* Copyright (c) 2001-2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2001-2003 The ffmpeg Project
|
* Copyright (c) 2001-2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* first version by Francois Revol (revol@free.fr)
|
* first version by Francois Revol (revol@free.fr)
|
||||||
* fringe ADPCM codecs (e.g., DK3, DK4, Westwood)
|
* fringe ADPCM codecs (e.g., DK3, DK4, Westwood)
|
||||||
|
@ -29,20 +29,20 @@
|
|||||||
* passed through the extradata[_size] fields. This atom is tacked onto
|
* passed through the extradata[_size] fields. This atom is tacked onto
|
||||||
* the end of an 'alac' stsd atom and has the following format:
|
* the end of an 'alac' stsd atom and has the following format:
|
||||||
*
|
*
|
||||||
* 32bit atom size
|
* 32 bits atom size
|
||||||
* 32bit tag ("alac")
|
* 32 bits tag ("alac")
|
||||||
* 32bit tag version (0)
|
* 32 bits tag version (0)
|
||||||
* 32bit samples per frame (used when not set explicitly in the frames)
|
* 32 bits samples per frame (used when not set explicitly in the frames)
|
||||||
* 8bit compatible version (0)
|
* 8 bits compatible version (0)
|
||||||
* 8bit sample size
|
* 8 bits sample size
|
||||||
* 8bit history mult (40)
|
* 8 bits history mult (40)
|
||||||
* 8bit initial history (14)
|
* 8 bits initial history (14)
|
||||||
* 8bit rice param limit (10)
|
* 8 bits rice param limit (10)
|
||||||
* 8bit channels
|
* 8 bits channels
|
||||||
* 16bit maxRun (255)
|
* 16 bits maxRun (255)
|
||||||
* 32bit max coded frame size (0 means unknown)
|
* 32 bits max coded frame size (0 means unknown)
|
||||||
* 32bit average bitrate (0 means unknown)
|
* 32 bits average bitrate (0 means unknown)
|
||||||
* 32bit samplerate
|
* 32 bits samplerate
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
@ -305,7 +305,7 @@ static av_cold int read_specific_config(ALSDecContext *ctx)
|
|||||||
skip_bits_long(&gb, 32); // sample rate already known
|
skip_bits_long(&gb, 32); // sample rate already known
|
||||||
sconf->samples = get_bits_long(&gb, 32);
|
sconf->samples = get_bits_long(&gb, 32);
|
||||||
avctx->channels = m4ac.channels;
|
avctx->channels = m4ac.channels;
|
||||||
skip_bits(&gb, 16); // number of channels already knwon
|
skip_bits(&gb, 16); // number of channels already known
|
||||||
skip_bits(&gb, 3); // skip file_type
|
skip_bits(&gb, 3); // skip file_type
|
||||||
sconf->resolution = get_bits(&gb, 3);
|
sconf->resolution = get_bits(&gb, 3);
|
||||||
sconf->floating = get_bits1(&gb);
|
sconf->floating = get_bits1(&gb);
|
||||||
|
@ -532,13 +532,13 @@ static void decode_fixed_sparse(AMRFixed *fixed_sparse, const uint16_t *pulses,
|
|||||||
* @param p the context
|
* @param p the context
|
||||||
* @param subframe unpacked amr subframe
|
* @param subframe unpacked amr subframe
|
||||||
* @param mode mode of the current frame
|
* @param mode mode of the current frame
|
||||||
* @param fixed_sparse sparse respresentation of the fixed vector
|
* @param fixed_sparse sparse representation of the fixed vector
|
||||||
*/
|
*/
|
||||||
static void pitch_sharpening(AMRContext *p, int subframe, enum Mode mode,
|
static void pitch_sharpening(AMRContext *p, int subframe, enum Mode mode,
|
||||||
AMRFixed *fixed_sparse)
|
AMRFixed *fixed_sparse)
|
||||||
{
|
{
|
||||||
// The spec suggests the current pitch gain is always used, but in other
|
// The spec suggests the current pitch gain is always used, but in other
|
||||||
// modes the pitch and codebook gains are joinly quantized (sec 5.8.2)
|
// modes the pitch and codebook gains are jointly quantized (sec 5.8.2)
|
||||||
// so the codebook gain cannot depend on the quantized pitch gain.
|
// so the codebook gain cannot depend on the quantized pitch gain.
|
||||||
if (mode == MODE_12k2)
|
if (mode == MODE_12k2)
|
||||||
p->beta = FFMIN(p->pitch_gain[4], 1.0);
|
p->beta = FFMIN(p->pitch_gain[4], 1.0);
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
#define MIN_ISF_SPACING (128.0 / 32768.0) ///< minimum isf gap
|
#define MIN_ISF_SPACING (128.0 / 32768.0) ///< minimum isf gap
|
||||||
#define PRED_FACTOR (1.0 / 3.0)
|
#define PRED_FACTOR (1.0 / 3.0)
|
||||||
#define MIN_ENERGY -14.0 ///< initial innnovation energy (dB)
|
#define MIN_ENERGY -14.0 ///< initial innovation energy (dB)
|
||||||
#define ENERGY_MEAN 30.0 ///< mean innovation energy (dB) in all modes
|
#define ENERGY_MEAN 30.0 ///< mean innovation energy (dB) in all modes
|
||||||
#define PREEMPH_FAC 0.68 ///< factor used to de-emphasize synthesis
|
#define PREEMPH_FAC 0.68 ///< factor used to de-emphasize synthesis
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ static int execute_code(AVCodecContext * avctx, int c)
|
|||||||
s->y = s->nb_args > 0 ? av_clip((s->args[0] - 1)*s->font_height, 0, avctx->height - s->font_height) : 0;
|
s->y = s->nb_args > 0 ? av_clip((s->args[0] - 1)*s->font_height, 0, avctx->height - s->font_height) : 0;
|
||||||
s->x = s->nb_args > 1 ? av_clip((s->args[1] - 1)*FONT_WIDTH, 0, avctx->width - FONT_WIDTH) : 0;
|
s->x = s->nb_args > 1 ? av_clip((s->args[1] - 1)*FONT_WIDTH, 0, avctx->width - FONT_WIDTH) : 0;
|
||||||
break;
|
break;
|
||||||
case 'h': //set creen mode
|
case 'h': //set screen mode
|
||||||
case 'l': //reset screen mode
|
case 'l': //reset screen mode
|
||||||
if (s->nb_args < 2)
|
if (s->nb_args < 2)
|
||||||
s->args[0] = DEFAULT_SCREEN_MODE;
|
s->args[0] = DEFAULT_SCREEN_MODE;
|
||||||
|
@ -359,10 +359,10 @@ static inline void range_dec_normalize(APEContext *ctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate culmulative frequency for next symbol. Does NO update!
|
* Calculate cumulative frequency for next symbol. Does NO update!
|
||||||
* @param ctx decoder context
|
* @param ctx decoder context
|
||||||
* @param tot_f is the total frequency or (code_value)1<<shift
|
* @param tot_f is the total frequency or (code_value)1<<shift
|
||||||
* @return the culmulative frequency
|
* @return the cumulative frequency
|
||||||
*/
|
*/
|
||||||
static inline int range_decode_culfreq(APEContext *ctx, int tot_f)
|
static inline int range_decode_culfreq(APEContext *ctx, int tot_f)
|
||||||
{
|
{
|
||||||
|
@ -240,7 +240,7 @@ DAT3 .req v4
|
|||||||
DAT4 .req v5
|
DAT4 .req v5
|
||||||
DAT5 .req v6
|
DAT5 .req v6
|
||||||
DAT6 .req sl // use these rather than the otherwise unused
|
DAT6 .req sl // use these rather than the otherwise unused
|
||||||
DAT7 .req fp // ip and lr so that we can load them usinf LDRD
|
DAT7 .req fp // ip and lr so that we can load them using LDRD
|
||||||
|
|
||||||
.macro output4words tail, head, r0, r1, r2, r3, r4, r5, r6, r7, pointer_dead=0
|
.macro output4words tail, head, r0, r1, r2, r3, r4, r5, r6, r7, pointer_dead=0
|
||||||
.if \head
|
.if \head
|
||||||
|
@ -28,7 +28,7 @@ void ff_dct_unquantize_h263_armv5te(int16_t *block, int qmul, int qadd, int coun
|
|||||||
|
|
||||||
#ifdef ENABLE_ARM_TESTS
|
#ifdef ENABLE_ARM_TESTS
|
||||||
/**
|
/**
|
||||||
* h263 dequantizer supplementary function, it is performance critical and needs to
|
* H.263 dequantizer supplementary function, it is performance critical and needs to
|
||||||
* have optimized implementations for each architecture. Is also used as a reference
|
* have optimized implementations for each architecture. Is also used as a reference
|
||||||
* implementation in regression tests
|
* implementation in regression tests
|
||||||
*/
|
*/
|
||||||
|
@ -64,7 +64,7 @@ function ff_simple_idct_arm, export=1
|
|||||||
|
|
||||||
|
|
||||||
__row_loop:
|
__row_loop:
|
||||||
@@ read the row and check if it is null, almost null, or not, according to strongarm specs, it is not necessary to optimize ldr accesses (i.e. split 32bits in 2 16bits words), at least it gives more usable registers :)
|
@@ read the row and check if it is null, almost null, or not, according to strongarm specs, it is not necessary to optimize ldr accesses (i.e. split 32 bits in two 16-bit words), at least it gives more usable registers :)
|
||||||
ldr r1, [r14, #0] @ R1=(int32)(R12)[0]=ROWr32[0] (relative row cast to a 32b pointer)
|
ldr r1, [r14, #0] @ R1=(int32)(R12)[0]=ROWr32[0] (relative row cast to a 32b pointer)
|
||||||
ldr r2, [r14, #4] @ R2=(int32)(R12)[1]=ROWr32[1]
|
ldr r2, [r14, #4] @ R2=(int32)(R12)[1]=ROWr32[1]
|
||||||
ldr r3, [r14, #8] @ R3=ROWr32[2]
|
ldr r3, [r14, #8] @ R3=ROWr32[2]
|
||||||
@ -234,8 +234,8 @@ __end_a_evaluation:
|
|||||||
@@ row[7] = (a0 - b0) >> ROW_SHIFT;
|
@@ row[7] = (a0 - b0) >> ROW_SHIFT;
|
||||||
add r8, r6, r0 @ R8=a0+b0
|
add r8, r6, r0 @ R8=a0+b0
|
||||||
add r9, r2, r1 @ R9=a1+b1
|
add r9, r2, r1 @ R9=a1+b1
|
||||||
@@ put 2 16 bits half-words in a 32bits word
|
@@ put two 16-bit half-words in a 32-bit word
|
||||||
@@ ROWr32[0]=ROWr16[0] | (ROWr16[1]<<16) (only Little Endian compliant then!!!)
|
@@ ROWr32[0]=ROWr16[0] | (ROWr16[1]<<16) (only little-endian compliant then!!!)
|
||||||
ldr r10, =MASK_MSHW @ R10=0xFFFF0000
|
ldr r10, =MASK_MSHW @ R10=0xFFFF0000
|
||||||
and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a1+b1)<<5)
|
and r9, r10, r9, lsl #ROW_SHIFT2MSHW @ R9=0xFFFF0000 & ((a1+b1)<<5)
|
||||||
mvn r11, r10 @ R11= NOT R10= 0x0000FFFF
|
mvn r11, r10 @ R11= NOT R10= 0x0000FFFF
|
||||||
|
@ -322,7 +322,7 @@ endfunc
|
|||||||
|
|
||||||
vmov.i16 q12, #3
|
vmov.i16 q12, #3
|
||||||
vsubl.s8 q10, d8, d6 @ QS0 - PS0
|
vsubl.s8 q10, d8, d6 @ QS0 - PS0
|
||||||
vsubl.s8 q11, d9, d7 @ (widened to 16bit)
|
vsubl.s8 q11, d9, d7 @ (widened to 16 bits)
|
||||||
veor q2, q2, q13 @ PS1 = P1 ^ 0x80
|
veor q2, q2, q13 @ PS1 = P1 ^ 0x80
|
||||||
veor q5, q5, q13 @ QS1 = Q1 ^ 0x80
|
veor q5, q5, q13 @ QS1 = Q1 ^ 0x80
|
||||||
vmul.i16 q10, q10, q12 @ w = 3 * (QS0 - PS0)
|
vmul.i16 q10, q10, q12 @ w = 3 * (QS0 - PS0)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SSA/ASS common funtions
|
* SSA/ASS common functions
|
||||||
* Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org>
|
* Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org>
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SSA/ASS common funtions
|
* SSA/ASS common functions
|
||||||
* Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org>
|
* Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org>
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
|
@ -43,7 +43,7 @@ static const uint8_t bfu_bands_t[4] = {0, 20, 36, 52};
|
|||||||
*/
|
*/
|
||||||
static const uint8_t specs_per_bfu[52] = {
|
static const uint8_t specs_per_bfu[52] = {
|
||||||
8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, // low band
|
8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, // low band
|
||||||
6, 6, 6, 6, 7, 7, 7, 7, 9, 9, 9, 9, 10, 10, 10, 10, // midle band
|
6, 6, 6, 6, 7, 7, 7, 7, 9, 9, 9, 9, 10, 10, 10, 10, // middle band
|
||||||
12, 12, 12, 12, 12, 12, 12, 12, 20, 20, 20, 20, 20, 20, 20, 20 // high band
|
12, 12, 12, 12, 12, 12, 12, 12, 20, 20, 20, 20, 20, 20, 20, 20 // high band
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -783,7 +783,7 @@ typedef struct RcOverride{
|
|||||||
* Use only bitexact stuff (except (I)DCT).
|
* Use only bitexact stuff (except (I)DCT).
|
||||||
*/
|
*/
|
||||||
#define AV_CODEC_FLAG_BITEXACT (1 << 23)
|
#define AV_CODEC_FLAG_BITEXACT (1 << 23)
|
||||||
/* Fx : Flag for h263+ extra options */
|
/* Fx : Flag for H.263+ extra options */
|
||||||
/**
|
/**
|
||||||
* H.263 advanced intra coding / MPEG-4 AC prediction
|
* H.263 advanced intra coding / MPEG-4 AC prediction
|
||||||
*/
|
*/
|
||||||
@ -869,7 +869,7 @@ typedef struct RcOverride{
|
|||||||
* are connected to a parser to split what they return into proper frames.
|
* are connected to a parser to split what they return into proper frames.
|
||||||
* This flag is reserved to the very rare category of codecs which have a
|
* This flag is reserved to the very rare category of codecs which have a
|
||||||
* bitstream that cannot be split into frames without timeconsuming
|
* bitstream that cannot be split into frames without timeconsuming
|
||||||
* operations like full decoding. Demuxers carring such bitstreams thus
|
* operations like full decoding. Demuxers carrying such bitstreams thus
|
||||||
* may return multiple frames in a packet. This has many disadvantages like
|
* may return multiple frames in a packet. This has many disadvantages like
|
||||||
* prohibiting stream copy in many cases thus it should only be considered
|
* prohibiting stream copy in many cases thus it should only be considered
|
||||||
* as a last resort.
|
* as a last resort.
|
||||||
@ -959,7 +959,7 @@ typedef struct RcOverride{
|
|||||||
#define CODEC_FLAG_LOW_DELAY 0x00080000 ///< Force low delay.
|
#define CODEC_FLAG_LOW_DELAY 0x00080000 ///< Force low delay.
|
||||||
#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///< Place global headers in extradata instead of every keyframe.
|
#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///< Place global headers in extradata instead of every keyframe.
|
||||||
#define CODEC_FLAG_BITEXACT 0x00800000 ///< Use only bitexact stuff (except (I)DCT).
|
#define CODEC_FLAG_BITEXACT 0x00800000 ///< Use only bitexact stuff (except (I)DCT).
|
||||||
/* Fx : Flag for h263+ extra options */
|
/* Fx : Flag for H.263+ extra options */
|
||||||
#define CODEC_FLAG_AC_PRED 0x01000000 ///< H.263 advanced intra coding / MPEG-4 AC prediction
|
#define CODEC_FLAG_AC_PRED 0x01000000 ///< H.263 advanced intra coding / MPEG-4 AC prediction
|
||||||
#define CODEC_FLAG_LOOP_FILTER 0x00000800 ///< loop filter
|
#define CODEC_FLAG_LOOP_FILTER 0x00000800 ///< loop filter
|
||||||
#define CODEC_FLAG_INTERLACED_ME 0x20000000 ///< interlaced motion estimation
|
#define CODEC_FLAG_INTERLACED_ME 0x20000000 ///< interlaced motion estimation
|
||||||
@ -1031,7 +1031,7 @@ typedef struct RcOverride{
|
|||||||
* are connected to a parser to split what they return into proper frames.
|
* are connected to a parser to split what they return into proper frames.
|
||||||
* This flag is reserved to the very rare category of codecs which have a
|
* This flag is reserved to the very rare category of codecs which have a
|
||||||
* bitstream that cannot be split into frames without timeconsuming
|
* bitstream that cannot be split into frames without timeconsuming
|
||||||
* operations like full decoding. Demuxers carring such bitstreams thus
|
* operations like full decoding. Demuxers carrying such bitstreams thus
|
||||||
* may return multiple frames in a packet. This has many disadvantages like
|
* may return multiple frames in a packet. This has many disadvantages like
|
||||||
* prohibiting stream copy in many cases thus it should only be considered
|
* prohibiting stream copy in many cases thus it should only be considered
|
||||||
* as a last resort.
|
* as a last resort.
|
||||||
@ -1097,7 +1097,7 @@ typedef struct RcOverride{
|
|||||||
#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
|
#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
|
||||||
#define MB_TYPE_QUANT 0x00010000
|
#define MB_TYPE_QUANT 0x00010000
|
||||||
#define MB_TYPE_CBP 0x00020000
|
#define MB_TYPE_CBP 0x00020000
|
||||||
//Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...)
|
// Note bits 24-31 are reserved for codec specific use (H.264 ref0, MPEG-1 0mv, ...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1500,11 +1500,11 @@ typedef struct AVCodecContext {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* some codecs need / can use extradata like Huffman tables.
|
* some codecs need / can use extradata like Huffman tables.
|
||||||
* mjpeg: Huffman tables
|
* MJPEG: Huffman tables
|
||||||
* rv10: additional flags
|
* rv10: additional flags
|
||||||
* mpeg4: global headers (they can be in the bitstream or here)
|
* MPEG-4: global headers (they can be in the bitstream or here)
|
||||||
* The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger
|
* The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger
|
||||||
* than extradata_size to avoid prolems if it is read with the bitstream reader.
|
* than extradata_size to avoid problems if it is read with the bitstream reader.
|
||||||
* The bytewise contents of extradata must not depend on the architecture or CPU endianness.
|
* The bytewise contents of extradata must not depend on the architecture or CPU endianness.
|
||||||
* - encoding: Set/allocated/freed by libavcodec.
|
* - encoding: Set/allocated/freed by libavcodec.
|
||||||
* - decoding: Set/allocated/freed by user.
|
* - decoding: Set/allocated/freed by user.
|
||||||
@ -1557,7 +1557,7 @@ typedef struct AVCodecContext {
|
|||||||
* picture width / height.
|
* picture width / height.
|
||||||
*
|
*
|
||||||
* @note Those fields may not match the values of the last
|
* @note Those fields may not match the values of the last
|
||||||
* AVFrame outputted by avcodec_decode_video2 due frame
|
* AVFrame output by avcodec_decode_video2 due frame
|
||||||
* reordering.
|
* reordering.
|
||||||
*
|
*
|
||||||
* - encoding: MUST be set by user.
|
* - encoding: MUST be set by user.
|
||||||
@ -1573,7 +1573,7 @@ typedef struct AVCodecContext {
|
|||||||
* the decoded frame is cropped before being output.
|
* the decoded frame is cropped before being output.
|
||||||
*
|
*
|
||||||
* @note Those field may not match the value of the last
|
* @note Those field may not match the value of the last
|
||||||
* AVFrame outputted by avcodec_receive_frame() due frame
|
* AVFrame output by avcodec_receive_frame() due frame
|
||||||
* reordering.
|
* reordering.
|
||||||
*
|
*
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
@ -1597,10 +1597,10 @@ typedef struct AVCodecContext {
|
|||||||
/**
|
/**
|
||||||
* Pixel format, see AV_PIX_FMT_xxx.
|
* Pixel format, see AV_PIX_FMT_xxx.
|
||||||
* May be set by the demuxer if known from headers.
|
* May be set by the demuxer if known from headers.
|
||||||
* May be overriden by the decoder if it knows better.
|
* May be overridden by the decoder if it knows better.
|
||||||
*
|
*
|
||||||
* @note This field may not match the value of the last
|
* @note This field may not match the value of the last
|
||||||
* AVFrame outputted by avcodec_receive_frame() due frame
|
* AVFrame output by avcodec_receive_frame() due frame
|
||||||
* reordering.
|
* reordering.
|
||||||
*
|
*
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
@ -1710,8 +1710,8 @@ typedef struct AVCodecContext {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qscale factor between P and I-frames
|
* qscale factor between P- and I-frames
|
||||||
* If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset).
|
* If > 0 then the last P-frame quantizer will be used (q = lastp_q * factor + offset).
|
||||||
* If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
|
* If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset).
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
@ -1921,7 +1921,7 @@ typedef struct AVCodecContext {
|
|||||||
*/
|
*/
|
||||||
int slice_flags;
|
int slice_flags;
|
||||||
#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display
|
#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display
|
||||||
#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics)
|
#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG-2 field pics)
|
||||||
#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
|
#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1)
|
||||||
|
|
||||||
#if FF_API_XVMC
|
#if FF_API_XVMC
|
||||||
@ -2012,14 +2012,14 @@ typedef struct AVCodecContext {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* minimum MB lagrange multipler
|
* minimum MB Lagrange multiplier
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
int mb_lmin;
|
int mb_lmin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* maximum MB lagrange multipler
|
* maximum MB Lagrange multiplier
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
@ -2238,7 +2238,7 @@ typedef struct AVCodecContext {
|
|||||||
* to all data planes. data[] must hold as many pointers as it can.
|
* to all data planes. data[] must hold as many pointers as it can.
|
||||||
* extended_data must be allocated with av_malloc() and will be freed in
|
* extended_data must be allocated with av_malloc() and will be freed in
|
||||||
* av_frame_unref().
|
* av_frame_unref().
|
||||||
* * otherwise exended_data must point to data
|
* * otherwise extended_data must point to data
|
||||||
* - buf[] must contain one or more pointers to AVBufferRef structures. Each of
|
* - buf[] must contain one or more pointers to AVBufferRef structures. Each of
|
||||||
* the frame's data and extended_data pointers must be contained in these. That
|
* the frame's data and extended_data pointers must be contained in these. That
|
||||||
* is, one AVBufferRef for each allocated chunk of memory, not necessarily one
|
* is, one AVBufferRef for each allocated chunk of memory, not necessarily one
|
||||||
@ -2580,7 +2580,7 @@ typedef struct AVCodecContext {
|
|||||||
#define FF_BUG_TRUNCATED 16384
|
#define FF_BUG_TRUNCATED 16384
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* strictly follow the standard (MPEG4, ...).
|
* strictly follow the standard (MPEG-4, ...).
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
* Setting this to STRICT or higher means the encoder and decoder will
|
* Setting this to STRICT or higher means the encoder and decoder will
|
||||||
@ -2646,9 +2646,9 @@ typedef struct AVCodecContext {
|
|||||||
*/
|
*/
|
||||||
attribute_deprecated
|
attribute_deprecated
|
||||||
int debug_mv;
|
int debug_mv;
|
||||||
#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
|
#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 // visualize forward predicted MVs of P-frames
|
||||||
#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
|
#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 // visualize forward predicted MVs of B-frames
|
||||||
#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
|
#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 // visualize backward predicted MVs of B-frames
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2670,7 +2670,7 @@ typedef struct AVCodecContext {
|
|||||||
#define AV_EF_EXPLODE (1<<3)
|
#define AV_EF_EXPLODE (1<<3)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* opaque 64bit number (generally a PTS) that will be reordered and
|
* opaque 64-bit number (generally a PTS) that will be reordered and
|
||||||
* output in AVFrame.reordered_opaque
|
* output in AVFrame.reordered_opaque
|
||||||
* - encoding: unused
|
* - encoding: unused
|
||||||
* - decoding: Set by user.
|
* - decoding: Set by user.
|
||||||
@ -2855,7 +2855,7 @@ typedef struct AVCodecContext {
|
|||||||
int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
|
int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* noise vs. sse weight for the nsse comparsion function
|
* noise vs. sse weight for the nsse comparison function
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
@ -3426,7 +3426,7 @@ typedef struct AVSubtitleRect {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 0 terminated ASS/SSA compatible event line.
|
* 0 terminated ASS/SSA compatible event line.
|
||||||
* The pressentation of this is unaffected by the other values in this
|
* The presentation of this is unaffected by the other values in this
|
||||||
* struct.
|
* struct.
|
||||||
*/
|
*/
|
||||||
char *ass;
|
char *ass;
|
||||||
@ -4153,7 +4153,7 @@ int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
|
|||||||
* next call to this function or until closing or flushing the
|
* next call to this function or until closing or flushing the
|
||||||
* decoder. The caller may not write to it.
|
* decoder. The caller may not write to it.
|
||||||
*
|
*
|
||||||
* @param[in] avpkt The input AVpacket containing the input buffer.
|
* @param[in] avpkt The input AVPacket containing the input buffer.
|
||||||
* You can create such packet with av_init_packet() and by then setting
|
* You can create such packet with av_init_packet() and by then setting
|
||||||
* data and size, some decoders might in addition need other fields like
|
* data and size, some decoders might in addition need other fields like
|
||||||
* flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least
|
* flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least
|
||||||
@ -5172,7 +5172,7 @@ unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
|
|||||||
* a pointer to an AVClass struct
|
* a pointer to an AVClass struct
|
||||||
* @param[in] feature string containing the name of the missing feature
|
* @param[in] feature string containing the name of the missing feature
|
||||||
* @param[in] want_sample indicates if samples are wanted which exhibit this feature.
|
* @param[in] want_sample indicates if samples are wanted which exhibit this feature.
|
||||||
* If want_sample is non-zero, additional verbage will be added to the log
|
* If want_sample is non-zero, additional verbiage will be added to the log
|
||||||
* message which tells the user how to report samples to the development
|
* message which tells the user how to report samples to the development
|
||||||
* mailing list.
|
* mailing list.
|
||||||
* @deprecated Use avpriv_report_missing_feature() instead.
|
* @deprecated Use avpriv_report_missing_feature() instead.
|
||||||
|
@ -1236,7 +1236,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Caclulate quantization tables for version b
|
* Calculate quantization tables for version b
|
||||||
*/
|
*/
|
||||||
static av_cold void binkb_calc_quant(void)
|
static av_cold void binkb_calc_quant(void)
|
||||||
{
|
{
|
||||||
|
@ -146,7 +146,7 @@ static int compare_vlcspec(const void *a, const void *b)
|
|||||||
/**
|
/**
|
||||||
* Build VLC decoding tables suitable for use with get_vlc().
|
* Build VLC decoding tables suitable for use with get_vlc().
|
||||||
*
|
*
|
||||||
* @param vlc the context to be initted
|
* @param vlc the context to be initialized
|
||||||
*
|
*
|
||||||
* @param table_nb_bits max length of vlc codes to store directly in this table
|
* @param table_nb_bits max length of vlc codes to store directly in this table
|
||||||
* (Longer codes are delegated to subtables.)
|
* (Longer codes are delegated to subtables.)
|
||||||
@ -240,7 +240,7 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
|
|||||||
|
|
||||||
/* Build VLC decoding tables suitable for use with get_vlc().
|
/* Build VLC decoding tables suitable for use with get_vlc().
|
||||||
|
|
||||||
'nb_bits' set thee decoding table size (2^nb_bits) entries. The
|
'nb_bits' sets the decoding table size (2^nb_bits) entries. The
|
||||||
bigger it is, the faster is the decoding. But it should not be too
|
bigger it is, the faster is the decoding. But it should not be too
|
||||||
big to save memory and L1 cache. '9' is a good compromise.
|
big to save memory and L1 cache. '9' is a good compromise.
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by the biststream filters to get the next packet for filtering.
|
* Called by the bitstream filters to get the next packet for filtering.
|
||||||
* The filter is responsible for either freeing the packet or passing it to the
|
* The filter is responsible for either freeing the packet or passing it to the
|
||||||
* caller.
|
* caller.
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Cinepak Video Decoder
|
* Cinepak Video Decoder
|
||||||
* Copyright (C) 2003 the ffmpeg project
|
* Copyright (C) 2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -140,7 +140,7 @@ typedef struct cook {
|
|||||||
VLC envelope_quant_index[13];
|
VLC envelope_quant_index[13];
|
||||||
VLC sqvh[7]; // scalar quantization
|
VLC sqvh[7]; // scalar quantization
|
||||||
|
|
||||||
/* generatable tables and related variables */
|
/* generate tables and related variables */
|
||||||
int gain_size_factor;
|
int gain_size_factor;
|
||||||
float gain_table[23];
|
float gain_table[23];
|
||||||
|
|
||||||
@ -1170,7 +1170,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
|
|||||||
/* Initialize variable relations */
|
/* Initialize variable relations */
|
||||||
q->subpacket[s].numvector_size = (1 << q->subpacket[s].log2_numvector_size);
|
q->subpacket[s].numvector_size = (1 << q->subpacket[s].log2_numvector_size);
|
||||||
|
|
||||||
/* Try to catch some obviously faulty streams, othervise it might be exploitable */
|
/* Try to catch some obviously faulty streams, otherwise it might be exploitable */
|
||||||
if (q->subpacket[s].total_subbands > 53) {
|
if (q->subpacket[s].total_subbands > 53) {
|
||||||
avpriv_request_sample(avctx, "total_subbands > 53");
|
avpriv_request_sample(avctx, "total_subbands > 53");
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
@ -1234,7 +1234,7 @@ static av_cold int cook_decode_init(AVCodecContext *avctx)
|
|||||||
q->saturate_output = saturate_output_float;
|
q->saturate_output = saturate_output_float;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to catch some obviously faulty streams, othervise it might be exploitable */
|
/* Try to catch some obviously faulty streams, otherwise it might be exploitable */
|
||||||
if (q->samples_per_channel != 256 && q->samples_per_channel != 512 &&
|
if (q->samples_per_channel != 256 && q->samples_per_channel != 512 &&
|
||||||
q->samples_per_channel != 1024) {
|
q->samples_per_channel != 1024) {
|
||||||
avpriv_request_sample(avctx, "samples_per_channel = %d",
|
avpriv_request_sample(avctx, "samples_per_channel = %d",
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* based on "Creative YUV (CYUV) stream format for AVI":
|
* based on "Creative YUV (CYUV) stream format for AVI":
|
||||||
* http://www.csse.monash.edu.au/~timf/videocodec/cyuv.txt
|
* http://www.csse.monash.edu.au/~timf/videocodec/cyuv.txt
|
||||||
*
|
*
|
||||||
* Copyright (C) 2003 the ffmpeg project
|
* Copyright (C) 2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -394,7 +394,7 @@ static void help(void)
|
|||||||
printf("dct-test [-i] [<test-number>]\n"
|
printf("dct-test [-i] [<test-number>]\n"
|
||||||
"test-number 0 -> test with random matrixes\n"
|
"test-number 0 -> test with random matrixes\n"
|
||||||
" 1 -> test with random sparse matrixes\n"
|
" 1 -> test with random sparse matrixes\n"
|
||||||
" 2 -> do 3. test from mpeg4 std\n"
|
" 2 -> do 3. test from MPEG-4 std\n"
|
||||||
"-i test IDCT implementations\n"
|
"-i test IDCT implementations\n"
|
||||||
"-4 test IDCT248 implementations\n"
|
"-4 test IDCT248 implementations\n"
|
||||||
"-t speed test\n");
|
"-t speed test\n");
|
||||||
|
@ -40,7 +40,7 @@ typedef struct CIDEntry {
|
|||||||
const uint8_t *ac_run_flag, *ac_index_flag;
|
const uint8_t *ac_run_flag, *ac_index_flag;
|
||||||
const uint16_t *run_codes;
|
const uint16_t *run_codes;
|
||||||
const uint8_t *run_bits, *run;
|
const uint8_t *run_bits, *run;
|
||||||
int bit_rates[5]; ///< Helpher to choose variants, rounded to nearest 5Mb/s
|
int bit_rates[5]; ///< Helper to choose variants, rounded to nearest 5Mb/s
|
||||||
} CIDEntry;
|
} CIDEntry;
|
||||||
|
|
||||||
extern const CIDEntry ff_dnxhd_cid_table[];
|
extern const CIDEntry ff_dnxhd_cid_table[];
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
#include "pixblockdsp.h"
|
#include "pixblockdsp.h"
|
||||||
#include "dnxhdenc.h"
|
#include "dnxhdenc.h"
|
||||||
|
|
||||||
// The largest value that will not lead to overflow for 10bit samples.
|
// The largest value that will not lead to overflow for 10-bit samples.
|
||||||
#define DNX10BIT_QMAT_SHIFT 18
|
#define DNX10BIT_QMAT_SHIFT 18
|
||||||
#define RC_VARIANCE 1 // use variance or ssd for fast rc
|
#define RC_VARIANCE 1 // use variance or ssd for fast rc
|
||||||
#define LAMBDA_FRAC_BITS 10
|
#define LAMBDA_FRAC_BITS 10
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Assorted DPCM codecs
|
* Assorted DPCM codecs
|
||||||
* Copyright (c) 2003 The ffmpeg Project
|
* Copyright (c) 2003 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* DXVA2 H264 HW acceleration.
|
* DXVA2 H.264 HW acceleration.
|
||||||
*
|
*
|
||||||
* copyright (c) 2009 Laurent Aimar
|
* copyright (c) 2009 Laurent Aimar
|
||||||
*
|
*
|
||||||
|
@ -41,8 +41,8 @@
|
|||||||
#include "mpeg12vlc.h"
|
#include "mpeg12vlc.h"
|
||||||
|
|
||||||
#define EA_PREAMBLE_SIZE 8
|
#define EA_PREAMBLE_SIZE 8
|
||||||
#define MADk_TAG MKTAG('M', 'A', 'D', 'k') /* MAD i-frame */
|
#define MADk_TAG MKTAG('M', 'A', 'D', 'k') /* MAD I-frame */
|
||||||
#define MADm_TAG MKTAG('M', 'A', 'D', 'm') /* MAD p-frame */
|
#define MADm_TAG MKTAG('M', 'A', 'D', 'm') /* MAD P-frame */
|
||||||
#define MADe_TAG MKTAG('M', 'A', 'D', 'e') /* MAD lqp-frame */
|
#define MADe_TAG MKTAG('M', 'A', 'D', 'e') /* MAD lqp-frame */
|
||||||
|
|
||||||
typedef struct MadContext {
|
typedef struct MadContext {
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
#include "elbg.h"
|
#include "elbg.h"
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
|
|
||||||
#define DELTA_ERR_MAX 0.1 ///< Precision of the ELBG algorithm (as percentual error)
|
#define DELTA_ERR_MAX 0.1 ///< Precision of the ELBG algorithm (as percentage error)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In the ELBG jargon, a cell is the set of points that are closest to a
|
* In the ELBG jargon, a cell is the set of points that are closest to a
|
||||||
@ -189,7 +189,7 @@ static void get_new_centroids(elbg_data *elbg, int huc, int *newcentroid_i,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the points in the low utility cell to its closest cell. Split the high
|
* Add the points in the low utility cell to its closest cell. Split the high
|
||||||
* utility cell, putting the separed points in the (now empty) low utility
|
* utility cell, putting the separated points in the (now empty) low utility
|
||||||
* cell.
|
* cell.
|
||||||
*
|
*
|
||||||
* @param elbg Internal elbg data
|
* @param elbg Internal elbg data
|
||||||
|
@ -1047,7 +1047,7 @@ void ff_er_frame_end(ERContext *s)
|
|||||||
s->mv[0][0][1] = s->cur_pic.motion_val[dir][mb_x * 2 + mb_y * 2 * s->b8_stride][1];
|
s->mv[0][0][1] = s->cur_pic.motion_val[dir][mb_x * 2 + mb_y * 2 * s->b8_stride][1];
|
||||||
}
|
}
|
||||||
|
|
||||||
s->decode_mb(s->opaque, 0 /* FIXME h264 partitioned slices need this set */,
|
s->decode_mb(s->opaque, 0 /* FIXME H.264 partitioned slices need this set */,
|
||||||
mv_dir, mv_type, &s->mv, mb_x, mb_y, 0, 0);
|
mv_dir, mv_type, &s->mv, mb_x, mb_y, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ typedef struct ERPicture {
|
|||||||
AVFrame *f;
|
AVFrame *f;
|
||||||
ThreadFrame *tf;
|
ThreadFrame *tf;
|
||||||
|
|
||||||
// it's the caller responsability to allocate these buffers
|
// it is the caller's responsibility to allocate these buffers
|
||||||
int16_t (*motion_val[2])[2];
|
int16_t (*motion_val[2])[2];
|
||||||
int8_t *ref_index[2];
|
int8_t *ref_index[2];
|
||||||
|
|
||||||
|
@ -159,13 +159,13 @@ static union av_intfloat32 exr_half2float(uint16_t hf)
|
|||||||
mantissa <<= 1;
|
mantissa <<= 1;
|
||||||
exp -= (1 << 23);
|
exp -= (1 << 23);
|
||||||
}
|
}
|
||||||
// clamp the mantissa to 10-bits
|
// clamp the mantissa to 10 bits
|
||||||
mantissa &= ((1 << 10) - 1);
|
mantissa &= ((1 << 10) - 1);
|
||||||
// shift left to generate single-precision mantissa of 23-bits
|
// shift left to generate single-precision mantissa of 23 bits
|
||||||
mantissa <<= 13;
|
mantissa <<= 13;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// shift left to generate single-precision mantissa of 23-bits
|
// shift left to generate single-precision mantissa of 23 bits
|
||||||
mantissa <<= 13;
|
mantissa <<= 13;
|
||||||
// generate single precision biased exponent value
|
// generate single precision biased exponent value
|
||||||
exp = (exp << 13) + HALF_FLOAT_MIN_BIASED_EXP_AS_SINGLE_FP_EXP;
|
exp = (exp << 13) + HALF_FLOAT_MIN_BIASED_EXP_AS_SINGLE_FP_EXP;
|
||||||
@ -1381,7 +1381,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate thread data, used for non EXR_RAW compreesion types
|
// allocate thread data, used for non EXR_RAW compression types
|
||||||
s->thread_data = av_mallocz_array(avctx->thread_count, sizeof(EXRThreadData));
|
s->thread_data = av_mallocz_array(avctx->thread_count, sizeof(EXRThreadData));
|
||||||
if (!s->thread_data)
|
if (!s->thread_data)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
@ -1392,7 +1392,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
|
|||||||
static int decode_init_thread_copy(AVCodecContext *avctx)
|
static int decode_init_thread_copy(AVCodecContext *avctx)
|
||||||
{ EXRContext *s = avctx->priv_data;
|
{ EXRContext *s = avctx->priv_data;
|
||||||
|
|
||||||
// allocate thread data, used for non EXR_RAW compreesion types
|
// allocate thread data, used for non EXR_RAW compression types
|
||||||
s->thread_data = av_mallocz_array(avctx->thread_count, sizeof(EXRThreadData));
|
s->thread_data = av_mallocz_array(avctx->thread_count, sizeof(EXRThreadData));
|
||||||
if (!s->thread_data)
|
if (!s->thread_data)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
#include "tiff.h"
|
#include "tiff.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initialize upacker code
|
* initialize unpacker code
|
||||||
*/
|
*/
|
||||||
void ff_ccitt_unpack_init(void);
|
void ff_ccitt_unpack_init(void);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* FLI/FLC Animation Video Decoder
|
* FLI/FLC Animation Video Decoder
|
||||||
* Copyright (C) 2003, 2004 the ffmpeg project
|
* Copyright (C) 2003, 2004 The FFmpeg project
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
@ -115,7 +115,7 @@ static av_cold int flic_decode_init(AVCodecContext *avctx)
|
|||||||
case 8 : avctx->pix_fmt = AV_PIX_FMT_PAL8; break;
|
case 8 : avctx->pix_fmt = AV_PIX_FMT_PAL8; break;
|
||||||
case 15 : avctx->pix_fmt = AV_PIX_FMT_RGB555; break;
|
case 15 : avctx->pix_fmt = AV_PIX_FMT_RGB555; break;
|
||||||
case 16 : avctx->pix_fmt = AV_PIX_FMT_RGB565; break;
|
case 16 : avctx->pix_fmt = AV_PIX_FMT_RGB565; break;
|
||||||
case 24 : avctx->pix_fmt = AV_PIX_FMT_BGR24; /* Supposedly BGR, but havent any files to test with */
|
case 24 : avctx->pix_fmt = AV_PIX_FMT_BGR24; /* Supposedly BGR, but no files to test with */
|
||||||
av_log(avctx, AV_LOG_ERROR, "24Bpp FLC/FLX is unsupported due to no test files.\n");
|
av_log(avctx, AV_LOG_ERROR, "24Bpp FLC/FLX is unsupported due to no test files.\n");
|
||||||
return AVERROR_PATCHWELCOME;
|
return AVERROR_PATCHWELCOME;
|
||||||
default :
|
default :
|
||||||
@ -725,7 +725,7 @@ static int flic_decode_frame(AVCodecContext *avctx,
|
|||||||
|
|
||||||
/* Should not get here, ever as the pix_fmt is processed */
|
/* Should not get here, ever as the pix_fmt is processed */
|
||||||
/* in flic_decode_init and the above if should deal with */
|
/* in flic_decode_init and the above if should deal with */
|
||||||
/* the finite set of possibilites allowable by here. */
|
/* the finite set of possibilities allowable by here. */
|
||||||
/* But in case we do, just error out. */
|
/* But in case we do, just error out. */
|
||||||
av_log(avctx, AV_LOG_ERROR, "Unknown FLC format, my science cannot explain how this happened.\n");
|
av_log(avctx, AV_LOG_ERROR, "Unknown FLC format, my science cannot explain how this happened.\n");
|
||||||
return AVERROR_BUG;
|
return AVERROR_BUG;
|
||||||
|
@ -31,7 +31,7 @@ void ff_flv_encode_picture_header(MpegEncContext *s, int picture_number)
|
|||||||
avpriv_align_put_bits(&s->pb);
|
avpriv_align_put_bits(&s->pb);
|
||||||
|
|
||||||
put_bits(&s->pb, 17, 1);
|
put_bits(&s->pb, 17, 1);
|
||||||
/* 0: h263 escape codes 1: 11-bit escape codes */
|
/* 0: H.263 escape codes 1: 11-bit escape codes */
|
||||||
put_bits(&s->pb, 5, (s->h263_flv - 1));
|
put_bits(&s->pb, 5, (s->h263_flv - 1));
|
||||||
put_bits(&s->pb, 8,
|
put_bits(&s->pb, 8,
|
||||||
(((int64_t) s->picture_number * 30 * s->avctx->time_base.num) / // FIXME use timestamp
|
(((int64_t) s->picture_number * 30 * s->avctx->time_base.num) / // FIXME use timestamp
|
||||||
|
@ -483,7 +483,7 @@ static int comp_interp_index(G723_1_Context *p, int pitch_lag,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Peform residual interpolation based on frame classification.
|
* Perform residual interpolation based on frame classification.
|
||||||
*
|
*
|
||||||
* @param buf decoded excitation vector
|
* @param buf decoded excitation vector
|
||||||
* @param out output vector
|
* @param out output vector
|
||||||
@ -931,7 +931,7 @@ static int g723_1_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
p->interp_index = comp_interp_index(p, p->pitch_lag[1],
|
p->interp_index = comp_interp_index(p, p->pitch_lag[1],
|
||||||
&p->sid_gain, &p->cur_gain);
|
&p->sid_gain, &p->cur_gain);
|
||||||
|
|
||||||
/* Peform pitch postfiltering */
|
/* Perform pitch postfiltering */
|
||||||
if (p->postfilter) {
|
if (p->postfilter) {
|
||||||
i = PITCH_MAX;
|
i = PITCH_MAX;
|
||||||
for (j = 0; j < SUBFRAMES; i += SUBFRAME_LEN, j++)
|
for (j = 0; j < SUBFRAMES; i += SUBFRAME_LEN, j++)
|
||||||
|
@ -31,15 +31,15 @@
|
|||||||
#include "put_bits.h"
|
#include "put_bits.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* G.726 11bit float.
|
* G.726 11-bit float.
|
||||||
* G.726 Standard uses rather odd 11bit floating point arithmentic for
|
* G.726 Standard uses rather odd 11-bit floating point arithmetic for
|
||||||
* numerous occasions. It's a mystery to me why they did it this way
|
* numerous occasions. It's a mystery to me why they did it this way
|
||||||
* instead of simply using 32bit integer arithmetic.
|
* instead of simply using 32-bit integer arithmetic.
|
||||||
*/
|
*/
|
||||||
typedef struct Float11 {
|
typedef struct Float11 {
|
||||||
uint8_t sign; /**< 1 bit sign */
|
uint8_t sign; /**< 1 bit sign */
|
||||||
uint8_t exp; /**< 4bit exponent */
|
uint8_t exp; /**< 4 bits exponent */
|
||||||
uint8_t mant; /**< 6bit mantissa */
|
uint8_t mant; /**< 6 bits mantissa */
|
||||||
} Float11;
|
} Float11;
|
||||||
|
|
||||||
static inline Float11* i2f(int i, Float11* f)
|
static inline Float11* i2f(int i, Float11* f)
|
||||||
@ -151,7 +151,7 @@ static const G726Tables G726Tables_pool[] =
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Para 4.2.2 page 18: Adaptive quantizer.
|
* Paragraph 4.2.2 page 18: Adaptive quantizer.
|
||||||
*/
|
*/
|
||||||
static inline uint8_t quant(G726Context* c, int d)
|
static inline uint8_t quant(G726Context* c, int d)
|
||||||
{
|
{
|
||||||
@ -177,14 +177,14 @@ static inline uint8_t quant(G726Context* c, int d)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Para 4.2.3 page 22: Inverse adaptive quantizer.
|
* Paragraph 4.2.3 page 22: Inverse adaptive quantizer.
|
||||||
*/
|
*/
|
||||||
static inline int16_t inverse_quant(G726Context* c, int i)
|
static inline int16_t inverse_quant(G726Context* c, int i)
|
||||||
{
|
{
|
||||||
int dql, dex, dqt;
|
int dql, dex, dqt;
|
||||||
|
|
||||||
dql = c->tbls.iquant[i] + (c->y >> 2);
|
dql = c->tbls.iquant[i] + (c->y >> 2);
|
||||||
dex = (dql>>7) & 0xf; /* 4bit exponent */
|
dex = (dql>>7) & 0xf; /* 4-bit exponent */
|
||||||
dqt = (1<<7) + (dql & 0x7f); /* log2 -> linear */
|
dqt = (1<<7) + (dql & 0x7f); /* log2 -> linear */
|
||||||
return (dql < 0) ? 0 : ((dqt<<dex) >> 7);
|
return (dql < 0) ? 0 : ((dqt<<dex) >> 7);
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ typedef struct RL_VLC_ELEM {
|
|||||||
*
|
*
|
||||||
* GET_CACHE(name, gb)
|
* GET_CACHE(name, gb)
|
||||||
* Will output the contents of the internal cache,
|
* Will output the contents of the internal cache,
|
||||||
* next bit is MSB of 32 or 64 bit (FIXME 64bit).
|
* next bit is MSB of 32 or 64 bits (FIXME 64 bits).
|
||||||
*
|
*
|
||||||
* SHOW_UBITS(name, gb, num)
|
* SHOW_UBITS(name, gb, num)
|
||||||
* Will return the next num bits.
|
* Will return the next num bits.
|
||||||
@ -207,7 +207,7 @@ static inline void skip_bits_long(GetBitContext *s, int n)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* read mpeg1 dc style vlc (sign bit + mantisse with no MSB).
|
* Read MPEG-1 dc-style VLC (sign bit + mantisse with no MSB).
|
||||||
* if MSB not set it is negative
|
* if MSB not set it is negative
|
||||||
* @param n length in bits
|
* @param n length in bits
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H261 common code
|
* H.261 common code
|
||||||
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
||||||
* Copyright (c) 2004 Maarten Daniels
|
* Copyright (c) 2004 Maarten Daniels
|
||||||
*
|
*
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* h261codec.
|
* H.261 codec
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H261 decoder
|
* H.261 codec
|
||||||
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
||||||
* Copyright (c) 2004 Maarten Daniels
|
* Copyright (c) 2004 Maarten Daniels
|
||||||
*
|
*
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* h261codec.
|
* H.261 codec.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef AVCODEC_H261_H
|
#ifndef AVCODEC_H261_H
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H261 parser
|
* H.261 parser
|
||||||
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
||||||
* Copyright (c) 2004 Maarten Daniels
|
* Copyright (c) 2004 Maarten Daniels
|
||||||
*
|
*
|
||||||
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* h261codec.
|
* H.261 parser
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H261 decoder
|
* H.261 decoder
|
||||||
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
||||||
* Copyright (c) 2004 Maarten Daniels
|
* Copyright (c) 2004 Maarten Daniels
|
||||||
*
|
*
|
||||||
@ -580,7 +580,7 @@ retry:
|
|||||||
init_get_bits(&s->gb, buf, buf_size * 8);
|
init_get_bits(&s->gb, buf, buf_size * 8);
|
||||||
|
|
||||||
if (!s->context_initialized)
|
if (!s->context_initialized)
|
||||||
// we need the IDCT permutaton for reading a custom matrix
|
// we need the IDCT permutation for reading a custom matrix
|
||||||
ff_mpv_idct_init(s);
|
ff_mpv_idct_init(s);
|
||||||
|
|
||||||
ret = h261_decode_picture_header(h);
|
ret = h261_decode_picture_header(h);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H261 encoder
|
* H.261 encoder
|
||||||
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
||||||
* Copyright (c) 2004 Maarten Daniels
|
* Copyright (c) 2004 Maarten Daniels
|
||||||
*
|
*
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* H263/MPEG4 backend for encoder and decoder
|
* H.263/MPEG-4 backend for encoder and decoder
|
||||||
* Copyright (c) 2000,2001 Fabrice Bellard
|
* Copyright (c) 2000,2001 Fabrice Bellard
|
||||||
* H263+ support.
|
* H.263+ support.
|
||||||
* Copyright (c) 2001 Juan J. Sierralta P
|
* Copyright (c) 2001 Juan J. Sierralta P
|
||||||
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
||||||
*
|
*
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* h263/mpeg4 codec.
|
* H.263/MPEG-4 codec.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
@ -320,7 +320,7 @@ int16_t *ff_h263_pred_motion(MpegEncContext * s, int block, int dir,
|
|||||||
A = mot_val[ - 1];
|
A = mot_val[ - 1];
|
||||||
/* special case for first (slice) line */
|
/* special case for first (slice) line */
|
||||||
if (s->first_slice_line && block<3) {
|
if (s->first_slice_line && block<3) {
|
||||||
// we can't just change some MVs to simulate that as we need them for the B frames (and ME)
|
// we can't just change some MVs to simulate that as we need them for the B-frames (and ME)
|
||||||
// and if we ever support non rectangular objects than we need to do a few ifs here anyway :(
|
// and if we ever support non rectangular objects than we need to do a few ifs here anyway :(
|
||||||
if(block==0){ //most common case
|
if(block==0){ //most common case
|
||||||
if(s->mb_x == s->resync_mb_x){ //rare
|
if(s->mb_x == s->resync_mb_x){ //rare
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H263 internal header
|
* H.263 internal header
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
@ -87,7 +87,7 @@ int ff_h263_decode_mb(MpegEncContext *s,
|
|||||||
int16_t block[6][64]);
|
int16_t block[6][64]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the value of the 3bit "source format" syntax element.
|
* Return the value of the 3-bit "source format" syntax element.
|
||||||
* This represents some standard picture dimensions or indicates that
|
* This represents some standard picture dimensions or indicates that
|
||||||
* width&height are explicitly stored later.
|
* width&height are explicitly stored later.
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H263+ tables
|
* H.263+ tables
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
*
|
*
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* copyright (c) 2000,2001 Fabrice Bellard
|
* copyright (c) 2000,2001 Fabrice Bellard
|
||||||
* H263+ support
|
* H.263+ support
|
||||||
* copyright (c) 2001 Juan J. Sierralta P
|
* copyright (c) 2001 Juan J. Sierralta P
|
||||||
* copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
* copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
|
||||||
*
|
*
|
||||||
|
@ -117,7 +117,7 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx)
|
|||||||
}
|
}
|
||||||
s->codec_id = avctx->codec->id;
|
s->codec_id = avctx->codec->id;
|
||||||
|
|
||||||
/* for h263, we allocate the images after having read the header */
|
/* for H.263, we allocate the images after having read the header */
|
||||||
if (avctx->codec->id != AV_CODEC_ID_H263 &&
|
if (avctx->codec->id != AV_CODEC_ID_H263 &&
|
||||||
avctx->codec->id != AV_CODEC_ID_MPEG4) {
|
avctx->codec->id != AV_CODEC_ID_MPEG4) {
|
||||||
avctx->pix_fmt = h263_get_format(avctx);
|
avctx->pix_fmt = h263_get_format(avctx);
|
||||||
@ -422,7 +422,7 @@ int ff_h263_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (!s->context_initialized)
|
if (!s->context_initialized)
|
||||||
// we need the idct permutaton for reading a custom matrix
|
// we need the idct permutation for reading a custom matrix
|
||||||
ff_mpv_idct_init(s);
|
ff_mpv_idct_init(s);
|
||||||
|
|
||||||
/* let's go :-) */
|
/* let's go :-) */
|
||||||
@ -494,9 +494,9 @@ int ff_h263_decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
|
|||||||
SET_QPEL_FUNC(qpel_pixels_tab[1][15], qpel8_mc33_old_c)
|
SET_QPEL_FUNC(qpel_pixels_tab[1][15], qpel8_mc33_old_c)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* After H263 & mpeg4 header decode we have the height, width,
|
/* After H.263 & MPEG-4 header decode we have the height, width,
|
||||||
* and other parameters. So then we could init the picture.
|
* and other parameters. So then we could init the picture.
|
||||||
* FIXME: By the way H263 decoder is evolving it should have
|
* FIXME: By the way H.263 decoder is evolving it should have
|
||||||
* an H263EncContext */
|
* an H263EncContext */
|
||||||
if (s->width != avctx->coded_width ||
|
if (s->width != avctx->coded_width ||
|
||||||
s->height != avctx->coded_height ||
|
s->height != avctx->coded_height ||
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 codec.
|
* H.264 / AVC / MPEG-4 part10 codec.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 codec.
|
* H.264 / AVC / MPEG-4 part10 codec.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -418,7 +418,7 @@ typedef struct H264SliceContext {
|
|||||||
|
|
||||||
DECLARE_ALIGNED(8, uint16_t, sub_mb_type)[4];
|
DECLARE_ALIGNED(8, uint16_t, sub_mb_type)[4];
|
||||||
|
|
||||||
///< as a dct coeffecient is int32_t in high depth, we need to reserve twice the space.
|
///< as a DCT coefficient is int32_t in high depth, we need to reserve twice the space.
|
||||||
DECLARE_ALIGNED(16, int16_t, mb)[16 * 48 * 2];
|
DECLARE_ALIGNED(16, int16_t, mb)[16 * 48 * 2];
|
||||||
DECLARE_ALIGNED(16, int16_t, mb_luma_dc)[3][16 * 2];
|
DECLARE_ALIGNED(16, int16_t, mb_luma_dc)[3][16 * 2];
|
||||||
///< as mb is addressed by scantable[i] and scantable is uint8_t we can either
|
///< as mb is addressed by scantable[i] and scantable is uint8_t we can either
|
||||||
@ -456,7 +456,7 @@ typedef struct H264Context {
|
|||||||
|
|
||||||
H2645Packet pkt;
|
H2645Packet pkt;
|
||||||
|
|
||||||
int pixel_shift; ///< 0 for 8-bit H264, 1 for high-bit-depth H264
|
int pixel_shift; ///< 0 for 8-bit H.264, 1 for high-bit-depth H.264
|
||||||
|
|
||||||
/* coded dimensions -- 16 * mb w/h */
|
/* coded dimensions -- 16 * mb w/h */
|
||||||
int width, height;
|
int width, height;
|
||||||
@ -534,7 +534,7 @@ typedef struct H264Context {
|
|||||||
int nal_unit_type;
|
int nal_unit_type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to parse AVC variant of h264
|
* Used to parse AVC variant of H.264
|
||||||
*/
|
*/
|
||||||
int is_avc; ///< this flag is != 0 if codec is avc1
|
int is_avc; ///< this flag is != 0 if codec is avc1
|
||||||
int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4)
|
int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4)
|
||||||
@ -580,7 +580,7 @@ typedef struct H264Context {
|
|||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
/**
|
/**
|
||||||
* current slice number, used to initalize slice_num of each thread/context
|
* current slice number, used to initialize slice_num of each thread/context
|
||||||
*/
|
*/
|
||||||
int current_slice;
|
int current_slice;
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ typedef struct H2645NAL {
|
|||||||
int temporal_id;
|
int temporal_id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* H264 only, nal_ref_idc
|
* H.264 only, nal_ref_idc
|
||||||
*/
|
*/
|
||||||
int ref_idc;
|
int ref_idc;
|
||||||
} H2645NAL;
|
} H2645NAL;
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 cabac decoding.
|
* H.264 / AVC / MPEG-4 part10 cabac decoding.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ static const int8_t cabac_context_init_I[1024][2] =
|
|||||||
{ 2, 54 }, { 3, 74 }, { -28,127 }, { -23, 104 },
|
{ 2, 54 }, { 3, 74 }, { -28,127 }, { -23, 104 },
|
||||||
{ -6, 53 }, { -1, 54 }, { 7, 51 },
|
{ -6, 53 }, { -1, 54 }, { 7, 51 },
|
||||||
|
|
||||||
/* 11 - 23 unsused for I */
|
/* 11 - 23 unused for I */
|
||||||
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
||||||
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
||||||
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
{ 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 cavlc bitstream decoding.
|
* H.264 / AVC / MPEG-4 part10 cavlc bitstream decoding.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 direct mb/block decoding.
|
* H.264 / AVC / MPEG-4 part10 direct mb/block decoding.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 loop filter.
|
* H.264 / AVC / MPEG-4 part10 loop filter.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 macroblock decoding
|
* H.264 / AVC / MPEG-4 part10 macroblock decoding
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@ -90,7 +90,7 @@ static inline void get_lowest_part_y(const H264Context *h, H264SliceContext *sl,
|
|||||||
/**
|
/**
|
||||||
* Wait until all reference frames are available for MC operations.
|
* Wait until all reference frames are available for MC operations.
|
||||||
*
|
*
|
||||||
* @param h the H264 context
|
* @param h the H.264 context
|
||||||
*/
|
*/
|
||||||
static void await_references(const H264Context *h, H264SliceContext *sl)
|
static void await_references(const H264Context *h, H264SliceContext *sl)
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H.26L/H.264/AVC/JVT/14496-10/... motion vector predicion
|
* H.26L/H.264/AVC/JVT/14496-10/... motion vector prediction
|
||||||
* Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 motion vector predicion.
|
* H.264 / AVC / MPEG-4 part10 motion vector prediction.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ typedef struct H264PredWeightTable {
|
|||||||
int chroma_log2_weight_denom;
|
int chroma_log2_weight_denom;
|
||||||
int luma_weight_flag[2]; ///< 7.4.3.2 luma_weight_lX_flag
|
int luma_weight_flag[2]; ///< 7.4.3.2 luma_weight_lX_flag
|
||||||
int chroma_weight_flag[2]; ///< 7.4.3.2 chroma_weight_lX_flag
|
int chroma_weight_flag[2]; ///< 7.4.3.2 chroma_weight_lX_flag
|
||||||
// The following 2 can be changed to int8_t but that causes 10cpu cycles speedloss
|
// The following 2 can be changed to int8_t but that causes a 10 CPU cycles speed loss
|
||||||
int luma_weight[48][2][2];
|
int luma_weight[48][2][2];
|
||||||
int chroma_weight[48][2][2][2];
|
int chroma_weight[48][2][2][2];
|
||||||
int implicit_weight[48][48][2];
|
int implicit_weight[48][48][2];
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 parser.
|
* H.264 / AVC / MPEG-4 part10 parser.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 codec.
|
* H.264 / AVC / MPEG-4 part10 codec.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 parameter set decoding.
|
* H.264 / AVC / MPEG-4 part10 parameter set decoding.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 reference picture handling.
|
* H.264 / AVC / MPEG-4 part10 reference picture handling.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -610,7 +610,7 @@ int ff_h264_execute_ref_pic_marking(H264Context *h, MMCO *mmco, int mmco_count)
|
|||||||
av_log(h->avctx, AV_LOG_DEBUG, "mmco: unref long failure\n");
|
av_log(h->avctx, AV_LOG_DEBUG, "mmco: unref long failure\n");
|
||||||
break;
|
break;
|
||||||
case MMCO_LONG:
|
case MMCO_LONG:
|
||||||
// Comment below left from previous code as it is an interresting note.
|
// Comment below left from previous code as it is an interesting note.
|
||||||
/* First field in pair is in short term list or
|
/* First field in pair is in short term list or
|
||||||
* at a different long term index.
|
* at a different long term index.
|
||||||
* This is not allowed; see 7.4.3.3, notes 2 and 3.
|
* This is not allowed; see 7.4.3.3, notes 2 and 3.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H.26L/H.264/AVC/JVT/14496-10/... sei decoding
|
* H.26L/H.264/AVC/JVT/14496-10/... SEI decoding
|
||||||
* Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 sei decoding.
|
* H.264 / AVC / MPEG-4 part10 SEI decoding.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 codec.
|
* H.264 / AVC / MPEG-4 part10 codec.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -128,7 +128,7 @@ static int alloc_scratch_buffers(H264SliceContext *sl, int linesize)
|
|||||||
|
|
||||||
av_fast_malloc(&sl->bipred_scratchpad, &sl->bipred_scratchpad_allocated, 16 * 6 * alloc_size);
|
av_fast_malloc(&sl->bipred_scratchpad, &sl->bipred_scratchpad_allocated, 16 * 6 * alloc_size);
|
||||||
// edge emu needs blocksize + filter length - 1
|
// edge emu needs blocksize + filter length - 1
|
||||||
// (= 21x21 for h264)
|
// (= 21x21 for H.264)
|
||||||
av_fast_malloc(&sl->edge_emu_buffer, &sl->edge_emu_buffer_allocated, alloc_size * 2 * 21);
|
av_fast_malloc(&sl->edge_emu_buffer, &sl->edge_emu_buffer_allocated, alloc_size * 2 * 21);
|
||||||
|
|
||||||
av_fast_malloc(&sl->top_borders[0], &sl->top_borders_allocated[0],
|
av_fast_malloc(&sl->top_borders[0], &sl->top_borders_allocated[0],
|
||||||
@ -903,7 +903,7 @@ static int h264_slice_header_init(H264Context *h)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Decode a slice header.
|
* Decode a slice header.
|
||||||
* This will (re)intialize the decoder and call h264_frame_start() as needed.
|
* This will (re)initialize the decoder and call h264_frame_start() as needed.
|
||||||
*
|
*
|
||||||
* @param h h264context
|
* @param h h264context
|
||||||
*
|
*
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 DSP functions.
|
* H.264 / AVC / MPEG-4 part10 DSP functions.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* H26L/H264/AVC/JVT/14496-10/... encoder/decoder
|
* H.26L/H.264/AVC/JVT/14496-10/... encoder/decoder
|
||||||
* Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at>
|
||||||
*
|
*
|
||||||
* This file is part of Libav.
|
* This file is part of Libav.
|
||||||
@ -22,7 +22,7 @@
|
|||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* @brief
|
* @brief
|
||||||
* H264 / AVC / MPEG4 part10 codec data table
|
* H.264 / AVC / MPEG-4 part10 codec data table
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 DSP functions.
|
* H.264 / AVC / MPEG-4 part10 DSP functions.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ typedef struct H264DSPContext {
|
|||||||
int stride, int alpha, int beta);
|
int stride, int alpha, int beta);
|
||||||
void (*h264_h_loop_filter_chroma_mbaff_intra)(uint8_t *pix /*align 8*/,
|
void (*h264_h_loop_filter_chroma_mbaff_intra)(uint8_t *pix /*align 8*/,
|
||||||
int stride, int alpha, int beta);
|
int stride, int alpha, int beta);
|
||||||
// h264_loop_filter_strength: simd only. the C version is inlined in h264.c
|
// h264_loop_filter_strength: simd only. the C version is inlined in h264_loopfilter.c
|
||||||
void (*h264_loop_filter_strength)(int16_t bS[2][4][4], uint8_t nnz[40],
|
void (*h264_loop_filter_strength)(int16_t bS[2][4][4], uint8_t nnz[40],
|
||||||
int8_t ref[2][40], int16_t mv[2][40][2],
|
int8_t ref[2][40], int16_t mv[2][40][2],
|
||||||
int bidir, int edges, int step,
|
int bidir, int edges, int step,
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 DSP functions.
|
* H.264 / AVC / MPEG-4 part10 DSP functions.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 prediction functions.
|
* H.264 / AVC / MPEG-4 part10 prediction functions.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -547,7 +547,7 @@ av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id,
|
|||||||
h->pred16x16[TOP_DC_PRED8x8 ]= FUNCC(pred16x16_top_dc , depth);\
|
h->pred16x16[TOP_DC_PRED8x8 ]= FUNCC(pred16x16_top_dc , depth);\
|
||||||
h->pred16x16[DC_128_PRED8x8 ]= FUNCC(pred16x16_128_dc , depth);\
|
h->pred16x16[DC_128_PRED8x8 ]= FUNCC(pred16x16_128_dc , depth);\
|
||||||
\
|
\
|
||||||
/* special lossless h/v prediction for h264 */ \
|
/* special lossless h/v prediction for H.264 */ \
|
||||||
h->pred4x4_add [VERT_PRED ]= FUNCC(pred4x4_vertical_add , depth);\
|
h->pred4x4_add [VERT_PRED ]= FUNCC(pred4x4_vertical_add , depth);\
|
||||||
h->pred4x4_add [ HOR_PRED ]= FUNCC(pred4x4_horizontal_add , depth);\
|
h->pred4x4_add [ HOR_PRED ]= FUNCC(pred4x4_horizontal_add , depth);\
|
||||||
h->pred8x8l_add [VERT_PRED ]= FUNCC(pred8x8l_vertical_add , depth);\
|
h->pred8x8l_add [VERT_PRED ]= FUNCC(pred8x8l_vertical_add , depth);\
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 prediction functions.
|
* H.264 / AVC / MPEG-4 prediction functions.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -75,7 +75,7 @@
|
|||||||
#define TOP_DC_PRED8x8 5
|
#define TOP_DC_PRED8x8 5
|
||||||
#define DC_128_PRED8x8 6
|
#define DC_128_PRED8x8 6
|
||||||
|
|
||||||
// H264/SVQ3 (8x8) specific
|
// H.264/SVQ3 (8x8) specific
|
||||||
#define ALZHEIMER_DC_L0T_PRED8x8 7
|
#define ALZHEIMER_DC_L0T_PRED8x8 7
|
||||||
#define ALZHEIMER_DC_0LT_PRED8x8 8
|
#define ALZHEIMER_DC_0LT_PRED8x8 8
|
||||||
#define ALZHEIMER_DC_L00_PRED8x8 9
|
#define ALZHEIMER_DC_L00_PRED8x8 9
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file
|
* @file
|
||||||
* H.264 / AVC / MPEG4 part10 prediction functions.
|
* H.264 / AVC / MPEG-4 part10 prediction functions.
|
||||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user