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
Anton Khirnov
b4679ecdbd
{v,a}f_showinfo: print frame side data
2014-03-24 06:14:55 +01:00
Anton Khirnov
15c5a8d22d
mp3dec: export replaygain tags from ID3v2
2014-03-24 06:13:39 +01:00
Anton Khirnov
06c3cd3c01
af_volume: support using replaygain frame side data
2014-03-24 06:07:51 +01:00
Anton Khirnov
d161ae0a37
frame: add a function for removing side data from a frame
2014-03-24 06:07:51 +01:00
Anton Khirnov
59444c76e6
avconv: add stream-global side data to the first demuxed packet
2014-03-24 06:07:51 +01:00
Anton Khirnov
4a0f665143
libavcodec: when decoding, copy replaygain side data to decoded frames
2014-03-24 06:07:51 +01:00
Anton Khirnov
5a7e35dd23
Add replaygain side data type and code for parsing replaygain tags.
2014-03-24 06:07:51 +01:00
Anton Khirnov
25b3258656
lavf: add an AVStream field for exporting stream-global side data
2014-03-24 06:07:51 +01:00
Anton Khirnov
0e2c3ee9a3
lavc: give a typedeffed name to the AVPacket.side_data struct
2014-03-24 06:07:50 +01:00
Anton Khirnov
a84c8af042
FATE: add a test for the ONE_STR mapping mode of the channelmap filter
2014-03-16 07:44:03 +01:00
Anton Khirnov
e843612695
af_channelmap: fix ONE_STR mapping mode
...
get_channel() returns 0 on success
CC:libav-stable@libav.org
2014-03-16 07:43:52 +01:00
Anton Khirnov
e854b8f9f4
Work around broken floating point limits on some systems.
...
The values of {FLT,DBL}_{MAX,MIN} macros on some systems (older musl
libc, some BSD flavours) are not exactly representable, i.e.
(double)DBL_MAX == DBL_MAX is false
This violates (at least some interpretations of) the C99 standard and
breaks code (e.g. in vf_fps) like
double f = DBL_MAX;
[...]
if (f == DBL_MAX) { // f has not been changed yet
[....]
}
2014-03-10 10:27:17 +01:00
Anton Khirnov
713d3f98c8
vf_shuffleplanes: fix the type of the mapping indices
...
They are TYPE_INT AVOptions, so they must be ints
2014-03-06 09:24:53 +01:00
Anton Khirnov
e1f2987b10
FATE: add tests for the shuffleplanes filter
2014-03-05 21:52:03 +01:00