- GstFlowReturn sample_arrived(GstAppSink *appsink, AudioStreamer *audio_streamer)
- {
- if (!gst_app_sink_is_eos(appsink))
- {
- GstSample *sample = gst_app_sink_pull_sample(appsink);
- //assert(sample);
- audio_streamer->_samples.push(sample);
- GstBuffer *buffer = gst_sample_get_buffer(sample);
- GstMapInfo info;
- if (gst_buffer_map(buffer, &info, GST_MAP_READ))
- {
- for ( guint i = 0; i < info.size; ++i)
- //g_print("%u\n", info.data[i]);
- audio_streamer->_tmp_samples.push(info.data[i]); //_tmp_samples type: std::queue<guint8>
- }
- gst_buffer_unmap (buffer, &info);
- gst_sample_unref(sample);
- }
- return GST_FLOW_OK;
- }