1cabdff1aSopenharmony_ci/*
2cabdff1aSopenharmony_ci * check NEON registers for clobbers
3cabdff1aSopenharmony_ci * Copyright (c) 2013 Martin Storsjo
4cabdff1aSopenharmony_ci *
5cabdff1aSopenharmony_ci * This file is part of FFmpeg.
6cabdff1aSopenharmony_ci *
7cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or
8cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public
9cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either
10cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version.
11cabdff1aSopenharmony_ci *
12cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful,
13cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
14cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15cabdff1aSopenharmony_ci * Lesser General Public License for more details.
16cabdff1aSopenharmony_ci *
17cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public
18cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software
19cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20cabdff1aSopenharmony_ci */
21cabdff1aSopenharmony_ci
22cabdff1aSopenharmony_ci#include "libavcodec/avcodec.h"
23cabdff1aSopenharmony_ci#include "libavutil/arm/neontest.h"
24cabdff1aSopenharmony_ci
25cabdff1aSopenharmony_ciwrap(avcodec_open2(AVCodecContext *avctx,
26cabdff1aSopenharmony_ci                   const AVCodec *codec,
27cabdff1aSopenharmony_ci                   AVDictionary **options))
28cabdff1aSopenharmony_ci{
29cabdff1aSopenharmony_ci    testneonclobbers(avcodec_open2, avctx, codec, options);
30cabdff1aSopenharmony_ci}
31cabdff1aSopenharmony_ci
32cabdff1aSopenharmony_ciwrap(avcodec_decode_subtitle2(AVCodecContext *avctx,
33cabdff1aSopenharmony_ci                              AVSubtitle *sub,
34cabdff1aSopenharmony_ci                              int *got_sub_ptr,
35cabdff1aSopenharmony_ci                              AVPacket *avpkt))
36cabdff1aSopenharmony_ci{
37cabdff1aSopenharmony_ci    testneonclobbers(avcodec_decode_subtitle2, avctx, sub,
38cabdff1aSopenharmony_ci                     got_sub_ptr, avpkt);
39cabdff1aSopenharmony_ci}
40cabdff1aSopenharmony_ci
41cabdff1aSopenharmony_ciwrap(avcodec_encode_subtitle(AVCodecContext *avctx,
42cabdff1aSopenharmony_ci                             uint8_t *buf, int buf_size,
43cabdff1aSopenharmony_ci                             const AVSubtitle *sub))
44cabdff1aSopenharmony_ci{
45cabdff1aSopenharmony_ci    testneonclobbers(avcodec_encode_subtitle, avctx, buf, buf_size, sub);
46cabdff1aSopenharmony_ci}
47cabdff1aSopenharmony_ci
48cabdff1aSopenharmony_ciwrap(avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt))
49cabdff1aSopenharmony_ci{
50cabdff1aSopenharmony_ci    testneonclobbers(avcodec_send_packet, avctx, avpkt);
51cabdff1aSopenharmony_ci}
52cabdff1aSopenharmony_ci
53cabdff1aSopenharmony_ciwrap(avcodec_receive_packet(AVCodecContext *avctx, AVPacket *avpkt))
54cabdff1aSopenharmony_ci{
55cabdff1aSopenharmony_ci    testneonclobbers(avcodec_receive_packet, avctx, avpkt);
56cabdff1aSopenharmony_ci}
57cabdff1aSopenharmony_ci
58cabdff1aSopenharmony_ciwrap(avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame))
59cabdff1aSopenharmony_ci{
60cabdff1aSopenharmony_ci    testneonclobbers(avcodec_send_frame, avctx, frame);
61cabdff1aSopenharmony_ci}
62cabdff1aSopenharmony_ci
63cabdff1aSopenharmony_ciwrap(avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame))
64cabdff1aSopenharmony_ci{
65cabdff1aSopenharmony_ci    testneonclobbers(avcodec_receive_frame, avctx, frame);
66cabdff1aSopenharmony_ci}
67