Carl Eugen Hoyos <cehoyos@...> writes:
>
> Axel Holzinger <aholzinger@...> writes:
>
> > > Note that (major) parts of the 3.0 API are deprecated.
> >
> > But isn't the 3.0 API the newest one?
>
> No.
Interesting, thanks for the clarification. I thought 3.0.x is the trunk
version. So it might be smart to wait for the next API change to not having to
do the porting effort twice.
> I cannot answer how you have to change your code (and you
> did not provide any code that could be changed by readers)
Well, I didn't do by means as it is C++ and I didn't want to inspire a C/C++
flame war. Whatever, here's a snippet:
//! AVFrame Wrapper
class Frame : public AVFrame {
public:
typedef std::pair<int64_t, AVCodecContext*> UserInfo;
Frame(AVCodecContext *ctx=0, AVPicture const *pic=nullptr);
...
};
//! Swscale Wrapper
class SwsContextHandle {
public:
SwsContextHandle(int iWidth, int iHeight, AVPixelFormat iFormat, int oWidth,
int oHeight, AVPixelFormat oFormat);
void resample(const AVPicture& input, AVPicture& output);
...
};
Frame::Frame(AVCodecContext *ctx, AVPicture const *pic)
{
AVFrame *frame = this;
memset(frame, 0, sizeof(AVFrame));
frame->extended_data = NULL;
get_frame_defaults(frame);
avcodec_get_frame_defaults(this);
if(ctx) {
opaque = new UserInfo(0, ctx);
ctx->get_buffer = our_get_buffer;
ctx->release_buffer = our_release_buffer;
ctx->get_buffer(ctx, this);
if (pic) {
SwsContextHandle swctx(ctx->width, ctx->height, ctx->pix_fmt,
ctx->width, ctx->height, ctx->pix_fmt); // deep copy
swctx.resample(*pic, *this);
}
}
}
> but both ffmpeg.c itself (or libavformat/*.c) and every open
> source software using FFmpeg had to be changed so it should
> be possible to find examples.
> Debian for example had to patch many packages to update to
> 3.0.
This is clearly a viable approach, nevertheless it's a rocky road and my idea
was that a lot of projects need(ed) to update from 2.8.x to 3.0.x and so I
thought that there is a lot of need for such a documentation and that I just
wasn't able to find it.
As it's not there this might mean everybody is going that rocky road and doing
it on his own or perhaps not many projects did yet port to th new version?
> Sorry, Carl Eugen
Fair enough
Axel
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user