[vlc-devel] [PATCH] vaapi: use ffmpeg context to read the codec profile
Mathieu Velten
matmaul at gmail.com
Thu Dec 28 17:13:14 CET 2017
On a side note I am not sure we should enable VAAPI VP9 decoding support
for 3.0 release because of that:
https://github.com/01org/intel-vaapi-driver/issues/262
Should we provide an option ? Just disable ? If they cut a new 1.8 minor
release we could probably test for the version. Support on the issue for a
release appreciated ;)
Le jeu. 28 déc. 2017 à 17:01, Mathieu Velten <matmaul at gmail.com> a écrit :
>
> Le 28 déc. 2017 05:16, "Steve Lhomme" <robux4 at gmail.com> a écrit :
>
> In any case does the ctx value get copied to the fmt later? Because we
> probably want to display that info in the stream Metadata.
>
>
> Instead of the current patch I can copy the profile value from the ctx to
> fmt earlier in the generic avcodec code, only if the current fmt profile
> value is < 0 so we do not override a value coming from the parser. I'll try
> to test that tomorrow.
>
>
> On Thu 28 Dec 2017 at 00:36, Jean-Baptiste Kempf <jb at videolan.org> wrote:
>
>> Hello Mathieu,
>>
>> On Wed, 27 Dec 2017, at 12:49, Mathieu Velten wrote:
>>
>> Hi Jean-Baptiste,
>>
>> Le mer. 27 déc. 2017 à 12:04, Jean-Baptiste Kempf <jb at videolan.org> a
>> écrit :
>>
>> Hello Mathieu,
>>
>> On Tue, 26 Dec 2017, at 15:21, Mathieu Velten wrote:
>> > Sometimes the profile is not available in the container metadatas
>> (WebM).
>>
>> Shouldn't the packetizer find those info?
>>
>>
>> avparser is used to packetize VP9.
>> I just tried to fetch the profile after the call to av_parser_parse2 but
>> it doesn't seem to update the avcodec context with the profile.
>>
>>
>> OK. Also, that might fix #/19196, no?
>>
>
> Seems unrelated, software decoding is working fine on my side.
>
>
>> I am a bit reluctant to write the whole logic to parse the profile
>> manually there since we have the correct info directly in the decoder
>> context at this stage.
>>
>>
>> Sure.
>>
>> However I will revert the change for HEVC since we have a full packetizer
>> in this case, updated patch incoming.
>>
>>
>> Yes, that would be preferable, especially if we want to backport to 3.0
>> (I do).
>>
>> I'll let François and Thomas debate on that later, because I believe the
>> discussion is not over :)
>>
>> Best,
>>
>>
>>
>>
>> > ---
>> > modules/codec/avcodec/vaapi.c | 11 +++++++----
>> > 1 file changed, 7 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/
>> > vaapi.c
>> > index ee7fdf8..ffe537e 100644
>> > --- a/modules/codec/avcodec/vaapi.c
>> > +++ b/modules/codec/avcodec/vaapi.c
>> > @@ -87,9 +87,9 @@ static int GetVaProfile(AVCodecContext *ctx, const
>> > es_format_t *fmt,
>> > count = 18;
>> > break;
>> > case AV_CODEC_ID_HEVC:
>> > - if (fmt->i_profile == FF_PROFILE_HEVC_MAIN)
>> > + if (ctx->profile == FF_PROFILE_HEVC_MAIN)
>> > i_profile = VAProfileHEVCMain;
>> > - else if (fmt->i_profile == FF_PROFILE_HEVC_MAIN_10)
>> > + else if (ctx->profile == FF_PROFILE_HEVC_MAIN_10)
>> > {
>> > i_profile = VAProfileHEVCMain10;
>> > i_vlc_chroma = VLC_CODEC_VAAPI_420_10BPP;
>> > @@ -103,11 +103,14 @@ static int GetVaProfile(AVCodecContext *ctx, const
>> > es_format_t *fmt,
>> > count = 5;
>> > break;
>> > case AV_CODEC_ID_VP9:
>> > - if (fmt->i_profile == FF_PROFILE_VP9_0)
>> > + if (ctx->profile == FF_PROFILE_VP9_0)
>> > i_profile = VAProfileVP9Profile0;
>> > #if VA_CHECK_VERSION( 0, 39, 0 )
>> > - else if (fmt->i_profile == FF_PROFILE_VP9_2)
>> > + else if (ctx->profile == FF_PROFILE_VP9_2)
>> > + {
>> > i_profile = VAProfileVP9Profile2;
>> > + i_vlc_chroma = VLC_CODEC_VAAPI_420_10BPP;
>> > + }
>> > #endif
>> > else
>> > return VLC_EGENERIC;
>> > --
>> > 2.14.3
>> >
>> > _______________________________________________
>> > vlc-devel mailing list
>> > To unsubscribe or modify your subscription options:
>> > https://mailman.videolan.org/listinfo/vlc-devel
>>
>>
>> --
>> Jean-Baptiste Kempf - President
>> +33 672 704 734
>>
>>
>> --
>> Jean-Baptiste Kempf - President
>> +33 672 704 734
>>
>>
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20171228/a912f369/attachment.html>
More information about the vlc-devel
mailing list