Commit Graph
31 Commits
Author SHA1 Message Date
wm4andClément Bœsch 231a514dd3 avformat/samidec: UTF-16 support
ff_smil_extract_next_chunk() is still used by RealText.
2014-09-05 23:13:07 +02:00
wm4andClément Bœsch d658ef18e3 avformat/srtdec: UTF-16 support 2014-09-05 23:13:07 +02:00
wm4andClément Bœsch 3e8426170c avformat/assdec: UTF-16 support
Use the UTF-16 BOM to detect UTF-16 encoding. Convert the file contents
to UTF-8 on the fly using FFTextReader, which acts as converting wrapper
around AVIOContext. It also can work on a static buffer, needed for
format probing. The FFTextReader wrapper now also takes care of skipping
the UTF-8 BOM.

Fix Ticket #3496.
2014-09-05 23:13:07 +02:00
wm4andMichael Niedermayer b173f5c155 oggdec: fix invalid free on error
The read_packet callback passes a pointer to a stack-allocated AVPacket.
Attempting to free it with av_free() makes no sense.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-30 16:38:14 +02:00
wm4andAnton Khirnov eb800f120d libavcodec: set AVFrame colorspace fields on decoding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-01 08:23:05 +02:00
wm4andAnton Khirnov 8c02adc62d lavu: add all color-related enums to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-01 08:22:02 +02:00
wm4andVittorio Giovara f6774f905f mpegvideo: operate with pointers to AVFrames instead of whole structs
The most interesting parts are initialization in ff_MPV_common_init() and
uninitialization in ff_MPV_common_end().

ff_mpeg_unref_picture and ff_thread_release_buffer have additional NULL
checks for Picture.f, because these functions can be called on
uninitialized or partially initialized Pictures.

NULL pointer checks are added to ff_thread_release_buffer() stub function.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-09 02:12:19 +02:00
wm4andMichael Niedermayer 5b0ce5d4e3 vf_pullup: simplify, fix double free error
The memory allocation for f->diffs was freed multiple times in some
corner cases. Simplify the code so that this doesn't happen.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-26 18:27:25 +01:00
wm4andMichael Niedermayer 686e662676 http: restructure http_connect error handling path
The authstr memory allocations make it annoying to error in the middle
of the header setup code, so apply the usual C error handling idiom to
make it easier to error at any point.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-23 05:56:35 +01:00
wm4andMichael Niedermayer 76c8fbc5f2 http: never send 'Cookie: (null)' to the server
If a domain has some cookies set, but matching the cookie fails due to
the port being different, get_cookies() succeeds, but sets cookies to
NULL. The caller of get_cookies() didn't check for the NULL value.

This also avoids passing NULL to libc string functions, which is
undefined behavior

Fixes Ticket2180

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-21 20:32:09 +01:00
wm4andAnton Khirnov 8b6136d3d1 vaapi: switch ff_vaapi_get_surface_id from Picture to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:01:59 +01:00
wm4andAnton Khirnov 1b1094a19d vdpau: switch ff_vdpau_get_surface_id from Picture to AVFrame
This gets rid of aliasing completely unrelated structs to Picture.

Fixes the remaining compilation warnings in the vdpau code.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:00:39 +01:00
wm4andAnton Khirnov 7948a51b5c vdpau: don't assume Picture and H264Picture are the same
The code passed H264Picture* and Picture*, and assumed the
hwaccel_picture_private field was in the same place in both
structs. Somehow this happened to work in Libav, but broke in
FFmpeg (and probably subtly breaks in Libav too).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 16:59:46 +01:00
wm4andAnton Khirnov 8f629a986c isom: convert mp4 dvdsub extradata to vobsub format
mp4 files embedding DVD subtitles do not use the same extradata format
as the rest of Libav expects. The subtitle decoder in libavcodec in
particular does not understand this format.

Convert the extradata to the vobsub .idx format. mp4 stores the palette
as binary 32 bit ints in YUV. The subtitle resolution is stored
separately in the track header, which we access through AVStream.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-15 14:32:58 +01:00
wm4andMichael Niedermayer 636273d3d4 http: handle ICY in presence of chunked transfer encoding
Some http servers send an ICY stream in combination with chunked
transfer encoding. This case was handled incorrectly by the ICY code:
instead of handling chunked encoding before anything ICY related, both
were mixed.

Fix this by separating the ICY code from normal http reading. Move the
normal http reading to a new function http_read_stream(), while
http_read() handles ICY on top of http_read_stream().

The server identified itself as: cloudflare-nginx

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-05 22:49:36 +01:00
wm4andClément Bœsch 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
wm4andClément Bœsch 0786598f51 avformat/microdvd: skip BOM properly
The BOM is already skipped in the probe function, but not the header
read function. This could cause the header to be misparsed, such as
not interpreting the FPS line.
2014-03-03 23:26:27 +01:00
wm4andMichael Niedermayer 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
wm4andStefano Sabatini 5f6c21117f ffprobe: show best_effort_timestamp in the frame section
This is useful for debugging.

Reference and ffprobe.xsd changes done and tested by Stefano Sabatini.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-12-15 10:46:46 +01:00
wm4andMichael Niedermayer 3220a894f7 http: add hack to make streams served by MediaGateway not seekable
These streams are reported as seekable, but all tests show they are not,
and the server merely pretends the streams are seekable. The server
responds with:

    content-range: bytes 0-1999999999/2000000000

Range requests seem to be correctly answered, but the actual data
returned at the same offset is different. Assume this is a bug in the
server software. The server identifies itself as:

    Server: MediaGateway 3.5.2-001

Add a hack that checks the server name, and disables seeking in this
case.

Test URL: http://8283.live.streamtheworld.com:80/CBC_R1_VCR_H_SC

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-03 22:57:56 +01:00
wm4andMichael Niedermayer 01e3340fb6 swscale: make bilinear scaling the default
Before this commit, sws_init_context() failed with an error if no scaler
was explicitly set.

Defaulting to something reasonable is better behavior.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-30 18:14:58 +02:00
wm4andMichael Niedermayer b4e1630d4d lavc: don't show "Invalid and inefficient vfw-avi..." warning in mpeg4 parser
Only the actual decoder should print this warning.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-09 03:14:53 +02:00
wm4andClément Bœsch 060c6c4647 avformat/mpl2dec: handle files with CRLF linebreaks correctly
Skip the "\r" as normal text. Otherwise it will be the first character
of the string passed to sscanf(), which then fill fail to match the
timestamps.

Signed-off-by: Clément Bœsch <u@pkh.me>
2013-09-03 20:38:40 +02:00
wm4andMichael Niedermayer a5ef7960fc ape: check avio_read() return value
This sets pkt->size to absurd values on failure otherwise.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-11 21:46:09 +02:00
wm4andMichael Niedermayer 122536e01a avfilter: fix preprocessor condition
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-19 22:10:16 +02:00
wm4andStefano Sabatini 72f5a6d067 examples: demuxing: print ffplay command even if sample format is planar
Adjust the code so that a working ffplay command is printed in the
planar audio case.
2013-07-19 12:14:54 +02:00
wm4andStefano Sabatini 9f31c1608c examples: demuxing: simplify audio output
There is no reason why this should copy the audio data in a very
complicated way. Also, strictly write the first plane, instead of
writing the whole buffer. This is more helpful in context of the
example. This way a user can clearly confirm that it works by playing
the written data as raw audio.
2013-07-19 12:14:46 +02:00
wm4andStefano Sabatini 06b269dacb examples: demuxing: do partial audio packet decoding
This assumes one audio packet is decoded one time. This is not true:
packets can be partially decoded. Then you have to "adjust" the packet
and pass the undecoded part of the packet to the decode function again.
2013-07-19 12:14:23 +02:00
wm4andMichael Niedermayer c3316ddb83 lavf: add support for libgme
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-02 18:52:45 +02:00
wm4andStefano Sabatini a92fbe16f2 lavf/http: add support for reading streamcast metadata
Allow applications to request reading streamcast metadata. This uses
AVOptions as API, and requires the application to explicitly request
and read metadata. Metadata can be updated mid-stream; if an
application is interested in that, it has to poll for the data by
reading the "icy_metadata_packet" option in regular intervals.

There doesn't seem to be a nice way to transfer the metadata in a nicer
way. Converting the metadata to ID3v2 tags might be a nice idea, but
the libavformat mp3 demuxer doesn't seem to read these tags mid-stream,
and even then we couldn't guarantee that tags are not inserted in the
middle of mp3 packet data.

This commit provides the minimum to enable applications to retrieve
this information at all.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
2013-07-02 02:00:56 +02:00
wm4andMichael Niedermayer e59fb3f8b1 lavf: silence max_analyze_duration warning
This is part of normal operation with some formats. A warning should
indicate that something is wrong, and the documentation for AV_LOG_WARNING
says: "Something somehow does not look correct."

Since this message is most likely useful for debugging only, raise the
log level accordingly.

Plus-one-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-06-26 01:36:27 +02:00