On Fri, Dec 07, 2018 at 10:28:09AM +0100, Paul B Mahol wrote:
> On 12/7/18, Michael Niedermayer <mich...@niedermayer.cc> wrote:
> > On Wed, Dec 05, 2018 at 09:22:48PM +0100, Paul B Mahol wrote:
> >> Signed-off-by: Paul B Mahol <one...@gmail.com>
> >> ---
> >>  libavcodec/proresdec2.c | 51 ++++++++++++++++++++++-------------------
> >>  1 file changed, 27 insertions(+), 24 deletions(-)
> >>
> >> diff --git a/libavcodec/proresdec2.c b/libavcodec/proresdec2.c
> >> index 8581d797fb..80a76bbba1 100644
> >> --- a/libavcodec/proresdec2.c
> >> +++ b/libavcodec/proresdec2.c
> >> @@ -140,32 +140,35 @@ static av_cold int decode_init(AVCodecContext
> >> *avctx)
> >>@@ -140,6 +140,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
> >>
> >>     avctx->bits_per_raw_sample = 10;
> >>
> >>+    if (avctx->profile == FF_PROFILE_UNKNOWN) {
> >>         switch (avctx->codec_tag) {
> >>         case MKTAG('a','p','c','o'):
> >>             avctx->profile = FF_PROFILE_PRORES_PROXY;
> >>@@ -155,16 +156,18 @@ static av_cold int decode_init(AVCodecContext
> >> *avctx)
> >>             break;
> >>         case MKTAG('a','p','4','h'):
> >>             avctx->profile = FF_PROFILE_PRORES_4444;
> >>-        avctx->bits_per_raw_sample = 12;
> >>             break;
> >>         case MKTAG('a','p','4','x'):
> >>             avctx->profile = FF_PROFILE_PRORES_XQ;
> >>-        avctx->bits_per_raw_sample = 12;
> >>             break;
> >>         default:
> >>-        avctx->profile = FF_PROFILE_UNKNOWN;
> >>             av_log(avctx, AV_LOG_WARNING, "Unknown prores profile %d\n",
> >> avctx->codec_tag);
> >>         }
> >>+    }
> >>+
> >>+    if (avctx->profile == FF_PROFILE_PRORES_XQ ||
> >>+        avctx->profile == FF_PROFILE_PRORES_4444)
> >>+        avctx->bits_per_raw_sample = 12;
> >
> > with this it would be possible to have 12bit output while the profile
> > is set to one having 10bits and vice versa ?
> 
> No, and neither with previous code.
> 
> > maybe the profile should only be left if it is compatible with the
> > decoder output
> 
> I do not follow.

I may have misunderstood the intend of the patch
please document what this fixes in the commit message.

AVCodecContext.profile is for decoding set by the decoder. 
(thats how its documented in avcodec.h)

So the obvious thought that this is about not overriding a profile
set by the user(app) or demuxer might have been flawed on my side
as that seems not possible in the API as it is documented

thx

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Breaking DRM is a little like attempting to break through a door even
though the window is wide open and the only thing in the house is a bunch
of things you dont want and which you would get tomorrow for free anyway

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to