From: Michael Niedermayer <[email protected]>
This theoretically is faster and might be useful on some low end embeded systems
Inspired-by: Compns reply
Signed-off-by: Michael Niedermayer <[email protected]>
---
ffplay.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/ffplay.c b/ffplay.c
index cc61dde..dee8596 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -346,6 +346,7 @@ static int nb_vfilters = 0;
static char *afilters = NULL;
#endif
static int autorotate = 1;
+static int scale_subtitlies = 1;
/* current context */
static int is_full_screen;
@@ -2178,12 +2179,17 @@ static int subtitle_thread(void *arg)
{
int in_w = sp->sub.rects[i]->w;
int in_h = sp->sub.rects[i]->h;
- int subw = is->subdec.avctx->width ? is->subdec.avctx->width
: is->viddec_width;
- int subh = is->subdec.avctx->height ? is->subdec.avctx->height
: is->viddec_height;
- int out_w = is->viddec_width ? in_w * is->viddec_width /
subw : in_w;
- int out_h = is->viddec_height ? in_h * is->viddec_height /
subh : in_h;
+ int subw = is->subdec.avctx->width;
+ int subh = is->subdec.avctx->height;
+ int out_w = in_w;
+ int out_h = in_h;
AVPicture newpic;
+ if (subw && subh && is->viddec_width && is->viddec_height &&
scale_subtitlies) {
+ out_w = in_w * is->viddec_width / subw;
+ out_h = in_h * is->viddec_height / subh;
+ }
+
//can not use avpicture_alloc as it is not compatible with
avsubtitle_free()
av_image_fill_linesizes(newpic.linesize, AV_PIX_FMT_YUVA420P,
out_w);
newpic.data[0] = av_malloc(newpic.linesize[0] * out_h);
@@ -3586,6 +3592,7 @@ static const OptionDef options[] = {
{ "scodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &subtitle_codec_name },
"force subtitle decoder", "decoder_name" },
{ "vcodec", HAS_ARG | OPT_STRING | OPT_EXPERT, { &video_codec_name },
"force video decoder", "decoder_name" },
{ "autorotate", OPT_BOOL, { &autorotate }, "automatically rotate video",
"" },
+ { "scale_subtitlies", OPT_BOOL, { &scale_subtitlies }, "rescale subtitles
depending on video size", "" },
{ NULL, },
};
--
1.7.9.5
_______________________________________________
ffmpeg-devel mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel