1. GstFlowReturn sample_arrived(GstAppSink *appsink, AudioStreamer *audio_streamer)
  2. {
  3. if (!gst_app_sink_is_eos(appsink))
  4. {
  5. GstSample *sample = gst_app_sink_pull_sample(appsink);
  6. //assert(sample);
  7. audio_streamer->_samples.push(sample);
  8. GstBuffer *buffer = gst_sample_get_buffer(sample);
  9. GstMapInfo info;
  10. if (gst_buffer_map(buffer, &info, GST_MAP_READ))
  11. {
  12. for ( guint i = 0; i < info.size; ++i)
  13. //g_print("%u\n", info.data[i]);
  14. audio_streamer->_tmp_samples.push(info.data[i]); //_tmp_samples type: std::queue<guint8>
  15. }
  16. gst_buffer_unmap (buffer, &info);
  17. gst_sample_unref(sample);
  18. }
  19. return GST_FLOW_OK;
  20. }