GCC Code Coverage Report
Directory: ../../../ffmpeg/ Exec Total Coverage
File: src/libavfilter/af_acopy.c Lines: 0 18 0.0 %
Date: 2020-09-25 23:16:12 Branches: 0 6 0.0 %

Line Branch Exec Source
1
/*
2
 * This file is part of FFmpeg.
3
 *
4
 * FFmpeg is free software; you can redistribute it and/or
5
 * modify it under the terms of the GNU Lesser General Public
6
 * License as published by the Free Software Foundation; either
7
 * version 2.1 of the License, or (at your option) any later version.
8
 *
9
 * FFmpeg is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
 * Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public
15
 * License along with FFmpeg; if not, write to the Free Software
16
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
 */
18
19
#include "audio.h"
20
#include "avfilter.h"
21
#include "internal.h"
22
23
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
24
{
25
    AVFilterLink *outlink = inlink->dst->outputs[0];
26
    AVFrame *out = ff_get_audio_buffer(outlink, in->nb_samples);
27
    int ret;
28
29
    if (!out) {
30
        ret = AVERROR(ENOMEM);
31
        goto fail;
32
    }
33
34
    ret = av_frame_copy_props(out, in);
35
    if (ret < 0)
36
        goto fail;
37
    ret = av_frame_copy(out, in);
38
    if (ret < 0)
39
        goto fail;
40
    av_frame_free(&in);
41
    return ff_filter_frame(outlink, out);
42
fail:
43
    av_frame_free(&in);
44
    av_frame_free(&out);
45
    return ret;
46
}
47
48
static const AVFilterPad acopy_inputs[] = {
49
    {
50
        .name         = "default",
51
        .type         = AVMEDIA_TYPE_AUDIO,
52
        .filter_frame = filter_frame,
53
    },
54
    { NULL }
55
};
56
57
static const AVFilterPad acopy_outputs[] = {
58
    {
59
        .name = "default",
60
        .type = AVMEDIA_TYPE_AUDIO,
61
    },
62
    { NULL }
63
};
64
65
AVFilter ff_af_acopy = {
66
    .name          = "acopy",
67
    .description   = NULL_IF_CONFIG_SMALL("Copy the input audio unchanged to the output."),
68
    .inputs        = acopy_inputs,
69
    .outputs       = acopy_outputs,
70
};