flow_ret = GST_FLOW_OK;
} else if (buf->omx_buf->nFilledLen > 0) {
GstBuffer *outbuf;
+ guint n_samples;
+
+ n_samples =
+ klass->get_num_samples (self, self->out_port,
+ &GST_BASE_AUDIO_ENCODER (self)->ctx->state, buf);
if (buf->omx_buf->nFilledLen > 0) {
outbuf = gst_buffer_new_and_alloc (buf->omx_buf->nFilledLen);
flow_ret =
gst_base_audio_encoder_finish_frame (GST_BASE_AUDIO_ENCODER (self),
- outbuf, 1024);
+ outbuf, n_samples);
}
if (flow_ret == GST_FLOW_OK && (buf->omx_buf->nFlags & OMX_BUFFERFLAG_EOS))
gboolean (*set_format) (GstOMXAudioEnc * self, GstOMXPort * port, GstAudioState * state);
GstCaps *(*get_caps) (GstOMXAudioEnc * self, GstOMXPort * port, GstAudioState * state);
+ guint (*get_num_samples) (GstOMXAudioEnc * self, GstOMXPort * port, GstAudioState * state, GstOMXBuffer * buffer);
};
GType gst_omx_audio_enc_get_type (void);