On Fri, Jul 01, 2011 at 10:21:11PM -0700, Ronald S. Bultje wrote: > Hi, > > On Fri, Jul 1, 2011 at 10:16 PM, Kostya <[email protected]> wrote: > > On Fri, Jul 01, 2011 at 08:45:22PM -0700, Ronald S. Bultje wrote: > >> Hi, > >> > >> On Mon, Jun 27, 2011 at 5:17 PM, Ronald S. Bultje <[email protected]> > >> wrote: > >> > Hi, > >> > > >> > On Sun, Jun 26, 2011 at 10:20 PM, Kostya <[email protected]> > >> > wrote: > >> >> On Sun, Jun 26, 2011 at 03:52:01PM -0700, Ronald S. Bultje wrote: > >> >>> This functionality is only implemented for RGB24/32 and causes crashes > >> >>> otherwise. > >> >>> --- > >> >>> libswscale/utils.c | 13 +++++++++++++ > >> >>> 1 files changed, 13 insertions(+), 0 deletions(-) > >> >>> > >> >>> diff --git a/libswscale/utils.c b/libswscale/utils.c > >> >>> index 6971418..ab28588 100644 > >> >>> --- a/libswscale/utils.c > >> >>> +++ b/libswscale/utils.c > >> >>> @@ -845,6 +845,19 @@ int sws_init_context(SwsContext *c, SwsFilter > >> >>> *srcFilter, SwsFilter *dstFilter) > >> >>> getSubSampleFactors(&c->chrDstHSubSample, &c->chrDstVSubSample, > >> >>> dstFormat); > >> >>> > >> >>> // reuse chroma for 2 pixels RGB/BGR unless user wants full > >> >>> chroma interpolation > >> >>> + if (flags & SWS_FULL_CHR_H_INT && > >> >>> + dstFormat != PIX_FMT_RGBA && > >> >>> + dstFormat != PIX_FMT_ARGB && > >> >>> + dstFormat != PIX_FMT_BGRA && > >> >>> + dstFormat != PIX_FMT_ABGR && > >> >>> + dstFormat != PIX_FMT_RGB24 && > >> >>> + dstFormat != PIX_FMT_BGR24) { > >> >>> + av_log(c, AV_LOG_ERROR, > >> >>> + "full chroma interpolation for destination format '%s' > >> >>> not yet implemented\n", > >> >>> + sws_format_name(dstFormat)); > >> >>> + flags &= ~SWS_FULL_CHR_H_INT; > >> >>> + c->flags = flags; > >> >>> + } > >> >>> if (isAnyRGB(dstFormat) && !(flags&SWS_FULL_CHR_H_INT)) > >> >>> c->chrDstHSubSample=1; > >> >>> > >> >>> // drop some chroma lines if the user wants it > >> >>> -- > >> >> > >> >> Why not use condition like below? I'd like my RGB565 output with full > >> >> chroma > >> >> too and mentioning all dst formats in wall of conditions is ugly IMO. > >> > > >> > Scaling functions use c->flags to decide whether to use a full or half > >> > function. I.e., the value needs to match the function chosen, else > >> > everything goes wrong... > >> > > >> > And yes this is a design problem, I'll see what I can do about that, > >> > but at least it's better to not just plain crash. :-). > >> > >> Ping. > > > > Why do you need to ping yourself? > > I ping the list (= you) for re-reviewing after my replies to your questions.
The patch looked OK but I felt that that condition can be simplified a bit. If it cannot be done, fine. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
