X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=doc%2Fexamples%2Fhw_decode.c;h=77ae8df35b5af79e7412786e799f853e666805a8;hb=46dac8cf3d250184ab4247809bc03f60e14f4c0c;hp=14fe08b374f9e8d63921f4fa6d26b89f7f4604b5;hpb=fbeac5356c692b6f681a21749dee3a3e414f1230;p=ffmpeg diff --git a/doc/examples/hw_decode.c b/doc/examples/hw_decode.c index 14fe08b374f..096a229c0d2 100644 --- a/doc/examples/hw_decode.c +++ b/doc/examples/hw_decode.c @@ -4,21 +4,23 @@ * * HW Acceleration API (video decoding) decode sample * - * This file is part of FFmpeg. + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: * - * FFmpeg is free software; you can redistribute it and/or - * 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. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * FFmpeg is distributed in the hope that it will be useful, - * 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 - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. */ /** @@ -86,7 +88,7 @@ static int decode_write(AVCodecContext *avctx, AVPacket *packet) return ret; } - while (ret >= 0) { + while (1) { if (!(frame = av_frame_alloc()) || !(sw_frame = av_frame_alloc())) { fprintf(stderr, "Can not alloc frame\n"); ret = AVERROR(ENOMEM); @@ -138,13 +140,10 @@ static int decode_write(AVCodecContext *avctx, AVPacket *packet) fail: av_frame_free(&frame); av_frame_free(&sw_frame); - if (buffer) - av_freep(&buffer); + av_freep(&buffer); if (ret < 0) return ret; } - - return 0; } int main(int argc, char *argv[]) @@ -153,7 +152,7 @@ int main(int argc, char *argv[]) int video_stream, ret; AVStream *video = NULL; AVCodecContext *decoder_ctx = NULL; - AVCodec *decoder = NULL; + const AVCodec *decoder = NULL; AVPacket packet; enum AVHWDeviceType type; int i; @@ -214,7 +213,6 @@ int main(int argc, char *argv[]) return -1; decoder_ctx->get_format = get_hw_format; - av_opt_set_int(decoder_ctx, "refcounted_frames", 1, 0); if (hw_decoder_init(decoder_ctx, type) < 0) return -1; @@ -225,7 +223,7 @@ int main(int argc, char *argv[]) } /* open the file to dump raw data */ - output_file = fopen(argv[3], "w+"); + output_file = fopen(argv[3], "w+b"); /* actual decoding and dump the raw data */ while (ret >= 0) {