Commit Graph

10279 Commits

Author SHA1 Message Date
Luca Barbato 3b33dfb23c rtp: h264: Move FU-A NAL parsing to a function 2015-02-15 18:20:54 +01:00
Luca Barbato f0a8747996 rtp: h264: Move STAP-A NAL parsing to a function 2015-02-15 18:20:54 +01:00
Luca Barbato a9a0b8d6c1 rtp: h264: Move parse_sprop_parameter_sets parsing to a function 2015-02-15 18:20:54 +01:00
Luca Barbato b8df0b71c5 rtp: h264: Move profile_level_id parsing to a function 2015-02-15 18:20:54 +01:00
Diego Biurrun 36cf8eb448 mov: Fix compilation with DEBUG enabled 2015-02-14 10:45:16 -08:00
Diego Biurrun daf8cf358a avformat: Don't anonymously typedef structs 2015-02-14 10:13:47 -08:00
wm4 9deaec7828 lavf: move internal fields from public to internal context
This is not an API change; the fields were explicitly declared private
before.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-02-10 21:45:04 +01:00
Anton Khirnov 1509c018bd mpegts: relax restrictions on matching the packet start in read_header
analyze() is currently called both when probing and from read_header().
It determines the packet start by looking for the sync byte, followed by
unset Transport Error Indicator and valid adaptation_field_control.

This makes sense to do when probing, but once we already know the format
is MPEG-TS, it is counterproductive to be so strict -- e.g. in some
files the TEI might be set and analyze() might get called with a smaller
buffer than the one used for probing, resulting in a failure.
2015-02-10 21:43:44 +01:00
wm4 6a5b8ca432 lavf: remove unused code
Nothing uses it, and it provides no public API.

Archeological finds:

Commit 101036adb9 added the API.
Commit a8dd8dc6e9 made mpegts.c use it.
Commit af8aae3fa3 disabled it by default in mpegts.c.
Commit ae2bb52cd2 removed all uses of this from mpegts.c.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-02-08 21:34:05 +01:00
Luca Barbato e352520e3e oma: Report a timestamp
Reported-By: jb@videolan.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-02-07 15:36:15 +01:00
Luca Barbato 898276c16b r3d: Fix pos type
avio_tell can return a negative number.

Bug-Id: CID 1265715
CC: libav-stable@libav.org
2015-02-03 15:23:22 +00:00
Vittorio Giovara ec524ed12a tta: Fix framepos and start_offset types
Also propagate errors.

CC: libav-stable@libav.org
Bug-Id: CID 1238812
2015-02-03 15:23:21 +00:00
Carl Eugen Hoyos 67e9f3907d isom: Decode Prores 4444 XQ with the existing Prores decoder
The frames seem to contain a higher bitrate which our decoder is
able to handle.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-02-03 15:23:21 +00:00
Hendrik Leppkes e3528d2a7b mov: Implement parsing of the "HandlerName" from the MP4 HDLR atom
This atom typically is used for a track title. The handler name is stored
as a Pascal string in the QT specs (first byte is the length of the string),
so do not export it.

A second length check based on the first character is added to avoid
overwriting an already specified handler_name (it happens with YouTube
videos for instance, the handler_name get masked), or specifying an
empty string metadata.

The Pascal string fix and the second length check are written
by Clément Bœsch <clement.boesch@smartjog.com>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-02-03 15:15:12 +00:00
Diego Biurrun 27b99d929f siff: Return more meaningful error values 2015-02-03 14:55:40 +00:00
Diego Biurrun 75439bb31b siff: K&R formatting cosmetics 2015-02-03 14:53:44 +00:00
Luca Barbato f726fc21ef ogg: Provide an option to offset the serial number
The ogg serial number doubles as codec id and sequence
value for concatenated samples.
2015-02-01 02:28:40 +01:00
Vittorio Giovara 08fa34bf75 yuv4mpegdec: initialize field_order in yuv4_read_header()
CC: libav-stable@libav.org
Bug-Id: CID 1265721
2015-01-29 15:26:33 +00:00
Luca Barbato 3c18a7b188 avio: Do not consider the end-of-buffer position valid
Trigger a refill if the seek action moves the pointer
at the end of the buffer.

Before this patch the read action following the seek would trigger
the refill, while write action would write outside the buffer.

In the Libav codebase few muxers seek forward outside of what
already has been written so it is quite unlikely to experience
the problem with the default buffer size.

CC: libav-stable@libav.org
2015-01-28 16:28:10 +01:00
Vittorio Giovara e71149a7a5 nuv: validate image size
Avoid a division by zero.

CC: libav-stable@libav.org
Bug-Id: CID 717750
2015-01-27 15:26:37 +00:00
Vittorio Giovara 7c51d79ca7 nsvdec: validate channels and samplerate
Avoid a division by zero.

CC: libav-stable@libav.org
Bug-Id: CID 717749
2015-01-27 15:26:37 +00:00
Anton Khirnov 3212578148 mov: export audio service type as side data 2015-01-27 09:21:28 +01:00
Anton Khirnov 4227e4fe74 lavf: add a convenience function for adding side data to a stream 2015-01-27 09:18:32 +01:00
Anton Khirnov 80a11de7dc nutenc: do not use has_b_frames
It is unreliable, especially when the stream codec context is not the
encoding context. Use the codec descriptor properties instead.
2015-01-27 09:15:07 +01:00
Anton Khirnov f771b3ab5d avidec: do not export stream_codec_tag
Handle its only existing use case internally.
2015-01-27 09:13:45 +01:00
Vittorio Giovara 3a6dfec864 segment: Check av_get_frame_filename() return value
CC: libav-stable@libav.org
Bug-Id: CID 1265713
2015-01-23 14:55:03 +00:00
Vittorio Giovara 7915e6741d hlsproto: Properly close avio buffer in case of error
Fix a memory leak.

CC: libav-stable@libav.org
Bug-Id: CID 717999
2015-01-23 14:55:03 +00:00
Vittorio Giovara 4c5fa628da mov: Do not compute negative SAR values
This partially reverts cf70ba37ba, since
it didn't take into account when rotation is 0, but there is another
valid operation (eg. translation) in the matrix.

Found-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-23 14:54:59 +00:00
Martin Storsjö 9108967513 rtspdec: Consistently use rtsp_hd_out for writing
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-23 10:33:00 +02:00
Martin Storsjö 3a724a7f3b dashenc: Use inttypes.h macros for format strings instead of %lld
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-22 08:49:41 +02:00
Rodger Combs 1d8aa23794 dashenc: Fix format string generation
Previously this always used the "lld" format for all parameters,
not only time parameters.

Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-22 08:49:39 +02:00
Michael Niedermayer ea3fc9fe68 smoothstreamingenc: Add a missing "goto fail"
This goto wasn't necessary originally, but it should have been
added when the write_manifest call was added in 8e276378.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-19 22:31:08 +02:00
Nidhi Makhijani 3941df5462 aea: Return proper error code on invalid header 2015-01-16 10:35:02 +01:00
Martin Storsjö 024e5a2d5f rtmppkt: Repeat the full 32 bit timestamp for chunking continuation packets
This fixes sending chunked packets (packets larger than the output
chunk size, which often can be e.g. 4096 bytes) with a timestamp delta
(or absolute timstamp, if it's a timestamp step backwards, or the
first packet of the stream) larger than 0xffffffff.

The RTMP spec explicitly says (in section 5.3.1.3.) that packets of
type 3 (continuation packets) should include this field, if the
previous non-continuation packet had it included.

The receiving code handles these packets correctly.

Pointed out by Cheolho Park.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-15 10:20:18 +02:00
Anton Khirnov 54bc15d5eb id3v2: fix reading v2.2 attached pictures
In v2.2, the picture type is not a zero-terminated string, but has a
constant size of 3 bytes.
2015-01-14 17:17:24 +01:00
Anton Khirnov 932788be5a id3v2: add names to the parameters of ID3v2EMFunc.read
Some of them are not immediately obvious.
2015-01-14 17:17:24 +01:00
Anton Khirnov 8809c974a3 id3v2: constify the 'tag' parameter to special metadata parsing callback
Those functions should not ever modify it.
2015-01-14 17:17:24 +01:00
Vittorio Giovara cf70ba37ba mov: Check angle rather than full matrix when updating SAR
When the display matrix is not the identity one, but the rotation angle
is zero, there is no need to update the sample aspect ratio.

Otherwise, it is possible to obtain negative values which interferes
with transcoding in later stages. This kind of behaviour is reproducible
on mov files with "major_brand: MSNV".

CC: libav-stable@libav.org
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-01-14 17:17:23 +01:00
Vittorio Giovara 456ffec35d img2dec: correctly use the parsed value from -start_number
Previously the image sequence was always starting from the minimum
number rather than the requested one.

CC: libav-stable@libav.org
2015-01-14 17:10:01 +01:00
Anton Khirnov 51da7d0274 matroskaenc: refuse to write AAC without valid extradata 2015-01-09 15:51:00 +01:00
Luca Barbato 01168bf140 mpeg: Remove unused field 2015-01-07 13:49:10 +01:00
Luca Barbato b3f0465736 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
2015-01-07 12:36:28 +01:00
Martin Storsjö 2a1500fb55 movenc: Fix a typo in a comment
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-06 19:47:18 +02:00
Martin Storsjö e581e88cbd 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>
2015-01-06 19:47:09 +02:00
Justin Ruggles 8e03ca2fff isom: add 'mp1v' fourcc
As referenced in the CoreMedia API docs.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-01-06 17:05:53 +01:00
Martin Storsjö 46808fdf04 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>
2015-01-04 20:04:36 +02:00
Martin Storsjö 9f810a9b37 libavformat: Check for malloc failures in avformat_new_stream
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-04 20:04:36 +02:00
Martin Storsjö c4aa0f865f 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>
2015-01-04 20:04:33 +02:00
Martin Storsjö f2ad1495f2 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>
2015-01-03 02:30:03 +02:00
Martin Storsjö 7a1a63e34f 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>
2015-01-03 01:22:09 +02:00