[Libva] [PATCH] vainfo/va.h: add VAProfileCount in va.h.
Zhao, Halley
halley.zhao at intel.com
Tue Jul 9 02:29:55 PDT 2013
How do you expect ffdec_mpeg4 is picked up when vaapidecode also claims to support mpeg4? (they have same rank).
The issue is reported from Tizen/ivi, it isn't only reproduced on my pc.
For gst-vaapi code, I use your 0.4-branch.
> -----Original Message-----
> From: Gwenole Beauchesne [mailto:gb.devel at gmail.com]
> Sent: Tuesday, July 09, 2013 4:50 PM
> To: Zhao, Halley
> Cc: libva at lists.freedesktop.org
> Subject: Re: [Libva] [PATCH] vainfo/va.h: add VAProfileCount in va.h.
>
> Hi,
>
> 2013/7/9 Zhao, Halley <halley.zhao at intel.com>:
> > No, sw codecs will not be picked up, ( I will send you a mpeg4-2
> stream for test).
> >
> > Playbin2 (I haven't check it for gst1.0 yet) filters a set of element
> which support a given cap, playbin2 try to link one of them (ordered by
> rank) with uplink srcpad.
> > If link success, it will NOT try other elements (even if there is
> failure in the future auto-plug).
> > If link failure, it will try another element with lower rank.
> >
> > I tried a simple test (gst0.10, since I don't want to install gst-
> ffmpeg for gst1.0 in my Ubuntu12.04, I think it should be same for
> gst1.0):
> > 1) install gst-ffmpeg only, (no gst-vaapi); mpeg4 stream is ok to
> play
> > 2) install gst-vaapi, mpeg4 stream fail to play; since qtdemux fail
> to
> > push data downlink
>
> I will try on Sandybridge, but on Ivybridge and Ubuntu 12.04-LTS, I
> could not reproduce that. The SW decoder from ffmpeg is correctly
> picked up and the stream is playing. I don't expect any issue on
> Sandybridge either.
>
> The system GStreamer 0.10 stack comes from the original Ubuntu 12.04-
> LTS packages, and this includes gst-ffmpeg.
> The system GStreamer 1.0 stack comes from Ubuntu 13.04, and this
> includes gst-libav.
> In both cases, MPEG-4:2 are correctly played back while gst-vaapi is
> installed.
>
> I think you probably have other local changes that break the normal
> behaviour. Is this upstream gst-vaapi?
>
> Regards,
> Gwenole.
>
> > -----Original Message-----
> > From: Gwenole Beauchesne [mailto:gb.devel at gmail.com]
> > Sent: Monday, July 08, 2013 3:33 PM
> > To: Zhao, Halley
> > Cc: libva at lists.freedesktop.org
> > Subject: Re: [Libva] [PATCH] vainfo/va.h: add VAProfileCount in va.h.
> >
> > Hi,
> >
> > 2013/7/8 Zhao, Halley <halley.zhao at intel.com>:
> >> You shouldn't assume there is no other sw codec in system.
> >> For example, there is fluendo sw code in tizen/pc; there is ffmepg
> sw codec in tizen/mobile.
> >
> > Yes, and the SW codecs will be picked up instead, if they are indeed
> installed. So, I still don't see the issue here, please be more
> specific.
> >
> > Thanks,
> > Gwenole.
> >
> >> -----Original Message-----
> >> From: Gwenole Beauchesne [mailto:gb.devel at gmail.com]
> >> Sent: Friday, July 05, 2013 5:23 PM
> >> To: Zhao, Halley
> >> Cc: libva at lists.freedesktop.org
> >> Subject: Re: [Libva] [PATCH] vainfo/va.h: add VAProfileCount in va.h.
> >>
> >> Hi,
> >>
> >> 2013/7/5 Zhao, Halley <halley.zhao at intel.com>:
> >>
> >>> Return back to gst-vaapi:
> >>> It is one issue reported by dlna client (they may not use gst
> playbin).
> >>
> >> They used playbin.
> >>
> >>> Anyway, in get_caps, we'd return real hw capability instead of gst-
> vaapi supported features.
> >>> The patch looks like attachment, I haven't update it according to
> vaMaxNumProfiles/vaQueryConfigProfiles yet.
> >>
> >> This patch is still not needed.
> >>
> >> For JPEG images or videos, jpegdec gets auto-plugged. For MPEG-4:2
> videos, there is no SW decoder either because xviddec is not ported to
> GStreamer 1.0 APIs. You could try gst libav/ffmpeg plug-ins too, but I
> don't think they would go to the release.
> >>
> >> Regards,
> >> Gwenole.
> >>
> >>>> -----Original Message-----
> >>>> From: Gwenole Beauchesne [mailto:gb.devel at gmail.com]
> >>>> Sent: Thursday, July 04, 2013 1:19 AM
> >>>> To: Zhao, Halley
> >>>> Cc: libva at lists.freedesktop.org
> >>>> Subject: Re: [Libva] [PATCH] vainfo/va.h: add VAProfileCount in
> va.h.
> >>>>
> >>>> Hi,
> >>>>
> >>>> 2013/7/3 Zhao, Halley <halley.zhao at intel.com>:
> >>>> > This patch helps middleware (gst-vaapi for example) not over
> >>>> > commit
> >>>> capability.
> >>>>
> >>>> I don't understand this usage model. vaQueryConfigProfiles() will
> >>>> report the correct number of VA profiles returned in profile_list[]
> >>>> array. There is no risk of overcommit unless the API is mis-used
> or
> >>>> the VA driver not returning the right number of profiles. This
> used
> >>>> to be the case with a pretty ancient version of the PowerVR driver,
> >>>> but the Intel HD Graphics driver does not have this issue AFAIK.
> >>>>
> >>>> > The scenario is:
> >>>> > Gst-vaapi supports mpeg4 and jpeg decoder, but Sandybridge hw
> >>>> > doesn't
> >>>> really support that.
> >>>> > Some player may misuse vaapidecode.
> >>>>
> >>>> What is the root cause of this issue please? Do you mean
> >>>> vaapidecode was auto-plugged in whereas the HW does not support
> >>>> that codec? This sounds like a bug though the current
> >>>> gstreamer-vaapi git and back to
> >>>> 0.5.3 actually does not exhibit this behaviour. i.e. SW decoding
> >>>> plug- in elements are plugged in if the underlying HW doesn't
> >>>> support acceleration for MPEG-4:2 or JPEG for example. Only tested
> >>>> with JPEG though.
> >>>>
> >>>> Regards,
> >>>> Gwenole.
> >>>>
> >>>> >> -----Original Message-----
> >>>> >> From: Zhao, Halley
> >>>> >> Sent: Wednesday, July 03, 2013 5:47 PM
> >>>> >> To: libva at lists.freedesktop.org
> >>>> >> Cc: Zhao, Halley
> >>>> >> Subject: [PATCH] vainfo/va.h: add VAProfileCount in va.h.
> >>>> >>
> >>>> >> it facilitate driver capability probing.
> >>>> >> ---
> >>>> >> test/vainfo/vainfo.c | 2 +-
> >>>> >> va/va.h | 3 ++-
> >>>> >> 2 files changed, 3 insertions(+), 2 deletions(-)
> >>>> >>
> >>>> >> diff --git a/test/vainfo/vainfo.c b/test/vainfo/vainfo.c index
> >>>> >> 2578d30..1f35693 100644
> >>>> >> --- a/test/vainfo/vainfo.c
> >>>> >> +++ b/test/vainfo/vainfo.c
> >>>> >> @@ -111,7 +111,7 @@ int main(int argc, const char* argv[])
> >>>> >> printf("%s: Driver version: %s\n", name, driver ? driver :
> >>>> >> "<unknown>");
> >>>> >>
> >>>> >> printf("%s: Supported profile and entrypoints\n", name);
> >>>> >> - for (profile = VAProfileNone; profile <=
> >>>> >> VAProfileH264ConstrainedBaseline; profile++) {
> >>>> >> + for (profile = VAProfileNone; profile <
> VAProfileCount;
> >>>> >> profile++) {
> >>>> >> char *profile_str;
> >>>> >>
> >>>> >> va_status = vaQueryConfigEntrypoints(va_dpy, profile,
> >>>> >> entrypoints, diff --git a/va/va.h b/va/va.h index
> >>>> >> 0eceea7..b25a55b
> >>>> >> 100644
> >>>> >> --- a/va/va.h
> >>>> >> +++ b/va/va.h
> >>>> >> @@ -286,7 +286,8 @@ typedef enum
> >>>> >> VAProfileVC1Advanced = 10,
> >>>> >> VAProfileH263Baseline = 11,
> >>>> >> VAProfileJPEGBaseline = 12,
> >>>> >> - VAProfileH264ConstrainedBaseline = 13
> >>>> >> + VAProfileH264ConstrainedBaseline = 13,
> >>>> >> + VAProfileCount = 14
> >>>> >> } VAProfile;
> >>>> >>
> >>>> >> /*
> >>>> >> --
> >>>> >> 1.7.9.5
> >>>> >
> >>>> > _______________________________________________
> >>>> > Libva mailing list
> >>>> > Libva at lists.freedesktop.org
> >>>> > http://lists.freedesktop.org/mailman/listinfo/libva
More information about the Libva
mailing list