Go to the documentation of this file.
399 "eng",
"fra",
"ger",
"ita",
"dut",
"sve",
"spa",
"dan",
"por",
"nor",
400 "heb",
"jpn",
"ara",
"fin",
"gre",
"ice",
"mlt",
"tur",
"hr ",
"chi",
401 "urd",
"hin",
"tha",
"kor",
"lit",
"pol",
"hun",
"est",
"lav",
"",
402 "fo ",
"",
"rus",
"chi",
"",
"iri",
"alb",
"ron",
"ces",
"slk",
403 "slv",
"yid",
"sr ",
"mac",
"bul",
"ukr",
"bel",
"uzb",
"kaz",
"aze",
405 "aze",
"arm",
"geo",
"mol",
"kir",
"tgk",
"tuk",
"mon",
"",
"pus",
406 "kur",
"kas",
"snd",
"tib",
"nep",
"san",
"mar",
"ben",
"asm",
"guj",
407 "pa ",
"ori",
"mal",
"kan",
"tam",
"tel",
"",
"bur",
"khm",
"lao",
409 "vie",
"ind",
"tgl",
"may",
"may",
"amh",
"tir",
"orm",
"som",
"swa",
411 "",
"run",
"",
"mlg",
"epo",
"",
"",
"",
"",
"",
413 "",
"",
"",
"",
"",
"",
"",
"",
"",
"",
414 "",
"",
"",
"",
"",
"",
"",
"",
"",
"",
415 "",
"",
"",
"",
"",
"",
"",
"",
"wel",
"baq",
416 "cat",
"lat",
"que",
"grn",
"aym",
"tat",
"uig",
"dzo",
"jav"
435 for (
i = 0;
i < 3;
i++) {
452 if (
code >= 0x400 &&
code != 0x7fff) {
453 for (
i = 2;
i >= 0;
i--) {
521 int object_type_id =
avio_r8(pb);
528 #if FF_API_LAVF_AVCTX
531 st->codec->rc_max_rate = v;
546 if (object_type_id == 0x69 || object_type_id == 0x6b)
548 if (!
len || (uint64_t)
len > (1<<30))
620 if (layout_tag == 0) {
622 av_log_ask_for_sample(
s,
"Unimplemented container channel layout.\n");
626 if (layout_tag == 0x10000) {
632 while (
layouts->channel_layout) {
633 if (layout_tag ==
layouts->layout_tag) {
650 uint32_t layout_tag = 0;
653 if (channel_layout ==
layouts->channel_layout) {
654 layout_tag =
layouts->layout_tag;
#define FF_ENABLE_DEPRECATION_WARNINGS
#define AV_LOG_WARNING
Something somehow does not look correct.
uint8_t * extradata
Extra binary data needed for initializing the decoder, codec-dependent.
@ AV_CODEC_ID_ADPCM_IMA_QT
#define AV_CH_LAYOUT_5POINT0_BACK
uint64_t channel_layout
Audio channel layout.
const AVCodecTag ff_mp4_obj_type[]
enum MovChannelLayoutTag * layouts
#define MKTAG(a, b, c, d)
@ AOT_PS
N Parametric Stereo.
#define AV_CH_LAYOUT_MONO
const uint16_t avpriv_mpa_freq_tab[3]
int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext *pb)
#define fc(width, name, range_min, range_max)
@ AV_CODEC_ID_MPEGH_3D_AUDIO
int ff_mov_lang_to_iso639(unsigned code, char to[4])
#define MP4DecSpecificDescrTag
const struct AVCodecTag * avformat_get_mov_video_tags(void)
@ AV_CODEC_ID_MP3
preferred ID for decoding MPEG audio layer 1, 2 or 3
#define AV_CH_LAYOUT_STEREO
#define AV_CH_LAYOUT_QUAD
FFmpeg Automated Testing Environment ************************************Introduction Using FATE from your FFmpeg source directory Submitting the results to the FFmpeg result aggregation server Uploading new samples to the fate suite FATE makefile targets and variables Makefile targets Makefile variables Examples Introduction **************FATE is an extended regression suite on the client side and a means for results aggregation and presentation on the server side The first part of this document explains how you can use FATE from your FFmpeg source directory to test your ffmpeg binary The second part describes how you can run FATE to submit the results to FFmpeg’s FATE server In any way you can have a look at the publicly viewable FATE results by visiting this as it can be seen if some test on some platform broke with their recent contribution This usually happens on the platforms the developers could not test on The second part of this document describes how you can run FATE to submit your results to FFmpeg’s FATE server If you want to submit your results be sure to check that your combination of OS and compiler is not already listed on the above mentioned website In the third part you can find a comprehensive listing of FATE makefile targets and variables Using FATE from your FFmpeg source directory **********************************************If you want to run FATE on your machine you need to have the samples in place You can get the samples via the build target fate rsync Use this command from the top level source this will cause FATE to fail NOTE To use a custom wrapper to run the pass ‘ target exec’ to ‘configure’ or set the TARGET_EXEC Make variable Submitting the results to the FFmpeg result aggregation server ****************************************************************To submit your results to the server you should run fate through the shell script ‘tests fate sh’ from the FFmpeg sources This script needs to be invoked with a configuration file as its first argument tests fate sh path to fate_config A configuration file template with comments describing the individual configuration variables can be found at ‘doc fate_config sh template’ Create a configuration that suits your based on the configuration template The ‘slot’ configuration variable can be any string that is not yet but it is suggested that you name it adhering to the following pattern ‘ARCH OS COMPILER COMPILER VERSION’ The configuration file itself will be sourced in a shell therefore all shell features may be used This enables you to setup the environment as you need it for your build For your first test runs the ‘fate_recv’ variable should be empty or commented out This will run everything as normal except that it will omit the submission of the results to the server The following files should be present in $workdir as specified in the configuration it may help to try out the ‘ssh’ command with one or more ‘ v’ options You should get detailed output concerning your SSH configuration and the authentication process The only thing left is to automate the execution of the fate sh script and the synchronisation of the samples directory Uploading new samples to the fate suite *****************************************If you need a sample uploaded send a mail to samples request This is for developers who have an account on the fate suite server If you upload new please make sure they are as small as space on each network bandwidth and so on benefit from smaller test cases Also keep in mind older checkouts use existing sample that means in practice generally do not remove or overwrite files as it likely would break older checkouts or releases Also all needed samples for a commit should be ideally before the push If you need an account for frequently uploading samples or you wish to help others by doing that send a mail to ffmpeg devel rsync vauL Duo ug o o X fate suite ffmpeg Duo ug o o X fate suite fate suite ffmpeg Duo ug o o X fate suite fate suite ffmpeg can be set to
void ff_mp4_parse_es_descr(AVIOContext *pb, int *es_id)
unsigned int avio_rb32(AVIOContext *s)
#define AV_LOG_TRACE
Extremely verbose debugging, useful for libav* development.
#define AV_CH_LOW_FREQUENCY
@ AV_CODEC_ID_MPEG4SYSTEMS
FAKE codec to indicate a MPEG-4 Systems stream (only used by libavformat)
int avpriv_mpeg4audio_get_config2(MPEG4AudioConfig *c, const uint8_t *buf, int size, int sync_extension, void *logctx)
Parse MPEG-4 systems extradata from a raw buffer to retrieve audio configuration.
#define AV_CH_LAYOUT_STEREO_DOWNMIX
static const MovChannelLayout mov_channel_layout[]
AVCodecParameters * codecpar
Codec parameters associated with this stream.
@ AV_CODEC_ID_DVD_SUBTITLE
#define AV_CH_LAYOUT_5POINT1
static const char mov_mdhd_language_map[][4]
int ff_mp4_read_descr(AVFormatContext *fc, AVIOContext *pb, int *tag)
const AVCodecTag ff_codec_movdata_tags[]
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
int sample_rate
Audio only.
@ AV_CODEC_ID_GSM
as in Berlin toast format
AVCodecID
Identify the syntax and semantics of the bitstream.
int extradata_size
Size of the extradata content in bytes.
const AVCodecTag ff_codec_movvideo_tags[]
unsigned int avio_rb24(AVIOContext *s)
int ff_mov_iso639_to_lang(const char lang[4], int mp4)
void avio_wb32(AVIOContext *s, unsigned int val)
int avio_r8(AVIOContext *s)
#define AV_CH_LAYOUT_5POINT1_BACK
int ff_mp4_read_descr_len(AVIOContext *pb)
#define AV_CH_LAYOUT_5POINT0
#define i(width, name, range_min, range_max)
and forward the test the status of outputs and forward it to the corresponding return FFERROR_NOT_READY If the filters stores internally one or a few frame for some it can consider them to be part of the FIFO and delay acknowledging a status change accordingly Example code
const struct AVCodecTag * avformat_get_mov_audio_tags(void)
#define AV_CH_LAYOUT_7POINT1
#define AV_CH_LAYOUT_7POINT1_WIDE
static const AVCodecTag mp4_audio_types[]
#define AV_CH_LAYOUT_SURROUND
unsigned int avio_rb16(AVIOContext *s)
#define FF_ARRAY_ELEMS(a)
main external API structure.
const AVCodecTag ff_codec_movsubtitle_tags[]
int64_t avio_skip(AVIOContext *s, int64_t offset)
Skip given number of bytes forward.
#define FF_DISABLE_DEPRECATION_WARNINGS
@ AOT_ALS
Y Audio LosslesS.
enum AVCodecID codec_id
Specific type of the encoded data (the codec used).
#define AV_CH_LAYOUT_4POINT0
#define flags(name, subs,...)
int64_t bit_rate
The average bitrate of the encoded data (in bits per second).
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
const AVCodecTag ff_codec_movaudio_tags[]
void ff_mov_write_chan(AVIOContext *pb, int64_t channel_layout)
@ AV_CODEC_ID_MPEG2VIDEO
preferred ID for MPEG-1/2 video decoding
int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st, int64_t size)
Read 'chan' tag from the input stream.