Browse Source

Fix auto-scaling.

Use the numeric value assigned to sws_flags for the sws_flags set in
the graph, rather than the string "bilinear", which is not even
parsable by the scale filter.

Originally committed as revision 23060 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Stefano Sabatini 15 years ago
parent
commit
3f073fa22c
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      ffplay.c

+ 3
- 3
ffplay.c View File

@@ -80,9 +80,7 @@ const int program_birth_year = 2003;
/* NOTE: the size must be big enough to compensate the hardware audio buffersize size */ /* NOTE: the size must be big enough to compensate the hardware audio buffersize size */
#define SAMPLE_ARRAY_SIZE (2*65536) #define SAMPLE_ARRAY_SIZE (2*65536)


#if !CONFIG_AVFILTER
static int sws_flags = SWS_BICUBIC; static int sws_flags = SWS_BICUBIC;
#endif


typedef struct PacketQueue { typedef struct PacketQueue {
AVPacketList *first_pkt, *last_pkt; AVPacketList *first_pkt, *last_pkt;
@@ -1766,9 +1764,11 @@ static int video_thread(void *arg)


#if CONFIG_AVFILTER #if CONFIG_AVFILTER
int64_t pos; int64_t pos;
char sws_flags_str[128];
AVFilterContext *filt_src = NULL, *filt_out = NULL; AVFilterContext *filt_src = NULL, *filt_out = NULL;
AVFilterGraph *graph = av_mallocz(sizeof(AVFilterGraph)); AVFilterGraph *graph = av_mallocz(sizeof(AVFilterGraph));
graph->scale_sws_opts = av_strdup("sws_flags=bilinear");
snprintf(sws_flags_str, sizeof(sws_flags_str), "flags=%d", sws_flags);
graph->scale_sws_opts = av_strdup(sws_flags_str);


if(!(filt_src = avfilter_open(&input_filter, "src"))) goto the_end; if(!(filt_src = avfilter_open(&input_filter, "src"))) goto the_end;
if(!(filt_out = avfilter_open(&output_filter, "out"))) goto the_end; if(!(filt_out = avfilter_open(&output_filter, "out"))) goto the_end;


Loading…
Cancel
Save