[FFmpeg-devel] [RFC] FFmpeg 0.5 and imgconvert.h

Luca Abeni lucabe72
Wed Feb 3 09:20:42 CET 2010


On 03/02/10 09:08, Stefano Sabatini wrote:
> On date Wednesday 2010-02-03 07:29:03 +0100, Reinhard Tartler encoded:
>> On Mi, Feb 03, 2010 at 00:14:39 (CET), Stefano Sabatini wrote:
>>
>>> Hi all, I see no imgconvert.h header installed in FFmpeg 0.5, also
>>> reported here:
>>> http://thread.gmane.org/gmane.comp.video.ffmpeg.user/25100
>>>
>>> but what's even stranger, there is no mention of such an header in the
>>> svn log, so I concluded that it was never public.
>>>
>>> Is this a bug, so should we add it between the public headers, or am I
>>> missing something?
>>
>> IIRC it was obsoleted by libswscale. ffmpeg 0.5 contained a non public
>> img_convert.h header with these functions:
>>
>> ,----
>> | int ff_fill_linesize(AVPicture *picture, int pix_fmt, int width);
>> |
>> | int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, int pix_fmt, int height);
>> |
>> | int ff_get_plane_bytewidth(enum PixelFormat pix_fmt, int width, int plane);
>> |
>> | int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt);
>> |
>> | int img_convert(AVPicture *dst, int dst_pix_fmt, const AVPicture *src,
>> |                 int src_pix_fmt, int src_width, int src_height);
>> `----
>>
>> since img_convert.h has ff_ prefixed and therefore non public functions,
>> this header must not be installed.
>>
>> in trunk, only the 'ff_' prefixed are available. In fact, it was you who
>> did this change:
>>
>> ------------------------------------------------------------------------
>> r18080 | stefano | 2009-03-20 23:29:31 +0100 | 2 lines
>>
>> Remove declaration of the removed function img_convert().
>>
>>
>> In theory, this API could be added to a public header like avcodec.h for
>> 0.5. However, as trunk doesn't support it either, this might encourage
>> users to use deprecated functions.
>
> I did that *after* the release, but I believe the OP of the
> abovementioned thread had problems with compiling a program which used
> the img_convert API, so the problem may occurr when trying to compile
> a program using the old img_convert API, but since that was never
> public then I can't see how such a program can even exist.

img_convert() was public a long time ago (and the prototype was in 
avcodec.h, if I remember well). But AFAIR it was removed from the public 
API before the 0.5 release. So, 0.5 does not export it.
The application used by the OP is probably very old, and has not been 
converted to the new (swscale) API.

In my understanding, the OP can:
1) checkout an old ffmpeg version from svn, which supports img_convert()
or
2) port the application to the swscale API


				Luca



More information about the ffmpeg-devel mailing list