Commit Graph
100 Commits
Author SHA1 Message Date
Anton KhirnovandDiego 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 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 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 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 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
Anton Khirnov 962d631573 matroskaenc: set the stream timebase earlier
Fixes calculating the ts offset for audio codecs with delay.
2014-05-29 08:01:58 +02:00
Anton Khirnov 43e7f0797f flvenc: only write the framerate tag based on avg_frame_rate
Do not fall back on the codec timebase, since that can be anything for
VFR video.
2014-05-29 08:01:30 +02:00
Anton Khirnov cf6977712c movenc: write avg_frame_rate as the framerate, not the codec timebase 2014-05-29 08:01:23 +02:00
Anton Khirnov 81eec081af matroskaenc: base DefaultDuration on the framerate, not the codec timebase
This results in DefaultDuration not being written when the framerate is
not known, but as this field is purely informative, this should not
break any sane demuxers.
2014-05-29 08:00:57 +02:00
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