* commit '07584eaf4a95db3f11d3bc411f9786932829e82b':
mpegts: check substreams before discarding
Add a smooth streaming segmenter muxer
file: Add an avoption for disabling truncating existing files on open
img2dec: always close AVIOContexts
rtpdec_jpeg: Error out on other unsupported type values as well
rtpdec_jpeg: Disallow using the reserved q values
rtpdec_jpeg: Fold the default qtables case into an existing if statement
rtpdec_jpeg: Store and reuse old qtables for q values 128-254
rtpdec_jpeg: Simplify the calculation of the number of qtables
rtpdec_jpeg: Add more comments about the fields in the SOF0 section
rtpdec_jpeg: Clarify where the subsampling magic numbers come from
rtpdec_jpeg: Don't use a bitstream writer for the EOI marker
rtpdec_jpeg: Don't needlessly use a bitstream writer for the header
rtpdec_jpeg: Simplify writing of the jpeg header
rtpdec_jpeg: Merge two if statements
rtpdec_jpeg: Write the DHT section properly
Conflicts:
libavformat/Makefile
libavformat/allformats.c
libavformat/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Windows CE doesn't have neither mkdir nor _mkdir officially (only
CreateDirectoryW), but mingw32ce has compat wrappers with these names
(declared in io.h since direct.h is unavailable).
Signed-off-by: Martin Storsjö <martin@martin.st>
This muxer splits the output from the ismv muxer into individual
files, in realtime.
The same can also be done by the standalone tool ismindex, but this
muxer is needed for doing it in realtime (especially for live
streams that need extra handling for updating the lookahead fields
in the fragment headers).
Using this muxer, one can deliver live smooth streaming from a
normal static file web server. (Using ismindex, one can deliver
premade smooth streaming files from a static file web server,
or prepare files for serving with IIS.)
Signed-off-by: Martin Storsjö <martin@martin.st>
Everything written with this bitstream writer is 8/16 bit units
(except for a pair of 4 bit values), so using a bitstream writer
isn't necessary.
Signed-off-by: Martin Storsjö <martin@martin.st>
Generalize writing of any number of qtables. Don't manually write
16 bit values in two separate calls.
Signed-off-by: Martin Storsjö <martin@martin.st>
Currently the size header of the generated DHT section is
incorrect, making the mjpeg decoder just skip it. Since the
written huffman tables are the default ones, this failure had
gone undetected.
Signed-off-by: Martin Storsjö <martin@martin.st>
* qatar/master:
rtpdec_jpeg: Add support for default quantizers
x86: dsputil: Move specific optimization settings out of global init function
avplay: get rid of ugly casts in the options table
avplay: fix prototypes for option callbacks.
flvdec: always set AVFMTCTX_NOHEADER.
file: Use a normal private context for storing the file descriptor
configure: Adjust the xgetbv instrinsic check
configure: Add --disable-inline-asm command line option
configure: Don't try to enable the log2 function on msvcrt
Conflicts:
configure
ffplay.c
libavcodec/x86/dsputil_mmx.c
libavformat/file.c
libavformat/flvdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Allow to specify options affecting the segment list generation.
In particular: add +live and +cache flags.
For a full discussion read trac ticket #1642:
http://ffmpeg.org/trac/ffmpeg/ticket/1642
Also add live M3U8 generation example.
* qatar/master:
x86: dsputil: Only compile motion_est code when encoders are enabled
mem: fix typo in check for __ICC
fate: mp3: drop redundant CMP setting
rtp: Depacketization of JPEG (RFC 2435)
Rename ff_put_string to avpriv_put_string
mjpeg: Rename some symbols to avpriv_* instead of ff_*
yadif: cosmetics
Conflicts:
Changelog
libavcodec/mjpegenc.c
libavcodec/x86/Makefile
libavfilter/vf_yadif.c
libavformat/version.h
libavutil/mem.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
mov_chan: Only set the channel_layout if setting it to a nonzero value
mov_chan: Reindent an incorrectly indented line
mp2 muxer: mark as AVFMT_NOTIMESTAMPS.
x86: float_dsp: fix ff_vector_fmac_scalar_avx() on Win64
x86: more specific checks for availability of required assembly capabilities
x86: avcodec: Drop silly "_mmx" suffix from dsputil template names
fate: Drop redundant setting of FUZZ to 1
cavsdsp: set idct permutation independently of dsputil
x86: allow using add_hfyu_median_prediction_cmov on any cpu with cmov
Conflicts:
libavcodec/x86/dsputil_mmx.c
libavformat/mp3enc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
If regularly parsing new chan atoms (as in rtpdec_qt), but the
chan atoms don't actually contain any channel layout, don't reset
the value that the caller has filled in (by guessing).
Signed-off-by: Martin Storsjö <martin@martin.st>
It is included for the open/read/write/close functions. On
MSVC, where this header does not exist, the same functions
are provided by io.h, which is already included.
On windows, these functions are provided by io.h. Make sure
io.h is included if it exists, regardless of the setmode
function.
Signed-off-by: Martin Storsjö <martin@martin.st>
Conflicts:
configure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
unistd.h used to be required for gethostname. On windows, gethostname
is provided by winsock2.h. Now network.h includes both unistd.h and
winsock2.h if they exist.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
mov_chan: Pass a separate AVIOContext for reading
af_asyncts: check return value from lavr when flushing.
mss2: simplify loop in decode_rle()
mss12: avoid unnecessary division in arith*_get_bit()
mss2: do not try to read too many palette entries
mpegvideo: set AVFrame fields to NULL after freeing the base memory
configure: Set the right cc_e flags for msvc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This fixes crashes when called from rtpdec_qt, where
AVFormatContext->pb is null, a crash present since 3bab7cd128.
Signed-off-by: Martin Storsjö <martin@martin.st>
Make internal small_strptime() function public, and use it in place of
strptime().
This allows to avoid a dependency on strptime() on systems which do not
support it.
In particular, fix trac ticket #992.
* commit 'd58dd4b5b5d31cfd4092e38a5f2c894eee2ab078':
avopt: Store defaults for AV_OPT_TYPE_FLAGS in the i64 union member
Conflicts:
libavcodec/libvpxenc.c
libavcodec/options_table.h
libavfilter/vf_drawtext.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '124134e42455763b28cc346fed1d07017a76e84e':
avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union member
Conflicts:
libavcodec/aacenc.c
libavcodec/libopenjpegenc.c
libavcodec/options_table.h
libavdevice/bktr.c
libavdevice/v4l2.c
libavdevice/x11grab.c
libavfilter/af_amix.c
libavfilter/vf_drawtext.c
libavformat/movenc.c
libavformat/options_table.h
libavutil/opt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
configure: add support for bdver1 and bdver2 CPU types.
avio: make avio_close NULL the freed buffer
pixdesc: cosmetics
proresenc: Don't free a buffer not owned by the codec
proresenc: Write the full value in one put_bits call
adpcmenc: Calculate the IMA_QT predictor without overflow
x86: Add convenience macros to check for CPU extensions and flags
x86: h264dsp: drop some unnecessary ifdefs around prototype declarations
mss12: merge decode_pixel() and decode_top_left_pixel()
mss12: reduce SliceContext size from 1067 to 164 KB
mss12: move SliceContexts out of the common context into the codec contexts
Conflicts:
libavformat/aviobuf.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This fixes stream lookup in flv demuxer. When used with librtmp
protocol streams are sometimes added after head arrived. If the
first stream added in flv header reader is Audio stream then it
is messed with Video stream added later in the code patched.
The result is I have 2 Audio streams (first of them is said to have
a video codec like h264) instead of Audio/Video pair.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
crypto: Remove a stray double space
Rename missed cases of FF_OPT_TYPE_* to AV_OPT_TYPE_*
Conflicts:
libavfilter/vf_delogo.c
libavfilter/vf_lut.c
libavfilter/vsrc_testsrc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
After much discussion and back-and-forth, we reached the conclusion
that matroska uses convergence_duration for subtitle duration because
a 32bit value isn't large enough to store the duration if sub-micro-second
timebases are used. Matroska may not be the only one that supports these
timebases, but it's certainly the only one that ffmpeg attempts to support
in this way.
The long term solution that we seemed to reach was that if we encounter
a matroska file with a sub-micro-second timebase, we should internally
scale it up to at least micro-second, and then duration can be used
normally. This suggests that on the encode side, we should not allow
generation of files with sub-micro-second timebases, but that's a separate
issue.
That being a non-trivial change, and the subtitle interoperability breakage
being very real, I'm re-submitting this small change for consideration.
In this diff, we make sure that duration is populated by the matroska
demuxer, and that convergence_duration is respected in matroskaenc and
srtenc, but that duration is used otherwise. This ends up being a strict
improvement - pipelines that use convergence duration are unchanged, and
ones that are currently broken due to the duration mismatch will start
working - except for the ones with the extreme timebases, but those were
already broken.
Signed-off-by: Philip Langdale <philipl@overt.org>
Closed caption data is definitely not teletext.
Since it contains a EIA-608 compatibility stream,
the EIA_608 codec ID is at least not completely wrong.
Fixes subtitle playback in MPlayer with the sample in
trac ticket #1482.
To fix the ticket itself I expect FFmpeg will need
a closed-caption to SRT decoder first.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* qatar/master:
MSS1 and MSS2: set final pixel format after common stuff has been initialised
MSS2 decoder
configure: handle --disable-asm before check_deps
x86: Split inline and external assembly #ifdefs
configure: x86: Separate inline from standalone assembler capabilities
pktdumper: Use a custom define instead of PATH_MAX for buffers
pktdumper: Use av_strlcpy instead of strncpy
pktdumper: Use sizeof(variable) instead of the direct buffer length
Conflicts:
Changelog
configure
libavcodec/allcodecs.c
libavcodec/avcodec.h
libavcodec/codec_desc.c
libavcodec/dct-test.c
libavcodec/imgconvert.c
libavcodec/mss12.c
libavcodec/version.h
libavfilter/x86/gradfun.c
libswscale/x86/yuv2rgb.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This improves dts validity checks and consequently fps detection of files with invalid dts
Fixes Ticket1681
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'd488c3bcbaf7ddda42597e014deb661a7e9e2112':
configure: support Bitrig OS
yuv2rgb: handle line widths that are not a multiple of 4.
graph2dot: Use the fallback getopt implementation if needed
tools: Include io.h for open/read/write/close if unistd.h doesn't exist
testprogs: Remove unused includes
qt-faststart: Use other seek/tell functions on MSVC than on mingw
ismindex: Include direct.h for _mkdir on windows
sdp: Use static const char arrays instead of pointers to strings
x86: avcodec: Drop silly "_mmx" suffixes from filenames
x86: avcodec: Drop silly "_sse" suffixes from filenames
sdp: Include profile-level-id for H264
utvideoenc: use ff_huff_gen_len_table
huffman: add ff_huff_gen_len_table
cllc: simplify/fix swapped data buffer allocation.
rtpdec_h264: Don't set the pixel format
h264: Check that the codec isn't null before accessing it
audio_frame_queue: Define af_queue_log_state before using it
Conflicts:
libavcodec/audio_frame_queue.c
libavcodec/h264.c
libavcodec/huffman.h
libavcodec/huffyuv.c
libavcodec/utvideoenc.c
libavcodec/x86/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This enables replacing the -l and -L flags used to specify the
just-built libraries when linking the tools and shared libs with
non-standard syntaxes. System library flags are already handled
by the filtering mechanism in configure.
Signed-off-by: Mans Rullgard <mans@mansr.com>
This patch accepts 'timeout' option for input mode only. As far as i know, UDP output cannot introduce delays.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
If set non-zero, limits duration of retry_transfer_wrapper() loop, thus
affects ffurl_read*(), ffurl_write()
Measured in microseconds.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Implements support for tmpo atom for mp4 files, typically used to store BPM. -metadata "tmpo=127" as a command line option will record 127 as the BPM in the meta data.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
vf_hqdn3d: Don't declare the loop variable within the for loop
huffyuv: update to current coding style
huffman: update to current coding style
rtsp: Free the rtpdec context properly
build: fft: x86: Drop unused YASM-OBJS-FFT- variable
Conflicts:
libavcodec/huffman.c
libavcodec/huffyuv.c
libavcodec/x86/Makefile
libavfilter/vf_hqdn3d.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
While not explicitly stated in the specs, the original author
has stated that S_TEXT/UTF-8 is expected to be text using Subrip
markup, but without Subrip in-band timing.
So, now that we have a decoder that conforms to this expectation,
let's use it.
Note that this change will impact tools that use libavformat. If
they expect srt subtitles to have CODEC_ID_TEXT, they must be
adjusted to expect CODEC_ID_SUBRIP. The actual content is, obviously,
unchanged.
Signed-off-by: Philip Langdale <philipl@overt.org>
* qatar/master:
doc/APIchanges: add an entry for codec descriptors.
vorbisenc: set AVCodecContext.bit_rate to 0
vorbisenc: fix quality parameter
FATE: add ALAC encoding tests
lpc: fix alignment of windowed samples for odd maximum LPC order
alacenc: use s16p sample format as input
alacenc: remove unneeded sample_fmt check
alacenc: fix max_frame_size calculation for the final frame
adpcm_swf: Use correct sample offsets when using trellis.
rtmp: support strict rtmp servers
mjpegdec: support AVRn interlaced
x86: remove FASTDIV inline asm
Conflicts:
doc/APIchanges
libavcodec/mjpegdec.c
libavcodec/vorbisenc.c
libavutil/x86/intmath.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
In order to send or receive a stream FCPublish, FCSubscribe and _checkbw
are completely optional and often not implemented. releaseStream over a
non-existen stream might report an error instead of being silent.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
The special cases in demuxers and decoders are a mess otherwise (and more
would be needed to support it fully)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* qatar/master:
mpegvideo_enc: don't use deprecated avcodec_encode_video().
cmdutils: refactor -codecs option.
avconv: make -shortest a per-output file option.
lavc: add avcodec_descriptor_get_by_name().
lavc: add const to AVCodec* function parameters.
swf(dec): replace CODEC_ID with AV_CODEC_ID
dvenc: don't use deprecated AVCODEC_MAX_AUDIO_FRAME_SIZE
rtmpdh: Do not generate the same private key every time when using libnettle
rtp: remove ff_rtp_get_rtcp_file_handle().
rtsp.c: use ffurl_get_multi_file_handle() instead of ff_rtp_get_rtcp_file_handle()
avio: add (ff)url_get_multi_file_handle() for getting more than one fd
h264: vdpau: fix crash with unsupported colorspace
amrwbdec: Decode the fr_quality bit properly
Conflicts:
Changelog
cmdutils.c
cmdutils_common_opts.h
doc/ffmpeg.texi
ffmpeg.c
ffmpeg.h
ffmpeg_opt.c
libavcodec/h264.c
libavcodec/options.c
libavcodec/utils.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>