OSDN Git Service
Martin Storsjö [Wed, 7 Jan 2015 21:49:41 +0000 (23:49 +0200)]
libfdk-aacdec: Make sure decoding doesn't add any extra delay in the latest version of fdk-aac
The latest version added support for a new option for enabling
a signal level limiter, which adds some extra delay. In fdk-aac, this
is enabled by default, but disable it by default here since we'd rather
have zero-delay decoding.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 7 Jan 2015 22:03:09 +0000 (00:03 +0200)]
libopenh264enc: Fix a typo and some nitpicks
Also move the .long_name entry to below the .name entry.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 7 Jan 2015 22:02:05 +0000 (00:02 +0200)]
doc: Add initial documentation about the OpenH264 encoder wrapper
Signed-off-by: Martin Storsjö <martin@martin.st>
Alexandre Colucci [Wed, 7 Jan 2015 11:18:08 +0000 (12:18 +0100)]
xsub: Support DXSA subtitles
These have a DXSA tag and contain alpha in addition to
color values for palette.
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Tue, 30 Dec 2014 22:17:17 +0000 (23:17 +0100)]
mpeg: Remove unused field
Luca Barbato [Mon, 5 Jan 2015 09:40:41 +0000 (10:40 +0100)]
segment: Fix the failure paths
A failure in segment_end() or segment_start() would lead to freeing
a dangling pointer and in general further calls to seg_write_packet()
or to seg_write_trailer() would have the same faulty behaviour.
CC: libav-stable@libav.org
Reported-By: luodalongde@gmail.com
Martin Storsjö [Thu, 12 Dec 2013 15:13:55 +0000 (17:13 +0200)]
libavcodec: Add an OpenH264 encoder wrapper
Compared to existing, common opensource H264 encoders, this can be
useful since it has got a different license (BSD instead of GPL).
Performance- and qualitywise it is comparable to x264 in ultrafast
mode.
Hooking it up as an encoder in libavcodec also simplifies comparing
it against other common encoders.
This requires OpenH264 1.3 or newer. Since the OpenH264 API and ABI
changes frequently, only releases are supported.
To take advantage of the OpenH264 patent offer, the OpenH264 library
must not be redistributed, but downloaded at runtime at the end-user's
system.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 5 Jan 2015 13:13:48 +0000 (15:13 +0200)]
movenc: Fix a typo in a comment
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 5 Jan 2015 13:07:01 +0000 (15:07 +0200)]
movenc: Readd an accidentally removed condition
This was removed accidentally as part of
847bf598. This could cause
groundless warning logging.
Signed-off-by: Martin Storsjö <martin@martin.st>
Justin Ruggles [Tue, 4 Feb 2014 20:40:32 +0000 (15:40 -0500)]
isom: add 'mp1v' fourcc
As referenced in the CoreMedia API docs.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Wed, 17 Dec 2014 15:02:10 +0000 (16:02 +0100)]
msmpeg4: check memory allocations and propagate errors
Bug-Id: CID
1257781
Vittorio Giovara [Thu, 18 Dec 2014 19:26:58 +0000 (20:26 +0100)]
ulti: invert the order of parameters of ulti_decode_frame()
This is the order that the caller uses in the rest of the file.
Variables are modified to reflect the order above too and their
initialization is merged with their declarationt. No behavioral
change.
Bug-Id: CID 732286
Vittorio Giovara [Tue, 2 Dec 2014 14:58:42 +0000 (14:58 +0000)]
vf_interlace: remove the warning tag in the message
The log level is already a warning.
Vittorio Giovara [Tue, 2 Dec 2014 14:58:41 +0000 (14:58 +0000)]
vf_interlace: merge FIELD_LOWER check
Vittorio Giovara [Tue, 2 Dec 2014 14:58:39 +0000 (14:58 +0000)]
vf_interlace: also assert for height
Vittorio Giovara [Tue, 2 Dec 2014 14:58:38 +0000 (14:58 +0000)]
vf_interlace: use image width rather than linesize
Based on a patch by Michael Niedermayer <michaelni@gmx.at>.
Agostino Sarubbo [Sun, 21 Dec 2014 13:38:57 +0000 (14:38 +0100)]
build: Use -Werror=format-security
Reduce the chance of introducing a class of bugs quite hard to track.
Stefano Pigozzi [Mon, 29 Dec 2014 20:28:50 +0000 (21:28 +0100)]
vda: error out if decoded CVPixelBuffer is empty
On some video samples, VDA silently fails to decode frames and returns
kVDADecoderNoErr. Error out in these cases to avoid producing AVFrames with
empty planes.
Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
Diego Biurrun [Thu, 18 Dec 2014 19:07:29 +0000 (20:07 +0100)]
ffv1: const correctness for encode_rgb_frame()
libavcodec/ffv1enc.c:922:53: warning: passing argument 5 of ‘encode_rgb_frame’ discards ‘const’ qualifier from pointer target type
Diego Biurrun [Thu, 18 Dec 2014 19:07:28 +0000 (20:07 +0100)]
ffv1: Drop unnecessary casts and const qualifiers to match function signatures
libavcodec/ffv1dec.c:898:36: warning: cast discards ‘const’ qualifier from pointer target type
Vittorio Giovara [Wed, 17 Dec 2014 15:02:07 +0000 (16:02 +0100)]
swscale: check memory allocations
CC: libav-stable@libav.org
Bug-Id: CID
1257779
Vittorio Giovara [Thu, 18 Dec 2014 19:26:57 +0000 (20:26 +0100)]
opt: check memory allocation
CC: libav-stable@libav.org
Bug-Id: CID
1257771
Martin Storsjö [Fri, 2 Jan 2015 23:44:38 +0000 (01:44 +0200)]
movenc: Enable editlists by default if delay_moov is enabled
Being able to write editlists properly is one of the main points
in the delay_moov flag.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Sat, 3 Jan 2015 19:27:21 +0000 (21:27 +0200)]
libavformat: Check for malloc failures in avformat_new_stream
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Sat, 3 Jan 2015 19:22:31 +0000 (21:22 +0200)]
libavformat: Remove a misleading/incorrect comment
This comment can be traced back to the initial commit from 2001,
and it seemed to be misleading/incorect already back then. (It
was used for normal, non-raw file formats already then.)
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 2 Jan 2015 21:29:27 +0000 (23:29 +0200)]
configure: Remap -L to -libpath for msvc
This allows using libraries that are detected via pkg-config with
msvc. (The libraries themselves may have to be built with MSVC
though.)
Signed-off-by: Martin Storsjö <martin@martin.st>
Johan Andersson [Sat, 3 Jan 2015 16:31:36 +0000 (17:31 +0100)]
cmdutils: update copyright year to 2015.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 31 Dec 2014 22:58:06 +0000 (00:58 +0200)]
avisynth: Use RTLD_LOCAL instead of RTLD_GLOBAL
There shouldn't be any need to add the loaded libraries to the global
symbol namespace.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 28 Nov 2014 07:42:53 +0000 (09:42 +0200)]
sidxindex: Remove parsing that isn't necessary any longer
When we don't adjust the Period start time, we don't need to
parse the earliest_presentation_time from the sidx boxes either.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 28 Nov 2014 07:40:31 +0000 (09:40 +0200)]
sidxindex: Don't adjust the Period start time depending on the track start time
This was only necessary to get playback to start with dash.js 1.2.0,
it has been fixed in the git version.
The previous behaviour was incorrect - the Period's start time
is irrespective of the actual first timestamp of the contents
within the period. The Period start time only says when, within the
global timeline, this particular piece should start to be played
back.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 17 Nov 2014 12:34:46 +0000 (14:34 +0200)]
dashenc: Use pts for MPD timeline timestamps
This should be more correct. This also should give more sensible
switching between video streams with different amount of b-frame
delay.
The current dash.js release (1.2.0) fails to start playback of
such files from the start (if the start pts is > 0), but this has
been fixed in the current git version of dash.js.
Also enable the use of edit lists, so that streams in many cases
start at pts=0.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 3 Nov 2014 19:42:09 +0000 (21:42 +0200)]
dashenc: Use delay_moov
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 29 Dec 2014 11:32:21 +0000 (13:32 +0200)]
movenc: Get rid of a hack for updating the dvc1 atom
Use the more generic approach with the delay_moov flag, instead of
having a update mechanism specific to this one single atom.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 3 Nov 2014 14:09:15 +0000 (16:09 +0200)]
movenc: Add an option for delaying writing the moov with empty_moov
This delays writing the moov until the first fragment is written,
or can be flushed by the caller explicitly when wanted. If the first
sample in all streams is available at this point, we can write
a proper editlist at this point, allowing streams to start at
something else than dts=0. For AC3 and DNXHD, a packet is
needed in order to write the moov header properly.
This isn't added to the normal behaviour for empty_moov, since
the behaviour that ftyp+moov is written during avformat_write_header
would be changed. Callers that split the output stream into header+segments
(either by flushing manually, with the custom_frag flag set, or by
just differentiating between data written during avformat_write_header
and the rest) will need to be adjusted to take this option into use.
For handling streams that start at something else than dts=0, an
alternative would be to use different kinds of heuristics for
guessing the start dts (using AVCodecContext delay or has_b_frames
together with the frame rate), but this is not reliable and doesn't
necessarily work well with stream copy, and wouldn't work for getting
the right initialization data for AC3 or DNXHD either.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 3 Nov 2014 18:34:27 +0000 (20:34 +0200)]
movenc: Use start_dts/cts instead of cluster[0] for writing edit lists
This allows writing edit lists even when track->entry == 0, if
the start times have been set.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 18 Dec 2014 21:59:27 +0000 (23:59 +0200)]
movenc: Remove an unnecessary condition when flushing fragments
If fragments == 0 it means we haven't written any moov atom yet.
If the empty_moov flag is set, we already have written an empty moov
atom at startup. Thus, the check for empty_moov is redundant.
This is in preparation for allowing writing the moov atom later,
even when using the empty moov flag.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 18 Dec 2014 21:52:42 +0000 (23:52 +0200)]
movenc: Factorize writing ftyp and other identification tags to a separate function
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 29 Dec 2014 12:57:05 +0000 (14:57 +0200)]
dashenc: Remove some stray double spaces
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 29 Dec 2014 13:39:23 +0000 (15:39 +0200)]
dashenc: Fix writing of timelines that don't start at t=0
When writing an explicit time, reset the cur_time variable to this
value as well. This avoids writing excessive time attributes for each
segment in the timeline, as long as the segments are continuous.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Sun, 28 Dec 2014 22:20:08 +0000 (00:20 +0200)]
fate: Use bitexact conversions in the dpxparser test
This fixes fate on e.g. ppc.
Signed-off-by: Martin Storsjö <martin@martin.st>
Anton Khirnov [Thu, 25 Dec 2014 21:46:39 +0000 (22:46 +0100)]
h264: restore a block mistakenly removed in
e10fd08a
CC: libav-stable@libav.org
Bug-ID: 781
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:05 +0000 (19:15 +0200)]
vdpau: add support for the H.264 High 4:4:4 Predictive profile
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:11 +0000 (19:15 +0200)]
avconv_vdpau: allocate video surface of VDPAU-specified size
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:10 +0000 (19:15 +0200)]
vdpau: add support for 4:2:2 and 4:4:4 chroma sampling
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:09 +0000 (19:15 +0200)]
vdpau: add helper for surface chroma type and size
Since the VDPAU pixel format does not distinguish between different
VDPAU video surface chroma types, we need another way to pass this
data to the application.
Originally VDPAU in libavcodec only supported decoding to 8-bits YUV
with 4:2:0 chroma sampling. Correspondingly, applications assumed that
libavcodec expected VDP_CHROMA_TYPE_420 video surfaces for output.
However some of the new HEVC profiles proposed for addition to VDPAU
would require different depth and/or sampling:
http://lists.freedesktop.org/archives/vdpau/2014-July/000167.html
...as would lossless AVC profiles:
http://lists.freedesktop.org/archives/vdpau/2014-November/000241.html
To preserve backward binary compatibility with existing applications,
a new av_vdpau_bind_context() flag is introduced in a further change.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:08 +0000 (19:15 +0200)]
libavcodec: add AV_HWACCEL_ALLOW_HIGH_DEPTH flag
This can be used by the application to signal its ability to cope with
video surface of types other than 8-bits YUV 4:2:0.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:07 +0000 (19:15 +0200)]
avcodec: add AVCodecContext.sw_pix_fmt
This carries the pixel format that would be used if it were not for
hardware acceleration. This is equal to AVCodecContext.pix_fmt if
hardware acceleration is not in use.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Rémi Denis-Courmont [Fri, 19 Dec 2014 17:15:06 +0000 (19:15 +0200)]
h264: factor hwaccel pixel formats list
This is to avoid proliferation of similar tables in following changes.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Kieran Kunhya [Fri, 17 Oct 2014 23:25:16 +0000 (00:25 +0100)]
mpegts: add support for Opus
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Martin Storsjö [Mon, 15 Dec 2014 21:55:30 +0000 (23:55 +0200)]
libavformat: Only use MoveFileExA when targeting the desktop API subset
The MoveFileExA is available in the headers regardless which API
subset is targeted, but it is missing in the Windows Phone link
libraries. When targeting Windows Store apps, the function is
available both in the headers and in the link libraries, and thus
there is no indication for the build system that this function
should be avoided - such an indication is only given by the
Windows App Certification Kit, which forbids using the MoveFileExA
function.
Therefore check the WINAPI_FAMILY defines instead, to figure out
which API subset is targeted.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 19 Dec 2014 13:26:23 +0000 (15:26 +0200)]
rtpenc_mpegts: Call write_trailer for the mpegts muxer even if no output buffer exists
Since the mpegts muxer now can handle being called with a NULL
AVIOContext, we don't need to try to allocate one before calling
write_trailer.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 19 Dec 2014 13:23:06 +0000 (15:23 +0200)]
mpegts: Support running the write_trailer function without an AVIOContext
If opening and closing dynamic buffers as AVIOContext, we may
not have any AVIOContext available when wanting to close and
deallocate the muxer. Allow calling write_trailer despite this.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 19 Dec 2014 13:40:02 +0000 (15:40 +0200)]
libavformat: Allow calling av_write_trailer with a NULL AVIOContext
Signed-off-by: Martin Storsjö <martin@martin.st>
Michael Niedermayer [Sat, 4 Oct 2014 20:15:07 +0000 (22:15 +0200)]
on2avc: check number of channels
Fixes invalid memory access.
CC: libav-stable@libav.org
Bug-ID: CVE-2014-8549
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Michael Niedermayer [Fri, 3 Oct 2014 20:50:45 +0000 (22:50 +0200)]
smc: fix the bounds check
Fixes invalid writes when there are more blocks in a run than total
remaining blocks.
CC: libav-stable@libav.org
Bug-ID: CVE-2014-8548
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Michael Niedermayer [Fri, 3 Oct 2014 18:15:52 +0000 (20:15 +0200)]
gifdec: refactor interleave end handling
Fixes invalid writes with very small image heights.
CC: libav-stable@libav.org
Bug-ID: CVE-2014-8547
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Sun, 14 Dec 2014 20:01:59 +0000 (21:01 +0100)]
mmvideo: check frame dimensions
The frame size must be set by the caller and each dimension must be a
multiple of 2.
CC: libav-stable@libav.org
Bug-ID: CVE-2014-8543
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Anton Khirnov [Sun, 14 Dec 2014 20:01:59 +0000 (21:01 +0100)]
jvdec: check frame dimensions
The frame size must be set by the caller and each dimension must be a
multiple of 8.
CC: libav-stable@libav.org
Bug-ID: CVE-2014-8542
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Anton Khirnov [Sun, 14 Dec 2014 19:52:13 +0000 (20:52 +0100)]
mjpegdec: check for pixel format changes
Fixes possible invalid memory access.
Based on code by Michael Niedermayer <michaelni@gmx.at>
CC: libav-stable@libav.org
Bug-ID: CVE-2014-8541
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Anton Khirnov [Tue, 12 Aug 2014 14:39:10 +0000 (14:39 +0000)]
mov: avoid a memleak when multiple stss boxes are present
CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Vittorio Giovara [Wed, 17 Dec 2014 15:01:45 +0000 (16:01 +0100)]
imgconvert: check memory allocations and propagate errors
Vittorio Giovara [Wed, 17 Dec 2014 15:01:46 +0000 (16:01 +0100)]
wma: check memory allocations and propagate errors
Vittorio Giovara [Wed, 17 Dec 2014 14:19:43 +0000 (15:19 +0100)]
lavfi: always check av_expr_parse_and_eval() return value
CC: libav-stable@libav.org
Bug-Id: CID 703624
Vittorio Giovara [Wed, 17 Dec 2014 14:19:41 +0000 (15:19 +0100)]
xcbgrab: Move NULL check before pointer dereference
Bug-Id: CID
1254668
Vittorio Giovara [Wed, 17 Dec 2014 14:19:42 +0000 (15:19 +0100)]
takdec: check av_samples_get_buffer_size() return value
CC: libav-stable@libav.org
Bug-Id: CID 747734
Vittorio Giovara [Wed, 17 Dec 2014 14:19:40 +0000 (15:19 +0100)]
aacps: invert the order of parameters of ipdopd_reset()
This is the order that the caller uses in the rest of the file. The
same operation is applied to both parameters, so this change is only
done for consistency, it doesn't change the actual behaviour.
Bug-Id: CID 732285 / CID 732286
Vittorio Giovara [Wed, 17 Dec 2014 14:19:39 +0000 (15:19 +0100)]
rtsp: check ffurl_get_file_handle() return value
CC: libav-stable@libav.org
Bug-Id: CID 717844
Vittorio Giovara [Wed, 17 Dec 2014 13:53:45 +0000 (14:53 +0100)]
check memory errors from av_strdup()
Vittorio Giovara [Wed, 17 Dec 2014 13:53:44 +0000 (14:53 +0100)]
assdec: check the right variable
CC: libav-stable@libav.org
Bug-Id: CID
1257815
Vittorio Giovara [Wed, 17 Dec 2014 13:53:43 +0000 (14:53 +0100)]
aacenc: correctly check returned value
CC: libav-stable@libav.org
Vittorio Giovara [Wed, 17 Dec 2014 13:53:42 +0000 (14:53 +0100)]
lcl: return an appropriate error code
Vittorio Giovara [Wed, 17 Dec 2014 13:53:41 +0000 (14:53 +0100)]
mpegts: check get16() return value
And break flow of execution rather than exiting the function.
CC: libav-stable@libav.org
Bug-Id: CID 732186
James Almer [Fri, 12 Dec 2014 20:57:43 +0000 (20:57 +0000)]
oggdec: add support for VP8 demuxing
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Tue, 16 Dec 2014 09:43:48 +0000 (10:43 +0100)]
cmdutils: check file access functions return values
CC: libav-stable@libav.org
Bug-Id: CID 703706
Vittorio Giovara [Tue, 16 Dec 2014 09:33:38 +0000 (10:33 +0100)]
a64multi: check elbg return values
Vittorio Giovara [Tue, 16 Dec 2014 09:33:37 +0000 (10:33 +0100)]
roqvideo: check memory allocations and propagate errors
Vittorio Giovara [Tue, 16 Dec 2014 09:33:36 +0000 (10:33 +0100)]
elbg: check memory allocations and propagate errors
Luca Barbato [Mon, 15 Dec 2014 19:38:00 +0000 (20:38 +0100)]
lavu: Refactor side data wiping
And make sure the nb_side_data field is reset as well.
Based on an initial patch from wm4 <nfxjfg@googlemail.com>.
CC: libav-stable@libav.org
Vittorio Giovara [Fri, 12 Dec 2014 03:35:46 +0000 (03:35 +0000)]
fate: add test for offset theora
Vittorio Giovara [Fri, 12 Dec 2014 20:27:46 +0000 (20:27 +0000)]
theora: support different visible and coded frame size
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Mon, 1 Dec 2014 15:20:10 +0000 (16:20 +0100)]
fate: add a DPX parser test
Paul B Mahol [Mon, 1 Dec 2014 15:20:09 +0000 (16:20 +0100)]
DPX parser
Additional improvements and fixes by Michael Niedermayer <michaelni@gmx.at>.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Carl Eugen Hoyos [Wed, 10 Dec 2014 18:16:09 +0000 (18:16 +0000)]
tiff: support encoding and decoding 64bit images
Martin Storsjö [Sun, 23 Nov 2014 21:23:43 +0000 (23:23 +0200)]
movenc: Adjust the pts of new fragments similarly to what is done for dts
The pts and the corresponding duration is written in sidx
atoms, thus make sure these match up correctly.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 9 May 2011 13:44:54 +0000 (16:44 +0300)]
libavformat: Add a muxer wrapping mpegts encoding into RTP
Since this structurally is quite different from normal RTP
(multiple streams are muxed into one single mpegts stream,
which is packetized into one single RTP session), it is kept
as a separate muxer.
Since this structurally also behaves differently than normal
RTP, all of the other muxers that do chained RTP muxing
(rtsp, sap, mp4) would need to be updated similarly to handle
this - in particular, creating one single rtp_mpegts muxer
for the whole presentation instead of one rtp muxer per stream.
Signed-off-by: Martin Storsjö <martin@martin.st>
Thomas Volkert [Sat, 6 Dec 2014 18:54:07 +0000 (19:54 +0100)]
rtp: Initial H.261 support
The packetizer only supports splitting at GOB headers - if
such aren't available frequently enough, it splits at any
random byte offset (not at a macroblock boundary either, which
would be allowed by the spec) and sends a payload header pretend
that it starts with a GOB header.
As long as a receiver doesn't try to handle such cases cleverly
but just drops broken frames, this shouldn't matter too much
in practice.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Thu, 18 Dec 2014 10:20:11 +0000 (12:20 +0200)]
rtpenc: Avoid brittle switch fallthroughs
Instead explicitly jump to the default case in the cases where
it is wanted, and avoid fallthrough between different codecs,
which could easily introduce bugs if people editing the code
aren't careful.
Signed-off-by: Martin Storsjö <martin@martin.st>
Michael Niedermayer [Fri, 15 Aug 2014 00:50:41 +0000 (02:50 +0200)]
h261dec: Fix context initialization sequence
ff_mpv_common_init sets s->context_initialized.
This fixes decoding of h261 in the cases where the demuxer
hasn't already set the frame size.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 17 Dec 2014 10:18:03 +0000 (12:18 +0200)]
h261enc: Disallow sliced encoding
This avoids trying to do sliced encoding, even if a slice/packet
size is requested (via the -ps option or the rtp_payload_size
field), since the encoder currently doesn't support it (or at least
our decoder can't decode it, even if the h261_encode_gob_header
function is hooked up to be called from the slicing part in
mpegvideo_enc.c).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Wed, 17 Dec 2014 11:50:06 +0000 (13:50 +0200)]
rtpdec_h263_rfc2190: Clear the stored bits if discarding buffered data
If we throw away the buffered incomplete frame, make sure to also
throw away the buffered bits of an incomplete byte at the same
time.
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 12 Dec 2014 16:57:38 +0000 (18:57 +0200)]
rtpenc: Set the AVFMT_TS_NONSTRICT flag
In particular, when packetizing mpegts into rtp, the input packet
timestamp may come from more than one stream, which could cause
multiple packets be written with the same timestamp.
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 9 May 2011 13:44:37 +0000 (16:44 +0300)]
rtpenc: Set the timestamp properly when sending mpegts data, too
Signed-off-by: Martin Storsjö <martin@martin.st>
Tristan Matthews [Tue, 16 Dec 2014 19:07:53 +0000 (14:07 -0500)]
srtpproto: fix option flag type
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 28 Nov 2014 08:43:53 +0000 (10:43 +0200)]
dashenc: Adjust the start time of a segment to the end of the previous segment
This is the same adjustment that the mp4 muxer does to the start
timestamp of fragments, since the timestamp of a sample in an mp4
file is implicit from the sum of earlier sample durations.
This avoids gaps in the timeline (which can stop dash.js from
playing it back), and makes sure the timestamp on the segmenter
level matches what the mp4 muxer actually writes into the segments.
This is only an issue if the AVPacket duration of the last
packet of a segment doesn't point to the actual start timestamp
of the next packet (the first in the next segment).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Fri, 28 Nov 2014 08:40:05 +0000 (10:40 +0200)]
dashenc: Write segment timelines properly if the timeline has gaps
Write a new start time if the duration of the previous segment
didn't match the start of the next one. Check that segments
actually are continuous before writing a repeat count.
This makes sure timestamps deduced from the timeline actually
match the real start timestamp as written in filenames (if
using a template containing $Time$).
Signed-off-by: Martin Storsjö <martin@martin.st>
Martin Storsjö [Mon, 15 Dec 2014 10:09:10 +0000 (12:09 +0200)]
mov: Fix handling of zero-length metadata values
Since
3cec81f4d4, a zero-length metadata value would try to
allocate 2*0 bytes, where av_malloc() returns NULL.
Always add one to the allocated length, to allow space for
a null terminator in the zero-length case.
Incidentally, this fixes fate-alac on RVCT 4.0, where a compiler
bug seems to mess up the mov muxer to the point that it writes
the wrong sort of metadata. Previously this bug was undetected,
but since
3cec81f4d4 such mov files started returning
AVERROR(ENOMEM) in the mov demuxer.
Signed-off-by: Martin Storsjö <martin@martin.st>
Vittorio Giovara [Fri, 12 Dec 2014 18:25:58 +0000 (18:25 +0000)]
tiff: set the correct return value when check_size() fails
Only one instance affected and solved as other occurences.
Luca Barbato [Wed, 10 Dec 2014 01:44:20 +0000 (02:44 +0100)]
tiff: Check the check_size() return value and forward it
Also use the same type for add_entry and check_size.
Bug-Id: CID 700699
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Vittorio Giovara <vittorio.giovarao@gmail.com>
Luca Barbato [Wed, 10 Dec 2014 00:43:50 +0000 (01:43 +0100)]
prores: Evaluate all the quantizers
Prevent an uninitialized data access.
CC: libav-stable@libav.org
Bug-Id: CID 703824 / CID 703825
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Xiaohan Wang [Thu, 6 Nov 2014 20:59:54 +0000 (12:59 -0800)]
matroskadec: Fix read-after-free in matroska_read_seek()
In matroska_read_seek(), |tracks| is assigned at the begining of the
function. However, functions like matroska_parse_cues() could reallocate
the tracks and invalidate |tracks|.
This assigns |tracks| only before using it, so that it will not get
invalidated elsewhere.
Bug-Id: chromium/427266