test_class.file: domain/src/test/java/org/m4m/domain/pipeline/DrainCommandHandlerTest.java
test_class.identifier: DrainCommandHandlerTest
test_class.superclass: extends TestBase
test_case.body: @Test
      public void decoderShouldNotReleaseOutputBufferIfEof() {
          IMediaCodec mediaCodec = create.mediaCodec().construct();
          VideoDecoder decoder = create.videoDecoder().with(mediaCodec).construct();
          ISurface surface = create.surface().construct();
          Encoder encoder = create.videoEncoder().with(surface).construct();
  
          decoder.drain(0);
          decoder.setOutputSurface(surface);
          encoder.getInputCommandQueue().dequeue();
          new DrainCommandHandler(encoder).handle();
  
          verify(mediaCodec, never()).releaseOutputBuffer(anyInt(), anyBoolean());
      }
test_case.class_method_signature: DrainCommandHandlerTest.decoderShouldNotReleaseOutputBufferIfEof()
test_case.full_signature: @Test public void decoderShouldNotReleaseOutputBufferIfEof()
test_case.identifier: decoderShouldNotReleaseOutputBufferIfEof
test_case.invocations: construct mediaCodec construct with videoDecoder construct surface construct with videoEncoder drain setOutputSurface dequeue getInputCommandQueue handle releaseOutputBuffer verify never anyInt anyBoolean
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void decoderShouldNotReleaseOutputBufferIfEof()
focal_class.declarator: plugin
focal_class.modifier: protected final
focal_class.original_string: protected final MediaCodecPlugin plugin;
focal_class.type: MediaCodecPlugin
focal_class.var_name: plugin
focal_class.file: domain/src/main/java/org/m4m/domain/pipeline/DrainCommandHandler.java
focal_class.identifier: DrainCommandHandler
focal_class.interfaces: implements ICommandHandler
focal_class.class_method_signature: DrainCommandHandler.DrainCommandHandler(MediaCodecPlugin plugin)
focal_class.full_signature: public  DrainCommandHandler(MediaCodecPlugin plugin)
focal_class.identifier: DrainCommandHandler
focal_class.modifiers: public
focal_class.parameters: (MediaCodecPlugin plugin)
focal_class.signature:  DrainCommandHandler(MediaCodecPlugin plugin)
focal_class.class_method_signature: DrainCommandHandler.handle()
focal_class.full_signature: @Override public void handle()
focal_class.identifier: handle
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void handle()
focal_method.body: @Override
      public void handle() {
          plugin.drain(0);
      }
focal_method.class_method_signature: DrainCommandHandler.handle()
focal_method.full_signature: @Override public void handle()
focal_method.identifier: handle
focal_method.invocations: drain
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void handle()