X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Finternal.h;h=b5a04546f3d12ad2ce550842ff405d6d040ba13d;hb=3a2ddf7c2c4d27b595a601c55af23129a5a8be0d;hp=67d5be7c3ba8de5fb491003c9fe98648beef1667;hpb=603a5f04b2da0622faab796307d7208ecde80603;p=ffmpeg diff --git a/libavcodec/internal.h b/libavcodec/internal.h index 67d5be7c3ba..b5a04546f3d 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -1,18 +1,18 @@ /* - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav 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. * - * FFmpeg is distributed in the hope that it will be useful, + * Libav 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 + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -25,15 +25,56 @@ #define AVCODEC_INTERNAL_H #include + +#include "libavutil/pixfmt.h" #include "avcodec.h" +typedef struct InternalBuffer { + uint8_t *base[AV_NUM_DATA_POINTERS]; + uint8_t *data[AV_NUM_DATA_POINTERS]; + int linesize[AV_NUM_DATA_POINTERS]; + int width; + int height; + enum PixelFormat pix_fmt; + uint8_t **extended_data; + int audio_data_size; + int nb_channels; +} InternalBuffer; + +typedef struct AVCodecInternal { + /** + * internal buffer count + * used by default get/release/reget_buffer(). + */ + int buffer_count; + + /** + * internal buffers + * used by default get/release/reget_buffer(). + */ + InternalBuffer *buffer; + + /** + * Whether the parent AVCodecContext is a copy of the context which had + * init() called on it. + * This is used by multithreading - shared tables and picture pointers + * should be freed from the original context only. + */ + int is_copy; +} AVCodecInternal; + +struct AVCodecDefault { + const uint8_t *key; + const uint8_t *value; +}; + /** - * Determines whether pix_fmt is a hardware accelerated format. + * Determine whether pix_fmt is a hardware accelerated format. */ int ff_is_hwaccel_pix_fmt(enum PixelFormat pix_fmt); /** - * Returns the hardware accelerated codec for codec codec_id and + * Return the hardware accelerated codec for codec codec_id and * pixel format pix_fmt. * * @param codec_id the codec to match @@ -48,6 +89,9 @@ AVHWAccel *ff_find_hwaccel(enum CodecID codec_id, enum PixelFormat pix_fmt); */ int ff_match_2uint16(const uint16_t (*tab)[2], int size, int a, int b); -unsigned int ff_toupper4(unsigned int x); +unsigned int avpriv_toupper4(unsigned int x); + +int avpriv_lock_avformat(void); +int avpriv_unlock_avformat(void); #endif /* AVCODEC_INTERNAL_H */