Anton Khirnov
eabdc2a830
lavf: use initial_padding instead of deprecated delay
2014-10-13 19:10:30 +00:00
Anton Khirnov
2df0c32ea1
lavc: use a separate field for exporting audio encoder padding
...
Currently, the amount of padding inserted at the beginning by some audio
encoders, is exported through AVCodecContext.delay. However
- the term 'delay' is heavily overloaded and can have multiple different
meanings even in the case of audio encoding.
- this field has entirely different meanings, depending on whether the
codec context is used for encoding or decoding (and has yet another
different meaning for video), preventing generic handling of the codec
context.
Therefore, add a new field -- AVCodecContext.initial_padding. It could
conceivably be used for decoding as well at a later point.
2014-10-13 19:09:01 +00:00
Anton Khirnov
d208d1eba3
hevc_mvs: make sure to always initialize the temporal MV fully
...
The spec requires this.
Fixes uninitialized reads on some samples.
Remove now unnecessary initialization of the whole merge candidate list.
2014-10-07 07:13:01 +00:00
Anton Khirnov
79a60c8e77
hevc_mvs: initialize the temporal MV in case of missing ref
...
The caller expects the MV to always be initialized.
2014-10-07 07:12:55 +00:00
Anton Khirnov and Diego Biurrun
12f0388f9c
Add release notes for 11.
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2014-09-04 07:14:27 -07:00
Anton Khirnov
f5245a9c62
avconv: fix parsing the AVOptions for -target
...
CC: libav-stable@libav.org
2014-08-27 06:21:55 +00:00
Anton Khirnov
1688eef253
avconv: fix the muxrate values for -target
...
The mpegenc private option values are in 50-byte units.
CC: libav-stable@libav.org
2014-08-27 06:21:55 +00:00
Anton Khirnov
75bbaf2493
mpegenc: limit the maximum muxrate
...
It is written to the file as a 22-bit value.
CC: libav-stable@libav.org
2014-08-27 06:21:54 +00:00
Anton Khirnov
b263f8ffe7
lavf: add AVFormatContext.max_ts_probe
...
It allows to configure how long will avformat_find_stream_info() wait
to get the first timestamp.
2014-08-25 05:17:54 +00:00
Anton Khirnov
6ca11f7157
doc/APIchanges: fill in missing hashes and dates
2014-08-25 05:16:26 +00:00
Anton Khirnov
cb7b1a2dfb
electronicarts: set the framerate for TGQ/TQI
...
It is hardcoded to 15fps.
2014-08-22 11:15:20 +00:00
Anton Khirnov
7b6aae23e1
electronicarts: read the framerate for MAD
2014-08-22 11:15:20 +00:00
Anton Khirnov
4d6c515284
electronicarts: do not fail on zero-sized chunks
...
At least one FATE sample contains such chunks and happens to work simply
by accident (due to find_stream_info() swallowing the error).
CC: libav-stable@libav.org
2014-08-22 11:15:20 +00:00
Anton Khirnov and Michael Niedermayer
d92550d191
lavf: eliminate ff_get_audio_frame_size()
...
It is basically a wrapper around av_get_audio_frame_duration(), with a
fallback to AVCodecContext.frame_size. However, that field is set only
when the stream codec context is actually used for encoding or decoding,
which is discouraged.
For muxing, it is generally the responsibility of the caller to set the
packet duration.
For demuxing, if the duration is not stored at the container level, it
should be set by the parser.
Therefore, removing the frame_size fallback should not break any
important case.
(cherry picked from commit 30e50c5027 )
Conflicts:
libavformat/utils.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-08-14 03:12:58 +02:00
Anton Khirnov
30e50c5027
lavf: eliminate ff_get_audio_frame_size()
...
It is basically a wrapper around av_get_audio_frame_duration(), with a
fallback to AVCodecContext.frame_size. However, that field is set only
when the stream codec context is actually used for encoding or decoding,
which is discouraged.
For muxing, it is generally the responsibility of the caller to set the
packet duration.
For demuxing, if the duration is not stored at the container level, it
should be set by the parser.
Therefore, removing the frame_size fallback should not break any
important case.
2014-08-13 17:41:11 +00:00
Anton Khirnov
481a366749
cmdutils: allow matching by metadata in stream specifiers
2014-08-13 17:24:18 +00:00
Anton Khirnov
8ddc32629a
mem: add av_strndup() for duplicating substrings
2014-08-13 17:24:18 +00:00
Anton Khirnov
aa51b0492b
avconv: rename output_packet() to process_input_packet()
...
It more accurately describes what this function does
2014-08-13 17:24:18 +00:00
Anton Khirnov
d63443b968
lavc: drop the av_fast_{re,m}alloc compatibility wrappers
...
They were only needed until the bump.
2014-08-10 15:40:38 +00:00
Anton Khirnov
9325d88eba
lavc: remove obsolete and disabled avpriv functions
2014-08-09 16:59:34 +00:00
Anton Khirnov
24c788f487
Remove obsolete FF_API_REFERENCE_DTS cruft.
2014-08-09 16:59:26 +00:00
Anton Khirnov
24e87f7f42
Remove obsolete FF_API_PROBE_MIME cruft.
2014-08-09 16:59:21 +00:00
Anton Khirnov
472f9ed312
Remove obsolete FF_API_AVFRAME_COLORSPACE cruft.
2014-08-09 16:59:13 +00:00
Anton Khirnov
1985c2e75c
Bump major versions of all libraries.
2014-08-09 16:58:33 +00:00
Anton Khirnov
f4c444e17d
Postpone API-incompatible changes until the next bump.
2014-08-09 16:57:10 +00:00
Anton Khirnov
7acdd3a127
hevc_filter: avoid excessive calls to ff_hevc_get_ref_list()
...
1) each of the loops run within a single CTB, so the relevant reference
list is constant
2) when that CTB is, or lies on the same slice as, the current one, we
can use a simple access instead of a relatively expensive call to
ff_hevc_get_ref_list()
2014-08-09 16:15:51 +00:00
Anton Khirnov
52a2c17ec0
hevc_refs: drop the handling of negative coordinates in ff_hevc_get_ref_list()
...
It makes no sense and cannot happen in any place from which this
function is called.
2014-08-09 16:15:38 +00:00
Anton Khirnov
a7a17e3f19
hevc_filter: move some conditions out of loops
2014-08-09 16:15:11 +00:00
Anton Khirnov
70211539a3
hevc: deobfuscate slice/tile boundary handling for DBF
...
Use named constants instead of magic numbers, avoid using variables with
inverse meaning from what their name implies.
2014-08-09 16:13:48 +00:00
Anton Khirnov
5501971578
hevc_filter: drop more redundant checks
...
The if() around those loops ensures this condition is always false.
2014-08-09 16:13:37 +00:00
Anton Khirnov
65b8b6c476
hevc_filter: drop redundant checks
...
ff_hevc_deblocking_boundary_strengths() is never called if the
deblocking filter is disabled for the slice.
2014-08-09 16:13:24 +00:00
Anton Khirnov
4d1ff2a489
hevc: calculate the dbf strength in hls_pcm_sample() only if dbf is enabled
2014-08-09 16:13:11 +00:00
Anton Khirnov
7b588bb691
svq1: do not modify the input packet
...
The input data must remain constant, make a copy instead. This is in
theory a performance hit, but since I failed to find any samples
using this feature, this should not matter in practice.
Also, check the size of the header, avoiding invalid reads on truncated
data.
CC:libav-stable@libav.org
2014-08-06 18:59:27 +00:00
Anton Khirnov
c7d9b473e2
cdgraphics: do not return 0 from the decode function
...
0 means no data consumed, so it can trigger an infinite loop in the
caller.
CC:libav-stable@libav.org
2014-08-06 18:32:42 +00:00
Anton Khirnov
a1599f3f7e
cdgraphics: switch to bytestream2
...
Fixes possible invalid memory accesses on corrupted data.
CC:libav-stable@libav.org
Bug-ID: CVE-2013-3674
2014-08-06 18:32:38 +00:00
Anton Khirnov and Diego Biurrun
f89d76c103
mpeg4video: Initialize xvididct for all threads
...
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2014-08-03 15:18:58 -07:00
Anton Khirnov and Michael Niedermayer
a5c621aa85
hevc: rename variable in boundary strength to b more explicit
...
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr >
cherry picked from commit 348bebedc0012aae201419669fca1eb61ec93ca6
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-28 14:20:19 +02:00
Anton Khirnov
e76f2d1197
hevc: eliminate the last element from TransformTree
...
Replace it by passing an additional parameter to transform_unit()
2014-07-28 08:10:35 +00:00
Anton Khirnov
4aa80808bc
hevc: eliminate unnecessary cbf_c{b,r} arrays
...
They are replaced by passing additional parameters to the transform
functions.
2014-07-28 08:09:18 +00:00
Anton Khirnov
0daa255463
hevc: do not store the transform inter_split flag in the context
...
It does not need to be preserved.
2014-07-28 08:05:47 +00:00
Anton Khirnov
53a11135f2
hevc: simplify splitting the transform tree blocks
2014-07-28 08:04:19 +00:00
Anton Khirnov
e36a2f4c52
hevc: eliminate an unnecessary array
...
We do not need to store the value of the split flag.
2014-07-28 08:03:53 +00:00
Anton Khirnov
4b169321b8
codec_desc: fix some typos in long codec names
...
The rv20 typo spotted by Hendrik Leppkes <h.leppkes@gmail.com >
2014-07-28 08:03:13 +00:00
Anton Khirnov
c5fca0174d
lavc: add a property for marking codecs that support frame reordering
2014-07-28 08:02:50 +00:00
Anton Khirnov and Michael Niedermayer
77ef9fd1e9
hevc: eliminate unnecessary cbf_c{b,r} arrays
...
- They are be replaced by passing additional parameters to the transform
functions.
- Adaptation to 4:2:2
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr >
cherry picked from commit f518bb22531c648f1c37f978b0c7ad2e71e04c25
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-28 00:55:44 +02:00
Anton Khirnov
541427ab4d
eamad: use the bytestream2 API instead of AV_RL
...
This is safer and possibly fixes invalid reads on truncated data.
CC:libav-stable@libav.org
2014-07-27 07:10:54 +00:00
Anton Khirnov and Michael Niedermayer
22e9fe06eb
doc/examples/muxing: add alloc_audio_frame() and use it to simplify code.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-27 01:15:39 +02:00
Anton Khirnov
73bb8f61d4
hevcdsp: remove an unneeded variable in the loop filter
...
beta0 and beta1 will always be the same
2014-07-26 15:00:11 +00:00
Anton Khirnov
56f98e340f
output example: convert audio to the format supported by the encoder
2014-07-26 14:57:59 +00:00
Anton Khirnov
884f7c975f
output example: set the stream timebase
...
This is required by the new API.
2014-07-26 14:57:45 +00:00
Anton Khirnov and Michael Niedermayer
d7e162d46b
hevcdsp: remove an unneeded variable in the loop filter
...
beta0 and beta1 will always be the same within a CU
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr >
cherry picked from commit 4a23d824741a289c7d2d2f2871d1e2621b63fa1b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-22 16:27:26 +02:00
Anton Khirnov and Michael Niedermayer
ae2f048fd7
avcodec/x86/hevc_deblock: cosmetics
...
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-22 16:18:05 +02:00
Anton Khirnov and Michael Niedermayer
b435043abb
hevc: cleanups in SSE2 and SSSE3 loop filters, use fewer instructions
...
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-22 16:17:29 +02:00
Anton Khirnov and Michael Niedermayer
e8581b17a8
avcodec/x86/hevc_deblock: use test instead of cmp 0
...
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-22 16:16:05 +02:00
Anton Khirnov and Michael Niedermayer
dc69247de4
avcodec/x86/hevc_deblock: use of paddw instead of psllw
...
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-22 16:14:53 +02:00
Anton Khirnov and Michael Niedermayer
500a0394d5
avcodec/x86/hevc_deblock: add %ifs to avoid "do nothing instructions"
...
cherry picked from commit f7843356253459e6010320292dbbc1e888a5249b
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-22 16:13:28 +02:00
Anton Khirnov and Michael Niedermayer
7a4cf67117
hevc: cleaning up SSE2 and SSSE3 deblocking filters
...
Signed-off-by: Mickaël Raulet <mraulet@insa-rennes.fr >
cherry picked from commit b432041d7d1eca38831590f13b4e5baffff8186f
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-07-22 16:00:48 +02:00
Anton Khirnov
17e9d52c8c
hevc_ps: remove a write-only variable
2014-07-11 08:38:51 +00:00
Anton Khirnov
0307cc2253
rtpdec: pass an AVFormatContext to ff_parse_fmtp()
...
Use it for logging, instead of NULL or the stream codec context.
2014-07-09 13:40:54 +00:00
Anton Khirnov
650d384048
yuv4mpegenc: do not access AVCodecContext.coded_frame
...
Its contents are meaningful only if the stream codec context is the one
actually used for encoding, which is often not the case (and is
discouraged).
Use AVCodecContext.field_order instead.
2014-07-09 13:40:39 +00:00
Anton Khirnov
27c1f82f56
nsvdec: remove commented out cruft
2014-07-09 13:38:54 +00:00
Anton Khirnov
edb1af7c46
mov: free the dv demux context with avformat_free_context()
2014-07-09 13:38:35 +00:00
Anton Khirnov
a14b61658c
mtv: do not set sample_rate for video
2014-07-09 13:38:26 +00:00
Anton Khirnov
b8604a9761
oggparsecelt: do not set AVCodecContext.frame_size
...
It is supposed to be set by decoders only.
2014-07-09 13:38:14 +00:00
Anton Khirnov
d5cf5afabb
adxdec: get rid of an avpriv function
...
The only thing the demuxer needs is the sample rate to set the timebase,
which can be simply read with AV_RB32.
2014-07-09 13:37:18 +00:00
Anton Khirnov
f6ee61fb05
lavc: export DV profile API used by muxer/demuxer as public
2014-07-09 13:35:07 +00:00
Anton Khirnov
3f3232a371
avconv: set the output stream timebase
...
This is required by the new API.
2014-07-09 13:30:33 +00:00
Anton Khirnov
c9c1265c52
avformat: update muxing doxy
...
The callers should now set the stream timebase, not the codec one.
2014-07-09 13:30:22 +00:00
Anton Khirnov
abda15a990
cdg: set the keyframe flag on the first packet
...
Bug-Id: 55
2014-07-09 13:30:11 +00:00
Anton Khirnov
9279826008
id3v2enc: use a case-insensitive comparison for APIC picture type
2014-07-03 18:40:37 +00:00
Anton Khirnov
a5864e9a25
output example: free the muxing format context properly
2014-06-26 16:08:06 +02:00
Anton Khirnov
182d3f8221
output example: rewrite encoding logic
...
Properly generate pts for the frames sent to the encoder, avoid
using private and deprecated AVStream.pts.
2014-06-26 16:07:34 +02:00
Anton Khirnov
a7fcd4122b
output example: store the scaling context in the stream context
2014-06-26 16:07:29 +02:00
Anton Khirnov
6a927d7aaf
output example: use a macro instead of a static variable
2014-06-26 16:07:23 +02:00
Anton Khirnov
63fd0d866c
output example: allocate the audio frame only once
2014-06-26 16:07:08 +02:00
Anton Khirnov
edd5f95764
output example: use OutputStream for audio streams as well
2014-06-26 16:07:02 +02:00
Anton Khirnov
5e7b125b6a
output example: use the new AVFrame API to allocate audio frames
2014-06-26 16:06:54 +02:00
Anton Khirnov
ac85f631c9
output example: set output channel layout
2014-06-26 16:06:48 +02:00
Anton Khirnov
294daf71a7
output example: use a struct to bundle the video stream variables together
2014-06-26 16:05:24 +02:00
Anton Khirnov
38d044429d
output example: use the new AVFrame API for allocating the video frame
2014-06-26 16:05:19 +02:00
Anton Khirnov
3f4edf0125
dump_stream: print the timebase as is, do not reduce it
...
It makes more sense to print the timebase exactly as it is set. Also,
this avoids a divide by zero when av_dump_format() is called on a format
context before writing the header.
2014-06-26 16:04:22 +02:00
Anton Khirnov
1b04eb20f7
lavc: do not allocate edges in the default get_buffer2()
2014-06-26 16:02:12 +02:00
Anton Khirnov
d349afb07b
dv: cosmetics, reindent
2014-06-20 14:15:39 +02:00
Anton Khirnov
650dee63c8
dv: get rid of global non-const tables
...
Instead, store them in the context and compute on each parameter change.
2014-06-20 14:15:31 +02:00
Anton Khirnov
778111592b
dvenc: initialize the profile only once, at init
...
We do not allow the frame parameters to change during encoding, so there
is no need to do this for each frame.
2014-06-20 14:15:16 +02:00
Anton Khirnov
452860d7e0
Use av_packet_rescale_ts() to simplify code.
2014-06-20 14:14:48 +02:00
Anton Khirnov
874390e163
lavc: add a convenience function for rescaling timestamps in a packet
2014-06-20 14:14:11 +02:00
Anton Khirnov
194be1f43e
lavf: switch to AVStream.time_base as the hint for the muxer timebase
...
Previously, AVStream.codec.time_base was used for that purpose, which
was quite confusing for the callers. This change also opens the path for
removing AVStream.codec.
The change in the lavf-mkv test is due to the native timebase (1/1000)
being used instead of the default one (1/90000), so the packets are now
sent to the crc muxer in the same order in which they are demuxed
(previously some of them got reordered because of inexact timestamp
conversion).
2014-06-18 15:12:34 +02:00
Anton Khirnov
d754ed4172
riffenc: take an AVStream instead of an AVCodecContext
...
It will be useful in the following commits.
Also, rename the AVCodecContext pointer name from 'stream' to 'codec'.
2014-06-18 15:03:55 +02:00
Anton Khirnov
f792d3cbb8
lavf: add the notimestamps flag to the muxers missing it
2014-06-18 15:03:31 +02:00
Anton Khirnov
cfbdd7ffbd
rtpenc: base max_frames_per_packet on avg_frame_rate, not codec timebase
...
Fall back to 1 (which is what is used for most cases anyway) when the
framerate is not set.
2014-06-18 15:03:16 +02:00
Anton Khirnov
894682a973
Remove avserver.
...
It has not been properly maintained for years and there is little hope
of that changing in the future.
It appears simpler to write a new replacement from scratch than
unbreaking it.
2014-06-18 14:55:28 +02:00
Anton Khirnov
71d6551e67
avconv: use the correct variable in comparison
2014-06-17 09:01:26 +02:00
Anton Khirnov
48e5092133
avconv: make -shortest work with streamcopy
...
CC: libav-stable@libav.org
2014-06-12 08:17:50 +02:00
Anton Khirnov
383136264e
avconv: do not use the stream codec context for encoding
2014-06-01 08:33:21 +02:00
Anton Khirnov
41776ba9c0
avconv: do not use the stream codec context for decoding
2014-06-01 08:33:11 +02:00
Anton Khirnov
e19d48dfce
flac muxer: support reading updated extradata from side data
2014-06-01 08:32:33 +02:00
Anton Khirnov
0097cbea69
flac muxer: accept only STREAMINFO extradata
...
The other format (full flac header blocks) should not be exported by any
demuxers anymore.
This allows to drop an avpriv_ function and also simplify the following
commits.
2014-06-01 08:31:33 +02:00
Anton Khirnov
ed39cda029
flacenc: send final extradata in packet side data
2014-06-01 08:27:01 +02:00
Anton Khirnov
0957b274e3
lavc: add an option to enable side data-only packets during encoding
...
Some encoders (e.g. flac) need to send side data when there is no more
data to be output. This enables them to output a packet with no data in
it, only side data.
2014-06-01 08:26:43 +02:00