-
Notifications
You must be signed in to change notification settings - Fork 98
question: External SurfaceAllocator usage #826
Comments
Hi Angelo:
Do you want choose which surface to decode to ?
You can refer to https://github.com/intel/libyami/blob/apache/v4l2/v4l2_decode.cpp#L210
for get/put API
From: angelo-p [mailto:[email protected]]
Sent: Friday, January 26, 2018 4:07 AM
To: intel/libyami <[email protected]>
Cc: Subscribed <[email protected]>
Subject: [intel/libyami] question: External SurfaceAllocator usage (#826)
Hello,
When I setup libyami for an external SurfaceAllocator usage, user-code gets an "alloc: and "free" function callbacks.
* the alloc callback is used by the lib to get all of the user provided surfaces
* the free callback is used by the lib to let the user cleanup all the surfaces.
When decoding a specific frame, is there a mechanism in place that would let the lib query user-code for the surface to be used as the current rendering target ?
Thanks for your input,
Angelo
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#826>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AGW9GicfJJheeldEhKqqAXmnG0zkyhw_ks5tON7SgaJpZM4Rtafk>.
|
Yes, |
hi @angelo-p , is it working for you? |
Hi Xu Guangxin,
Yes, it is working but I am looking into a problem that occurs when flushing.
when I call decodeFlush(), my surface_do_put_callback() callback get calls with surfaces that are hold in the decoder DPB but also with surfaces that have already been released.
Angelo
…________________________________
From: Xu Guangxin <[email protected]>
Sent: March 20, 2018 10:52 AM
To: intel/libyami
Cc: angelo-p; Mention
Subject: Re: [intel/libyami] question: External SurfaceAllocator usage (#826)
hi @angelo-p<https://github.com/angelo-p> , is it working for you?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#826 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AbYsBzLZwN-ChHGj3I3HjvOisXmOaheTks5tgReygaJpZM4Rtafk>.
|
you mean, it double put the surface for you? |
No, it doesn't.
When my code is getting a decoded VideoFrame *ovp through a call to decodeGetOutput(), I call ovf->free(ovf) on it when done processing.
That ovf->free(ovf) call doesn't trigger the put callback to be exercised.
This behavior causes housekeeping of what need to be released on flush difficult.
Angelo
…________________________________
From: Xu Guangxin <[email protected]>
Sent: March 20, 2018 11:04 AM
To: intel/libyami
Cc: angelo-p; Mention
Subject: Re: [intel/libyami] question: External SurfaceAllocator usage (#826)
you mean, it double put the surface for you?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub<#826 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/AbYsBzTkTEu6NXCzavOc4uQzLPMUiyYwks5tgRp2gaJpZM4Rtafk>.
|
Thanks for you comments Xu Guangxin. |
@angelo-p , the function name may be misleading, the free only decrease the reference count for the frame. |
Hello,
When I setup libyami for an external SurfaceAllocator usage, user-code gets an "alloc: and "free" function callbacks.
When decoding a specific frame, is there a mechanism in place that would let the lib query user-code for the surface to be used as the current rendering target ?
Thanks for your input,
Angelo
The text was updated successfully, but these errors were encountered: