Commit Graph

504 Commits

Author SHA1 Message Date
Michael Niedermayer ac293b6685 Merge commit '194be1f43ea391eb986732707435176e579265aa'
* commit '194be1f43ea391eb986732707435176e579265aa':
  lavf: switch to AVStream.time_base as the hint for the muxer timebase

Conflicts:
	doc/APIchanges
	libavformat/filmstripenc.c
	libavformat/movenc.c
	libavformat/mxfenc.c
	libavformat/oggenc.c
	libavformat/swf.h
	libavformat/version.h
	tests/ref/lavf/mkv

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 19:49:17 +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
Carl Eugen Hoyos 5482780a3b Allow values >31bit for -analyzeduration. 2014-06-10 14:28:34 +02:00
Michael Niedermayer c7e54628e3 Merge commit '95b7fa1729b93bbb3f4fb85a5c0cb53cf970c3c7'
* commit '95b7fa1729b93bbb3f4fb85a5c0cb53cf970c3c7':
  oggenc: Support flushing the muxer

Conflicts:
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 12:54:15 +02:00
Martin Storsjö 95b7fa1729 oggenc: Support flushing the muxer
This allows the caller to write all buffered data to disk, allowing
the caller to know at what byte position in the file a certain
packet starts (any packet written after the flush will be located
after that byte position).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-04 12:21:10 +03:00
Michael Niedermayer d858ee717b Merge commit '6d212599aa684f30511fb08ca30fe2378405304e'
* commit '6d212599aa684f30511fb08ca30fe2378405304e':
  avformat: Provide a standard compliance flag

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-29 00:20:48 +02:00
Luca Barbato 6d212599aa avformat: Provide a standard compliance flag
Provide f_strict for avconv usage.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-28 22:04:56 +02:00
Michael Niedermayer d236d4907c update APIchanges & version for c37d179
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-26 00:20:07 +02:00
Michael Niedermayer 7f7080dc73 avformat: add av_stream_get_end_pts()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-21 18:53:12 +02:00
Michael Niedermayer 7d25af1547 Merge commit 'c23c96b638cbf6c489fd301e6b3d5555632fba37'
* commit 'c23c96b638cbf6c489fd301e6b3d5555632fba37':
  lavf: add av_stream_get_side_data

Conflicts:
	doc/APIchanges
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-20 03:39:04 +02:00
Janne Grunau c23c96b638 lavf: add av_stream_get_side_data 2014-05-20 00:43:52 +02:00
Michael Niedermayer 999a99c865 Merge commit 'a312f71090ee620ee252f2034aef6b13e2dafe9c'
* commit 'a312f71090ee620ee252f2034aef6b13e2dafe9c':
  lavf: deprecate now unused AVStream.pts

Conflicts:
	libavformat/mux.c
	libavformat/version.h

mostly not merged as the code is needed for a/vsync drop handling
and what the code does is what is needed, it could maybe be moved
elsewhere or factored somehow but simply removing it would be droping
these features.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-19 18:38:10 +02:00
Anton Khirnov a312f71090 lavf: deprecate now unused AVStream.pts 2014-05-19 07:14:24 +02:00
Michael Niedermayer eacf7d650d Merge commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52'
* commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52':
  lavf: add AVFMT_FLAG_BITEXACT.

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/flacenc.c
	libavformat/movenc.c
	libavformat/oggenc.c
	libavformat/options_table.h
	libavformat/version.h
	tests/fate/video.mak

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-15 19:16:57 +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
Michael Niedermayer 82e4f39883 Merge commit 'a1aa37dd0b96710d4a17718198a3f56aea2040c1'
* commit 'a1aa37dd0b96710d4a17718198a3f56aea2040c1':
  matroskaenc: write CodecDelay

Conflicts:
	libavformat/matroskaenc.c
	tests/ref/lavf/mkv
	tests/ref/seek/lavf-mkv

This is largely not merged as it causes assertion failures and av sync errors
Further investigation of this is warranted if the changes are found to
fix/improve something in relation to d92b1b1bab

See: d92b1b1bab
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-01 15:56:38 +02:00
Michael Niedermayer 01a39a978c Merge commit '55ddd700c67529ff2c6c4e976673f1341bba7a82'
* commit '55ddd700c67529ff2c6c4e976673f1341bba7a82':
  Silicon Graphics Movie demuxer

Conflicts:
	Changelog
	libavformat/mvdec.c
	libavformat/version.h

See: 6fb40779cd
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-19 20:17:33 +02:00
Peter Ross 55ddd700c6 Silicon Graphics Movie demuxer
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-19 16:24:27 +02:00
Lukasz Marek 6db42a2b6b lavd: add device capabilities API
Provides API to query device capabilities.
Each device must implement callbacks to benefit from this API.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-04-11 15:37:43 +02:00
Carl Eugen Hoyos bf87d582b1 Do not allow writing invalid wav channel layouts by default.
Neither WMP nor QT play wav files with too large channel layouts.
Fixes ticket #3543.
2014-04-09 23:21:38 +02:00
Michael Niedermayer 5297003aa7 Merge commit 'eeadcdfd1a6f3089b6bf6e194d6ece8d3f113123'
* commit 'eeadcdfd1a6f3089b6bf6e194d6ece8d3f113123':
  LucasArts SMUSH demuxer

Conflicts:
	Changelog
	doc/general.texi
	libavformat/smush.c
	libavformat/version.h

See: bef8fd7099
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-06 23:29:47 +02:00
Paul B Mahol eeadcdfd1a LucasArts SMUSH demuxer
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:41:41 +02:00
Carl Eugen Hoyos 45782a98b6 Write aspect ratio when muxing gif. 2014-04-02 09:49:30 +02:00
Michael Niedermayer 1c13e1ef36 avformat/img2dec: Use avformat probing interface to identify format if it has not been otherwise identified
This is used only for distinguishing .pix formats for now.
Which is the only case that has image2 demuxers currently

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 23:54:51 +01:00
Michael Niedermayer 16ddc58bd7 Merge commit '70daeacd6ef8b354dd7d2d77ad393831a5bbf033'
* commit '70daeacd6ef8b354dd7d2d77ad393831a5bbf033':
  PAF demuxer and decoder

Conflicts:
	Changelog
	doc/general.texi
	libavcodec/avcodec.h
	libavcodec/codec_desc.c
	libavcodec/paf.c
	libavcodec/version.h
	libavformat/Makefile
	libavformat/allformats.c
	libavformat/paf.c
	libavformat/version.h

See: 7de4a16508, and others
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-28 04:32:05 +01:00
Paul B Mahol 70daeacd6e PAF demuxer and decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-27 23:34:47 +01:00
Carl Eugen Hoyos 0816abae1e Add an .oga muxer. 2014-03-25 15:47:55 +01:00
Michael Niedermayer 595ba3b962 Merge commit '25b32586566f285d797737863c97a1c5c9c84e2b'
* commit '25b32586566f285d797737863c97a1c5c9c84e2b':
  lavf: add an AVStream field for exporting stream-global side data

Conflicts:
	libavformat/utils.c
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-24 13:41:49 +01:00
Anton Khirnov 25b3258656 lavf: add an AVStream field for exporting stream-global side data 2014-03-24 06:07:51 +01:00
Fred Rothganger 3f3229cd10 avformat: extracting NTP timestamp from RTCP
For muxing, it accepts
both 0 and AV_NOPTS_VALUE. For demuxing, it will present
AV_NOPTS_VALUE when start_time_realtime is unknown.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-12 13:33:14 +01:00
Nicolas George 97e87e09c8 lavf: add subfile protocol. 2014-03-08 12:36:57 +01:00
wm4 b416517cce avformat/microdvd: export the declared frame rate
MicroDVD files are normally frame-based (i.e. there are no absolute
timestamps), but can have an optional frame rate header. If this
header is missing, the timestamps depend on the frame rate of the
video they were created for.

The demuxer will use a fallback frame rate if it's missing from the
header. Currently, applications using libavformat can't know whether
the time base is based on the fallback value, or if a frame rate
header was present.

This commit introduces a subfps AVOption for MicroDVD, and the
demuxer sets it if and only if a frame rate header was present.

Signed-off-by: Clément Bœsch <u@pkh.me>
2014-03-03 23:33:47 +01:00
Alexander Strasser db3c9701f4 lavf/avio: Introduce avio_find_protocol_name
Make it possible to find out what protocol will be chosen
for a given URL.

Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
2014-02-16 22:34:21 +01:00
mrlika e2707a7cf7 avformat/mpegts: DVB subtitles multiple languages support
Copy multiple languages data from PMT to extradata. New 5 bytes
per language extradata format.

Reviewed-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 00:01:28 +01:00
Nicolas George edc7e67669 lavf/lavd: version bump and APIchanges for uncoded frames. 2014-02-11 10:34:32 +01:00
Derek Buitenhuis ef5d32b9c5 Add raw HEVC muxer
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-09 14:29:07 +00:00
Derek Buitenhuis 722554788b Add raw HEVC muxer
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-09 14:15:44 +00:00
Michael Niedermayer 3adb5f8d8b Merge commit 'd9ae1031f5edbd25c8526b4cb51aba66d3bee931'
* commit 'd9ae1031f5edbd25c8526b4cb51aba66d3bee931':
  lavf: improve handling of sparse streams when muxing

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/mux.c
	libavformat/options_table.h
	libavformat/version.h

See: 37ed5df5c5
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 03:19:22 +01:00
Luca Barbato d9ae1031f5 lavf: improve handling of sparse streams when muxing
Currently ff_interleave_packet_per_dts() waits until it gets a frame for
each stream before outputting packets in interleaved order.

Sparse streams (i.e. streams with much fewer packets than the other
streams, like subtitles or audio with DTX) tend to add up latency and in
specific cases end up allocating a large amount of memory.

Emit the top packet from the packet_buffer if it has a time delta
larger than a specified threshold.

Original report of the issue and initial proposed solution by
mus.svz@gmail.com.

Bug-id: 31
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 22:01:42 +01:00
Michael Niedermayer 1bc2fa447c avformat: use AVPROBE_SCORE_STREAM_RETRY, instead of AVPROBE_SCORE_RETRY - 1
This makes the code clearer

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-02 23:50:00 +01:00
Stefano Sabatini 5871ee5072 lavf: add output_ts_offset option to AVFormatContext
This option can be generally useful to set an output offset, needed when
setting an absolute index in the output.
2014-02-02 13:16:17 +01:00
Carl Eugen Hoyos bf9a8d183d Support writing E-AC3 in wav. 2014-01-29 00:48:50 +01:00
Lukasz Marek 102bd64168 lavd: add avdevice_dev_to_app_control_message API
New API allows to send messages from devices to application.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-27 15:18:17 +01:00
Lukasz Marek 7151411b9c lavd: add avdevice_app_to_dev_control_message API
New API allows to send messages from application to devices.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-27 15:18:17 +01:00
James Darnley 86bee7984e AVFormatContext: add metadata_header_padding field
This field is used to store the number of bytes that should be written
as padding to a metadata header of a file.  For example:
 - The FLAC format's METADATA_BLOCK_PADDING [1]
 - The ID3v2 tag format's padding           [2]

[1] http://xiph.org/flac/format.html#metadata_block_padding
[2] http://id3.org/id3v2.3.0#ID3v2_overview

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-24 22:33:21 +01:00
Lukasz Marek 7e8f304846 lavf/libssh: add private_key option
Allows to specify private key to use during authorization.

Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-01-22 00:41:13 +01:00
wm4 1a193c438c lavf: add avformat_get_mov_video_tags() and avformat_get_mov_audio_tags()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-19 22:15:32 +01:00
Michael Niedermayer 58770db2ae Merge commit '33018907bd07b34e0e70d5ae12097265eb3734d7'
* commit '33018907bd07b34e0e70d5ae12097265eb3734d7':
  mp3enc: allow omitting the id3v2 header with -id3v2_version 0

Conflicts:
	doc/muxers.texi
	libavformat/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-17 15:34:24 +01:00
Anton Khirnov 33018907bd mp3enc: allow omitting the id3v2 header with -id3v2_version 0 2014-01-17 10:30:45 +01:00
Serhii Marchuk c917cde9cc mpegts muxer, DVB subtitles encoder: common DVB subtitles payload
Improved DVB subtitles encoder to generate AVPacket.data in the same
format as generates MPEGTS demuxer + DVB subtitles parser. So now single
format of DVB subtitles data is used across all the components of FFmpeg:
only subtitles payload WITHOUT 0x20 0x00 bytes at the beginning and 0xFF
trailing byte.

Improved MPEGTS muxer to support format of DVB subtitles in
AVPacket.data described above: while muxing we add two bytes 0x20 0x00 to
the beginning of and 0xFF to the end of DVB subtitles payload.

The patch fixes DVB subtitle copy problems: tickets #2989 fully and #2024
partly.

Signed-off-by: Clément Bœsch <u@pkh.me>
2014-01-12 16:40:52 +01:00