Merge remote-tracking branch 'cehoyos/master'

* cehoyos/master:
  Mention in the documentation that fieldmatch needs cfr input.
  Use v4l2 input format automatically if filename starts with "/dev/video"
  Print a warning if a subtitle demuxer changes utf16 to utf8.
  Do not set the lame quality if the user didn't request it.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/71/merge
Michael Niedermayer 11 years ago
commit 5b86447080
  1. 4
      doc/filters.texi
  2. 4
      libavcodec/libmp3lame.c
  3. 8
      libavdevice/v4l2.c
  4. 2
      libavformat/assdec.c
  5. 2
      libavformat/realtextdec.c
  6. 2
      libavformat/samidec.c
  7. 2
      libavformat/srtdec.c
  8. 7
      libavformat/subtitles.c
  9. 4
      libavformat/subtitles.h

@ -4447,6 +4447,10 @@ and VIVTC/VFM (VapourSynth project). The later is a light clone of TFM from
which @code{fieldmatch} is based on. While the semantic and usage are very
close, some behaviour and options names can differ.
The filter currently only works for constant frame rate input. Do not use it
if your input has mixed telecined and progressive content with changing
framerate.
The filter accepts the following options:
@table @option

@ -106,9 +106,7 @@ static av_cold int mp3lame_encode_init(AVCodecContext *avctx)
lame_set_out_samplerate(s->gfp, avctx->sample_rate);
/* algorithmic quality */
if (avctx->compression_level == FF_COMPRESSION_DEFAULT)
lame_set_quality(s->gfp, 5);
else
if (avctx->compression_level != FF_COMPRESSION_DEFAULT)
lame_set_quality(s->gfp, avctx->compression_level);
/* rate control */

@ -806,6 +806,13 @@ static int device_try_init(AVFormatContext *ctx,
return ret;
}
static int v4l2_read_probe(AVProbeData *p)
{
if (av_strstart(p->filename, "/dev/video", NULL))
return AVPROBE_SCORE_MAX - 1;
return 0;
}
static int v4l2_read_header(AVFormatContext *ctx)
{
struct video_data *s = ctx->priv_data;
@ -1033,6 +1040,7 @@ AVInputFormat ff_v4l2_demuxer = {
.name = "video4linux2,v4l2",
.long_name = NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
.priv_data_size = sizeof(struct video_data),
.read_probe = v4l2_read_probe,
.read_header = v4l2_read_header,
.read_packet = v4l2_read_packet,
.read_close = v4l2_read_close,

@ -112,7 +112,7 @@ static int ass_read_header(AVFormatContext *s)
int res = 0;
AVStream *st;
FFTextReader tr;
ff_text_init_avio(&tr, s->pb);
ff_text_init_avio(s, &tr, s->pb);
st = avformat_new_stream(s, NULL);
if (!st)

@ -65,7 +65,7 @@ static int realtext_read_header(AVFormatContext *s)
char c = 0;
int res = 0, duration = read_ts("60"); // default duration is 60 seconds
FFTextReader tr;
ff_text_init_avio(&tr, s->pb);
ff_text_init_avio(s, &tr, s->pb);
if (!st)
return AVERROR(ENOMEM);

@ -54,7 +54,7 @@ static int sami_read_header(AVFormatContext *s)
char c = 0;
int res = 0, got_first_sync_point = 0;
FFTextReader tr;
ff_text_init_avio(&tr, s->pb);
ff_text_init_avio(s, &tr, s->pb);
if (!st)
return AVERROR(ENOMEM);

@ -87,7 +87,7 @@ static int srt_read_header(AVFormatContext *s)
AVStream *st = avformat_new_stream(s, NULL);
int res = 0;
FFTextReader tr;
ff_text_init_avio(&tr, s->pb);
ff_text_init_avio(s, &tr, s->pb);
if (!st)
return AVERROR(ENOMEM);

@ -24,7 +24,7 @@
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
void ff_text_init_avio(FFTextReader *r, AVIOContext *pb)
void ff_text_init_avio(void *s, FFTextReader *r, AVIOContext *pb)
{
int i;
r->pb = pb;
@ -45,13 +45,16 @@ void ff_text_init_avio(FFTextReader *r, AVIOContext *pb)
r->buf_pos += 3;
}
}
if (s && (r->type == FF_UTF16LE || r->type == FF_UTF16BE))
av_log(s, AV_LOG_WARNING,
"UTF16 is automatically converted to UTF8, do not specify a character encoding\n");
}
void ff_text_init_buf(FFTextReader *r, void *buf, size_t size)
{
memset(&r->buf_pb, 0, sizeof(r->buf_pb));
ffio_init_context(&r->buf_pb, buf, size, 0, NULL, NULL, NULL, NULL);
ff_text_init_avio(r, &r->buf_pb);
ff_text_init_avio(NULL, r, &r->buf_pb);
}
int64_t ff_text_pos(FFTextReader *r)

@ -49,14 +49,16 @@ typedef struct {
* Initialize the FFTextReader from the given AVIOContext. This function will
* read some bytes from pb, and test for UTF-8 or UTF-16 BOMs. Further accesses
* to FFTextReader will read more data from pb.
* If s is not NULL, the user will be warned if a UTF-16 conversion takes place.
*
* The purpose of FFTextReader is to transparently convert read data to UTF-8
* if the stream had a UTF-16 BOM.
*
* @param s Pointer to provide av_log context
* @param r object which will be initialized
* @param pb stream to read from (referenced as long as FFTextReader is in use)
*/
void ff_text_init_avio(FFTextReader *r, AVIOContext *pb);
void ff_text_init_avio(void *s, FFTextReader *r, AVIOContext *pb);
/**
* Similar to ff_text_init_avio(), but sets it up to read from a bounded buffer.

Loading…
Cancel
Save