| 
									
										
										
										
											2008-12-08 21:21:38 +00:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * This file is part of FFmpeg. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-04-20 14:45:34 +00:00
										 |  |  |  * @file | 
					
						
							| 
									
										
										
										
											2008-12-08 21:21:38 +00:00
										 |  |  |  * common internal api header. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef AVCODEC_INTERNAL_H
 | 
					
						
							|  |  |  | #define AVCODEC_INTERNAL_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-24 19:04:43 +00:00
										 |  |  | #include <stdint.h>
 | 
					
						
							| 
									
										
										
										
											2011-11-15 15:34:50 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include "libavutil/pixfmt.h"
 | 
					
						
							| 
									
										
										
										
											2009-02-24 19:04:43 +00:00
										 |  |  | #include "avcodec.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-15 15:34:50 -05:00
										 |  |  | typedef struct InternalBuffer { | 
					
						
							|  |  |  |     int last_pic_num; | 
					
						
							| 
									
										
										
										
											2011-09-06 12:17:45 -04:00
										 |  |  |     uint8_t *base[AV_NUM_DATA_POINTERS]; | 
					
						
							|  |  |  |     uint8_t *data[AV_NUM_DATA_POINTERS]; | 
					
						
							|  |  |  |     int linesize[AV_NUM_DATA_POINTERS]; | 
					
						
							| 
									
										
										
										
											2011-11-15 15:34:50 -05:00
										 |  |  |     int width; | 
					
						
							|  |  |  |     int height; | 
					
						
							|  |  |  |     enum PixelFormat pix_fmt; | 
					
						
							| 
									
										
										
										
											2011-09-06 12:17:45 -04:00
										 |  |  |     uint8_t **extended_data; | 
					
						
							|  |  |  |     int audio_data_size; | 
					
						
							|  |  |  |     int nb_channels; | 
					
						
							| 
									
										
										
										
											2011-11-15 15:34:50 -05:00
										 |  |  | } 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; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-06-08 08:27:53 +02:00
										 |  |  | struct AVCodecDefault { | 
					
						
							|  |  |  |     const uint8_t *key; | 
					
						
							|  |  |  |     const uint8_t *value; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-25 23:24:34 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-06-30 15:38:06 +00:00
										 |  |  |  * Determine whether pix_fmt is a hardware accelerated format. | 
					
						
							| 
									
										
										
										
											2009-02-25 23:24:34 +00:00
										 |  |  |  */ | 
					
						
							|  |  |  | int ff_is_hwaccel_pix_fmt(enum PixelFormat pix_fmt); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-24 19:04:43 +00:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2010-06-30 15:38:06 +00:00
										 |  |  |  * Return the hardware accelerated codec for codec codec_id and | 
					
						
							| 
									
										
										
										
											2009-06-06 09:35:15 +00:00
										 |  |  |  * pixel format pix_fmt. | 
					
						
							| 
									
										
										
										
											2009-02-24 19:04:43 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * @param codec_id the codec to match | 
					
						
							|  |  |  |  * @param pix_fmt the pixel format to match | 
					
						
							|  |  |  |  * @return the hardware accelerated codec, or NULL if none was found. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | AVHWAccel *ff_find_hwaccel(enum CodecID codec_id, enum PixelFormat pix_fmt); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-10 04:06:34 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * Return the index into tab at which {a,b} match elements {[0],[1]} of tab. | 
					
						
							|  |  |  |  * If there is no such matching pair then size is returned. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2010-01-10 04:04:51 +00:00
										 |  |  | int ff_match_2uint16(const uint16_t (*tab)[2], int size, int a, int b); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-17 10:12:51 +02:00
										 |  |  | unsigned int avpriv_toupper4(unsigned int x); | 
					
						
							| 
									
										
										
										
											2010-05-18 19:16:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-07 02:11:06 +02:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * does needed setup of pkt_pts/pos and such for (re)get_buffer(); | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | void ff_init_buffer_info(AVCodecContext *s, AVFrame *pic); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-30 01:20:15 +03:00
										 |  |  | int avpriv_lock_avformat(void); | 
					
						
							|  |  |  | int avpriv_unlock_avformat(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-08 21:21:38 +00:00
										 |  |  | #endif /* AVCODEC_INTERNAL_H */
 |