package com.foxx.androidcast.receiver.av;

/** Hook between video decoder output and display (direct Surface or GLES bridge). */
public interface ReceiverVideoPipeline {
    /**
     * Called after {@code releaseOutputBuffer(..., render=true)} (or libvpx render). For GLES
     * experimental presets, triggers shader draw to the TextureView surface.
     */
    void onFrameDecoded(long ptsUs);

    default void onConfigured(int width, int height) {}

    default void onReleased() {}

    static ReceiverVideoPipeline passthrough() {
        return PassthroughVideoPipeline.INSTANCE;
    }
}
