Anton Khirnov
106b62f4ba
matroskaenc: write the channel mask for FLAC
2014-05-28 07:55:14 +02:00
Anton Khirnov
efcde917af
vorbiscomment: simplify API by using av_dict_count()
2014-05-28 07:54:54 +02:00
Anton Khirnov
23f741f793
matroskadec: parse the channel layout mask for FLAC
...
It is commonly stored in a vorbiscomment block in codec private data.
2014-05-28 07:50:32 +02:00
Anton Khirnov
4efdadc8ec
matroskadec: export just the STREAMINFO block as FLAC extradata
...
It contains all information that is used by the decoder and the other
FLAC-capable demuxers (flacdec, ogg) export only STREAMINFO as well.
2014-05-28 07:49:15 +02:00
Anton Khirnov
6df478bf89
matroskadec: split parsing tracks into a separate function
2014-05-28 07:48:59 +02:00
Anton Khirnov
5fdaf312c5
flac: make avpriv_flac_parse_block_header() inline
...
This avoids all the ABI troubles associated with avpriv_.
Since this function is very small and does not depend on any tables,
making it inline should have no adverse effects.
2014-05-28 07:48:30 +02:00
Anton Khirnov
54ed488b1a
flac muxer: write WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag for multichannel files
2014-05-28 07:47:31 +02:00
Anton Khirnov
d6b9ce99ea
flac demuxer: parse the WAVEFORMATEXTENSIBLE_CHANNEL_MASK tag
...
It is used to store the channel mask for non-standard layouts.
2014-05-28 07:47:15 +02:00
Anton Khirnov
f13ffb6636
flacdec: do not overwrite a channel layout set by the caller
...
The channel layout mask for non-standard layouts is typically stored at
the container level (as a vorbiscomment tag) for FLAC.
2014-05-28 07:46:04 +02:00
Anton Khirnov
7cc4c9f32f
lavfi/formats: avoid using AV_{PIX,SAMPLE}_FMT_NB
...
Thatt hardcodes the number of formats into lavfi and will break when a
shared lavu is updated, adding new formats.
2014-05-26 22:25:47 +02:00
Anton Khirnov
b03b2d86aa
buffersrc: avoid using AV_PIX_FMT_NB
...
That hardcodes the number of pixel formats into lavfi and will break
when a shared lavu is updated, adding new pixel formats.
2014-05-26 22:25:41 +02:00
Anton Khirnov
a7d070acb5
vf_fieldorder: avoid using AV_PIX_FMT_NB
...
That hardcodes the number of pixel formats into lavfi and will break
when a shared lavu is updated, adding new pixel formats.
2014-05-26 22:25:26 +02:00
Anton Khirnov
862f33c10e
vf_scale: use the pixfmt descriptor API
...
Avoid using AV_PIX_FMT_NB, since that hardcodes the number of pixel
formats into lavfi and will break when a shared lavu is updated, adding
new pixel formats.
2014-05-26 22:24:46 +02:00
Anton Khirnov
45fc73edfe
vf_format: rework format list parsing
...
Avoid using AV_PIX_FMT_NB, since that hardcodes the number of pixel
formats into lavfi and will break when a shared lavu is updated, adding
new pixel formats.
2014-05-26 22:22:42 +02:00
Anton Khirnov
9929b3564c
pthread_frame: simplify the code by using new AVPacket API
...
This also handles side data properly.
2014-05-19 13:12:46 +02:00
Anton Khirnov
cdf58f0599
avpacket: fix copying side data in av_packet_copy_props()
...
Side data count is incremented by by calling av_packet_new_side_data()
in the following loop, setting it explicitly results in the resulting
value being twice what it should be.
CC: libav-stable@libav.org
2014-05-19 13:12:40 +02:00
Anton Khirnov
a312f71090
lavf: deprecate now unused AVStream.pts
2014-05-19 07:14:24 +02:00
Anton Khirnov
ed7922faac
mux: drop one of the hacks comprising compute_pkt_fields2()
...
All encoders should output proper timestamps now.
2014-05-19 07:14:18 +02:00
Anton Khirnov
dc40d88625
avconv: do not use poorly defined and undocumented AVStream.pts
...
Use OutputStream.last_mux_dts as an approximation of 'current' output
time instead.
2014-05-19 07:14:11 +02:00
Anton Khirnov
c9f8809ee4
hevc/intra_pred: simplify neighboring sample derivation
2014-05-19 07:12:55 +02:00
Anton Khirnov
a1c2b48018
hevc: templatize intra_pred
2014-05-19 07:10:03 +02:00
Anton Khirnov
0ba5299a80
movenc: use the "encoder" metadata tag to write stsd Compressorname
...
This mirrors the demuxer behaviour and avoids accessing
AVCodecContext.codec, which should not be done in muxers.
2014-05-18 20:34:03 +02:00
Anton Khirnov
6656370b85
avconv: set the "encoder" tag when transcoding
2014-05-18 20:33:46 +02:00
Anton Khirnov
d246231e47
wavenc: use codec descriptors to get the codec name
...
Also, return a proper error code.
2014-05-18 20:33:38 +02:00
Anton Khirnov
968a62a9d9
doc/APIchanges: mark the release 10 branch point
2014-05-18 10:53:00 +02:00
Anton Khirnov
33082af756
doc/APIchanges: fill in missing hashes and dates
2014-05-18 10:52:41 +02:00
Anton Khirnov
79f2c426fd
dv: do not set codec timebase
...
It is not supposed to be set from outside of libavcodec.
Set average framerate instead.
2014-05-18 10:24:43 +02:00
Anton Khirnov
93afb6c98d
avconv: set output avg_frame_rate when known
2014-05-18 10:24:36 +02:00
Anton Khirnov
7a5f4f6853
lavf: extend avg_frame_rate documentation.
2014-05-18 10:24:24 +02:00
Anton Khirnov
c3311d472a
avienc: sanitize variable naming in write_header()
...
Do not call an AVCodecContext 'stream', that is highly confusing.
Also, add a local variable for the current AVStream in the loop over all
streams.
2014-05-18 10:24:02 +02:00
Anton Khirnov
ab3fdaa713
yop: only set extradata size after it has been successfully allocated
...
Do not leave a non-zero extradata_size set on failure
2014-05-18 10:22:42 +02:00
Anton Khirnov
b513bf6f69
yuv4mpegdec: do not set coded_frame properties
...
coded_frame is not meant to be changed from outside of lavc, and is not
used for decoding.
Set AVCodecContext.field_order instead.
2014-05-18 10:22:08 +02:00
Anton Khirnov
e4dc1000d7
yuv4mpeg: split the demuxer and muxer into separate files
2014-05-18 10:21:31 +02:00
Anton Khirnov
3ef6c5264b
a64: check that extradata exists before reading from it
2014-05-18 10:20:19 +02:00
Anton Khirnov
b136564909
a64: remove unneeded struct qualifier
2014-05-18 10:19:54 +02:00
Anton Khirnov
d256ed78ff
4xm: allocate extradata properly.
...
Pad it with the required amount of zeros, check for malloc failure.
2014-05-18 10:19:35 +02:00
Anton Khirnov
fd056029f4
lavc: add avcodec_free_context().
...
Right now, the caller has to manually manage some allocated
AVCodecContext fields, like extradata or subtitle_header. This is
fragile and prone to leaks, especially if we want to add more such
fields in the future.
The only reason for this behaviour is so that the AVStream codec context
can be reused for decoding. Such reuse is discouraged anyway, so this
commit is the first step to deprecating it.
2014-05-18 10:17:41 +02:00
Anton Khirnov
e1b66778b6
lavc: remove the locking code in avcodec_close()
...
This function should not modify any global state, so there should be no
reason for any locking.
2014-05-18 10:16:35 +02:00
Anton Khirnov
4735784f1c
FATE/opus: increase fuzz for the celt tests
...
This seems to be needed on some 32bit arches.
2014-05-16 14:35:20 +02:00
Anton Khirnov
3b2fbe67bd
lavc: properly handle subtitle_header in avcodec_copy_context()
2014-05-15 07:51:39 +02:00
Anton Khirnov
efc7df6c1f
lavc: preserve the original private data in avcodec_copy_context()
...
If a non-NULL codec was passed to avcodec_alloc_context3(), private data
will be already allocated in dest.
2014-05-15 07:51:16 +02:00
Anton Khirnov
c9281a01b7
lavf: drop the zero-sized packets hack
...
There should not be any valid reason anymore for passing completely
empty packets to lavf.
OTOH side data-only packets can be useful.
2014-05-15 07:50:47 +02:00
Anton Khirnov
0c1959b056
lavf: add AVFMT_FLAG_BITEXACT.
...
Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's
codec context.
Using codec options inside lavf is fragile and can easily break when the
muxing codec context is not the encoding context.
2014-05-15 07:42:07 +02:00
Anton Khirnov
b70d7a4ac7
lavc: add a native Opus decoder.
...
Initial implementation by Andrew D'Addesio <modchipv12@gmail.com > during
GSoC 2012.
Completion by Anton Khirnov <anton@khirnov.net >, sponsored by the
Mozilla Corporation.
Further contributions by:
Christophe Gisquet <christophe.gisquet@gmail.com >
Janne Grunau <janne-libav@jannau.net >
Luca Barbato <lu_zero@gentoo.org >
2014-05-15 06:49:34 +02:00
Anton Khirnov
a738540366
lavf: properly document the distinction between flags and ctx_flags
2014-05-14 07:47:56 +02:00
Anton Khirnov and Luca Barbato
1839fafa95
avconv: Support VDA hwaccel
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2014-05-11 15:00:03 +02:00
Anton Khirnov and Luca Barbato
67afcefb35
lavc: Add new VDA hwaccel
...
It leverages the new hwaccel 1.2 features:
- get_buffer2 is never called
- the internal context is automatically initialized/deinitialized
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2014-05-11 15:00:03 +02:00
Anton Khirnov and Luca Barbato
31a46750c7
vda: use hwaccel private data for internal bitstream buffer
2014-05-11 15:00:03 +02:00
Anton Khirnov and Luca Barbato
66e6c8a7b4
lavu: Add a pixel format for new VDA hwaccel
...
The current hwaccel is broken and cannot be fixed in a compatible
way. It will be deprecated and replaced with a new one.
2014-05-11 14:59:59 +02:00
Anton Khirnov and Luca Barbato
dd2d3b766b
lavc: Add hwaccel private data and init/uninit callbacks
2014-05-11 14:59:07 +02:00
Anton Khirnov and Luca Barbato
a871ef0cc9
hwaccel: Rename priv_data_size to frame_priv_data_size
...
This describes more accurately what this field is for.
2014-05-11 14:59:07 +02:00
Anton Khirnov and Luca Barbato
08bb256758
lavc: document which parts of AVHWAccel are private.
2014-05-11 14:59:07 +02:00
Anton Khirnov and Luca Barbato
5c1d7246cd
lavc: set AVCodecContext.hwaccel in ff_get_format()
...
This way each decoder does not have to do the same thing manually.
2014-05-11 14:59:07 +02:00
Anton Khirnov and Luca Barbato
632ad2248e
lavc: Add an internal wrapper around get_format()
...
It will be useful in the following commits.
2014-05-11 14:59:07 +02:00
Anton Khirnov
9580818c5d
avconv: rename OutputStream.opts to OutputStream.encoder_opts
...
This makes it more clear what is this variable for exactly.
2014-05-03 21:44:24 +02:00
Anton Khirnov
01947f07b8
avconv: remove a useless line
...
Doing anything with that field when we are doing streamcopy (so the
encoder is not opened) should have absolutely no effect.
2014-05-03 21:44:10 +02:00
Anton Khirnov
65ed9e7585
avconv: rename 'codec' to 'enc_ctx'
...
This more clearly describes what is the variable used for.
Also, move its declaration into the block where it is actually used.
2014-05-03 21:43:43 +02:00
Anton Khirnov
650a5206a9
avconv: rename 'icodec' to 'dec_ctx'
...
This more clearly describes what is the variable used for.
2014-05-03 21:43:24 +02:00
Anton Khirnov
f3a6ad22c9
avconv: rename InputStream.opts to InputStream.decoder_opts
...
This makes it more clear what is this variable for exactly.
2014-05-03 21:43:05 +02:00
Anton Khirnov
73ed8558a6
avconv: simplify exit_program() by using more local vars
2014-05-03 21:42:02 +02:00
Anton Khirnov
ba71c74017
lavc: deprecate AVCodecContext.codec_name
...
It is undocumented and has no real use.
2014-05-01 09:31:32 +02:00
Anton Khirnov
e7fc9796d8
lavc: do not use AVCodecContext.codec_name in avcodec_string()
...
That field will be deprecated.
2014-05-01 09:26:57 +02:00
Anton Khirnov
ef9732162c
rmdec: do not export anything to AVCodecContext.codec_name
...
That field will be deprecated and the value that is written there is not
particularly useful.
2014-05-01 09:26:51 +02:00
Anton Khirnov
6072184e70
asfenc: use codec descriptors instead of AVCodecs to write codec info
...
Also, stop using AVCodecContext.codec_name as fallback, since it will be
deprecated.
Changes the result of the lavf-asf test (and its associated seektest),
since 'msmpeg4v3' gets written instead of just 'msmpeg4'.
2014-05-01 09:26:20 +02:00
Anton Khirnov
92e4b643df
oggparseskeleton: do not use AVCodecContext.codec_name
...
That field is undocumented, of dubious use, and will be deprecated.
2014-05-01 09:26:02 +02:00
Anton Khirnov
18f2514c40
mov: export stsd Compressorname in metadata
...
Stop using the undocumented to-be-deprecated AVCodecContext.codec_name
field.
2014-05-01 09:25:46 +02:00
Anton Khirnov
a2941c8cb2
lavc: move CODEC_FLAG_MV0 to mpegvideo
2014-05-01 09:24:18 +02:00
Anton Khirnov
6484149158
lavc: make the xvid-specific "gmc" flag a private option of libxvid
2014-05-01 09:24:02 +02:00
Anton Khirnov
b2c31710c9
lavc: move CODEC_FLAG_NORMALIZE_AQP to mpegvideo
2014-05-01 09:23:19 +02:00
Anton Khirnov
5fccedaa67
lavc: deprecate CODEC_FLAG_INPUT_PRESERVED
...
The addition of reference-counted frames makes it pointless.
2014-05-01 09:22:47 +02:00
Anton Khirnov
141fdc763c
matroska: add the Opus mapping
2014-05-01 08:04:33 +02:00
Anton Khirnov
a1aa37dd0b
matroskaenc: write CodecDelay
2014-05-01 08:03:51 +02:00
Anton Khirnov
eb3b5501e8
matroskadec: read the CodecDelay element
2014-04-30 21:00:01 +02:00
Anton Khirnov
9d76dd952f
h264: drop commented out cruft
2014-04-29 14:49:42 +02:00
Anton Khirnov
c1f92d1358
mpegvideo: remove unused MpegEncContext.b4_stride
2014-04-29 14:49:42 +02:00
Anton Khirnov
6a13505c06
mpegvideo: move the MpegEncContext fields used from arm asm to the beginning
...
This should reduce the frequency with which the offsets need to be
updated.
2014-04-29 14:49:42 +02:00
Anton Khirnov
a61c2115fb
configure: rework dxva in avconv handling
...
Move the dxva check after the dependencies have been detected, make sure
the ole32 library exists.
Fixes build on non-Windows.
2014-04-28 23:02:56 +02:00
Anton Khirnov
1eb57e1d9b
lavc: eliminate tb_unreliable()
...
If framerate estimation is enabled, it makes sense to always apply it,
instead of limiting it to a few specific cases.
2014-04-28 11:34:59 +02:00
Anton Khirnov
f9157463db
lavf: do not use the parser duration for video
...
The parser has no way of knowing video duration, and therefore no video
parsers set it.
2014-04-22 07:46:03 +02:00
Anton Khirnov
1ae8198bca
avconv: always reset packet pts after decoding an audio frame
...
Currently, if a decoder sets AVFrame.pts, we'd send the same timestamp
to it twice, which is wrong.
2014-04-22 07:45:49 +02:00
Anton Khirnov
b19a5e5198
lavc: improve AVCodecContext.delay doxy
2014-04-22 07:44:40 +02:00
Anton Khirnov
a4ed995cab
txd: do not set the codec timebase.
...
It is not supposed to be changed from outside of lavc.
Set the stream timebase and average framerate instead.
2014-04-22 07:44:16 +02:00
Anton Khirnov
21d8f4da91
resample: remove an unneeded context variable
2014-04-17 20:08:19 +02:00
Anton Khirnov
ac976ed91e
lavr: allocate the resampling buffer with a positive size
...
This fixes cases where very few input samples (fewer than needed for one
output sample) are passed to lavr at the beginning.
CC:libav-stable@libav.org
2014-04-13 11:21:20 +02:00
Anton Khirnov
13164e479f
FATE: add tests for more resampling modes
2014-04-13 11:20:49 +02:00
Anton Khirnov
f7c5fd8151
resample: implement flushing
2014-04-13 11:15:45 +02:00
Anton Khirnov
254c95cdd1
resample: split linear into its own function
2014-04-11 16:34:02 +02:00
Anton Khirnov
be394968c8
resample: add initial padding explicitly
...
This simplifies the code, since we do not have to deal with a possibly
negative source index anymore.
2014-04-11 16:33:46 +02:00
Anton Khirnov
eed752d61d
resample: drop useless abs()
...
negative sample_index is handled in the block above.
2014-04-11 16:28:11 +02:00
Anton Khirnov
3c84f6b5d2
resample: reindent
2014-04-11 16:27:22 +02:00
Anton Khirnov
f20892eb67
resample: split the nearest neighbour path into a separate function pointer
2014-04-11 16:26:36 +02:00
Anton Khirnov
b9dea23766
resample: fix avresample_get_delay() return value
...
The correct "next" input sample is not the first sample of the
resampling buffer, but the center sample of the filter_length-sized
block at the beginning.
CC:libav-stable@libav.org
2014-04-11 16:21:25 +02:00
Anton Khirnov
9a07fac678
mov: read hydrogenaudio replaygain information
2014-04-10 13:53:32 +02:00
Anton Khirnov
9c21c08fa7
af_ashowinfo: print a more descriptive name for AV_MATRIX_ENCODING_DOLBY
2014-04-04 18:54:47 +02:00
Anton Khirnov
d1780e01b8
avconv: don't warn on multiple frames per packet for codecs that expect it
2014-03-24 06:21:13 +01:00
Anton Khirnov
4754345027
avconv: print verbose per-stream transcoding statistics
2014-03-24 06:20:38 +01:00
Anton Khirnov
a220b07b0f
avconv: split printing the final statistics into a separate function
2014-03-24 06:17:19 +01:00
Anton Khirnov
baeb59d89b
avconv: rewrite output data size tracking
...
Store a variable per OutputStream instead of globals for
audio/video/extradata. This makes the code simpler and cleaner and fixes
2pass with multiple output streams.
2014-03-24 06:17:04 +01:00
Anton Khirnov
f759f66e36
avconv: explicitly report when the muxing overhead is unknown
2014-03-24 06:16:58 +01:00
Anton Khirnov
781d97fd54
avconv: remove unused nb_frames_dup
...
Frame duplication now happens in vf_fps.
2014-03-24 06:16:31 +01:00