Revision 75ea596d

View differences:

ffplay.c
1782 1782
                                  { .name = NULL }},
1783 1783
};
1784 1784

  
1785
#endif  /* CONFIG_AVFILTER */
1786

  
1787
static int video_thread(void *arg)
1785
static int configure_video_filters(AVFilterGraph *graph, VideoState *is, const char *vfilters)
1788 1786
{
1789
    VideoState *is = arg;
1790
    AVFrame *frame= avcodec_alloc_frame();
1791
    int64_t pts_int;
1792
    double pts;
1793
    int ret;
1794

  
1795
#if CONFIG_AVFILTER
1796
    int64_t pos;
1797 1787
    char sws_flags_str[128];
1788
    int ret;
1798 1789
    FFSinkContext ffsink_ctx = { .pix_fmt = PIX_FMT_YUV420P };
1799 1790
    AVFilterContext *filt_src = NULL, *filt_out = NULL;
1800
    AVFilterGraph *graph = avfilter_graph_alloc();
1801 1791
    snprintf(sws_flags_str, sizeof(sws_flags_str), "flags=%d", sws_flags);
1802 1792
    graph->scale_sws_opts = av_strdup(sws_flags_str);
1803 1793

  
1804
    if (avfilter_graph_create_filter(&filt_src, &input_filter, "src",
1805
                                     NULL, is, graph) < 0)
1794
    if ((ret = avfilter_graph_create_filter(&filt_src, &input_filter, "src",
1795
                                            NULL, is, graph)) < 0)
1806 1796
        goto the_end;
1807
    if (avfilter_graph_create_filter(&filt_out, &ffsink, "out",
1808
                                     NULL, &ffsink_ctx, graph) < 0)
1797
    if ((ret = avfilter_graph_create_filter(&filt_out, &ffsink, "out",
1798
                                            NULL, &ffsink_ctx, graph)) < 0)
1809 1799
        goto the_end;
1810 1800

  
1811 1801
    if(vfilters) {
......
1822 1812
        inputs->pad_idx = 0;
1823 1813
        inputs->next    = NULL;
1824 1814

  
1825
        if (avfilter_graph_parse(graph, vfilters, inputs, outputs, NULL) < 0)
1815
        if ((ret = avfilter_graph_parse(graph, vfilters, inputs, outputs, NULL)) < 0)
1826 1816
            goto the_end;
1827 1817
        av_freep(&vfilters);
1828 1818
    } else {
1829
        if(avfilter_link(filt_src, 0, filt_out, 0) < 0)          goto the_end;
1819
        if ((ret = avfilter_link(filt_src, 0, filt_out, 0)) < 0)
1820
            goto the_end;
1830 1821
    }
1831 1822

  
1832
    if (avfilter_graph_config(graph, NULL) < 0)
1823
    if ((ret = avfilter_graph_config(graph, NULL)) < 0)
1833 1824
        goto the_end;
1834 1825

  
1835 1826
    is->out_video_filter = filt_out;
1827
the_end:
1828
    return ret;
1829
}
1830

  
1831
#endif  /* CONFIG_AVFILTER */
1832

  
1833
static int video_thread(void *arg)
1834
{
1835
    VideoState *is = arg;
1836
    AVFrame *frame= avcodec_alloc_frame();
1837
    int64_t pts_int;
1838
    double pts;
1839
    int ret;
1840

  
1841
#if CONFIG_AVFILTER
1842
    AVFilterGraph *graph = avfilter_graph_alloc();
1843
    AVFilterContext *filt_out = NULL;
1844
    int64_t pos;
1845

  
1846
    if ((ret = configure_video_filters(graph, is, vfilters)) < 0)
1847
        goto the_end;
1848
    filt_out = is->out_video_filter;
1836 1849
#endif
1837 1850

  
1838 1851
    for(;;) {

Also available in: Unified diff