neontest.c 3.21 KB
Newer Older
1 2 3 4
/*
 * check NEON registers for clobbers
 * Copyright (c) 2013 Martin Storsjo
 *
5
 * This file is part of FFmpeg.
6
 *
7
 * FFmpeg is free software; you can redistribute it and/or
8 9 10 11
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
12
 * FFmpeg is distributed in the hope that it will be useful,
13 14 15 16 17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with FFmpeg; if not, write to the Free Software
19 20 21 22 23 24 25
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

#include "libavcodec/avcodec.h"
#include "libavutil/arm/neontest.h"

wrap(avcodec_open2(AVCodecContext *avctx,
26
                   const AVCodec *codec,
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
                   AVDictionary **options))
{
    testneonclobbers(avcodec_open2, avctx, codec, options);
}

wrap(avcodec_decode_audio4(AVCodecContext *avctx,
                           AVFrame *frame,
                           int *got_frame_ptr,
                           AVPacket *avpkt))
{
    testneonclobbers(avcodec_decode_audio4, avctx, frame,
                     got_frame_ptr, avpkt);
}

wrap(avcodec_decode_video2(AVCodecContext *avctx,
                           AVFrame *picture,
                           int *got_picture_ptr,
                           AVPacket *avpkt))
{
    testneonclobbers(avcodec_decode_video2, avctx, picture,
                     got_picture_ptr, avpkt);
}

wrap(avcodec_decode_subtitle2(AVCodecContext *avctx,
                              AVSubtitle *sub,
                              int *got_sub_ptr,
                              AVPacket *avpkt))
{
    testneonclobbers(avcodec_decode_subtitle2, avctx, sub,
                     got_sub_ptr, avpkt);
}

wrap(avcodec_encode_audio2(AVCodecContext *avctx,
                           AVPacket *avpkt,
                           const AVFrame *frame,
                           int *got_packet_ptr))
{
    testneonclobbers(avcodec_encode_audio2, avctx, avpkt, frame,
                     got_packet_ptr);
}

wrap(avcodec_encode_subtitle(AVCodecContext *avctx,
                             uint8_t *buf, int buf_size,
                             const AVSubtitle *sub))
{
    testneonclobbers(avcodec_encode_subtitle, avctx, buf, buf_size, sub);
}

wrap(avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
                           const AVFrame *frame, int *got_packet_ptr))
{
    testneonclobbers(avcodec_encode_video2, avctx, avpkt, frame, got_packet_ptr);
}
80 81 82 83 84 85

wrap(avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt))
{
    testneonclobbers(avcodec_send_packet, avctx, avpkt);
}

86
wrap(avcodec_receive_packet(AVCodecContext *avctx, AVPacket *avpkt))
87
{
88
    testneonclobbers(avcodec_receive_packet, avctx, avpkt);
89
}
90 91 92

wrap(avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame))
{
93
    testneonclobbers(avcodec_send_frame, avctx, frame);
94 95
}

96
wrap(avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame))
97
{
98
    testneonclobbers(avcodec_receive_frame, avctx, frame);
99
}