Class DefaultStreamCallbacks

  • All Implemented Interfaces:
    StreamCallbacks

    public class DefaultStreamCallbacks
    extends Object
    implements StreamCallbacks
    No-op implementation of stream callbacks. Extending this class allows convenient implementation of certain callbacks while leaving the rest as no-op.

    For example:

    StreamCallbacks streamCallbacks =
        new DefaultStreamCallbacks() {
            @Override
            public void fragmentAckReceived(final long uploadHandle, @Nonnull final KinesisVideoFragmentAck fragmentAck) throws ProducerException {
                super.fragmentAckReceived(uploadHandle, fragmentAck);
    
                // Stop submitting frames on user errors
                if (fragmentAck.getAckType().getIntType() == FragmentAckType.FRAGMENT_ACK_TYPE_ERROR &&
                    4000 <= fragmentAck.getResult() && fragmentAck.getResult() < 5000) {
                    log.error("{} - Received an error ack: {}", streamName, fragmentAck);
                    mediaSource.stop();
    
                    // Other logic...
                }
            }
    
            @Override
            public void streamErrorReport(final long uploadHandle, final long frameTimecode, final long statusCode) throws ProducerException {
                super.streamErrorReport(uploadHandle, frameTimecode, statusCode);
                log.error("{} Encountered a streaming error with status code: 0x{}", streamName, Long.toHexString(statusCode));
                mediaSource.stop();
    
                // Other logic...
            }
        };