video_streamer_vlc
VlcStream.hpp
Go to the documentation of this file.
1 /*
2  * VlcStream.h
3  *
4  * Created on: 03.03.2014
5  * Author: planthaber
6  */
7 
8 #ifndef VLCSTREAM_H_
9 #define VLCSTREAM_H_
10 
11 
12 //https://wiki.videolan.org/Stream_to_memory_%28smem%29_tutorial/
13 
14 #include <stdio.h>
15 #include <stdint.h>
16 #include <string>
17 
18 #include <vlc/vlc.h>
19 
20 #include <pthread.h>
21 #include <opencv2/opencv.hpp>
22 
23 
27 int vlc_imem_get_callback(void* data, const char* cookie,
28  int64_t* dts, int64_t* pts, unsigned * flags, size_t* size,
29  void** output);
30 
34 void vlc_imem_release_callback(void* data, const char* cookie,
35  size_t size, void* unknown);
36 
37 
38 class VlcStream {
39 public:
40 
53  VlcStream(std::string sout, int fps, int width, int height);
54  virtual ~VlcStream();
55 
59  bool write(cv::Mat &image, int64_t timestamp = 1);
60 
65  void start();
66 
70  void stop();
71 
72 
73  pthread_mutex_t imagemutex;
74 
75  cv::Mat imagebuf;
76  cv::Mat pixbuf;
77  int64_t timestamp;
78 
79 private:
80 
81  //options
82  char smem_options[256];
83 
84  //callback pointer addess string
85  char str_imem_get[100], str_imem_release[100],str_imem_data[100],str_imem_fps[100],str_imem_width[100],str_imem_height[100];
86 
87 
88  libvlc_instance_t *vlc;
89  libvlc_media_player_t *vlcmp;
90  libvlc_media_t *vlcm;
91 
92 };
93 
94 #endif /* VLCTOMEMORY_H_ */
int64_t timestamp
Definition: VlcStream.hpp:77
bool write(cv::Mat &image, int64_t timestamp=1)
Definition: VlcStream.cpp:68
virtual ~VlcStream()
Definition: VlcStream.cpp:63
cv::Mat imagebuf
Definition: VlcStream.hpp:75
VlcStream(std::string sout, int fps, int width, int height)
Definition: VlcStream.cpp:11
cv::Mat pixbuf
Definition: VlcStream.hpp:76
int vlc_imem_get_callback(void *data, const char *cookie, int64_t *dts, int64_t *pts, unsigned *flags, size_t *size, void **output)
Definition: VlcStream.cpp:89
void vlc_imem_release_callback(void *data, const char *cookie, size_t size, void *unknown)
Definition: VlcStream.cpp:114
pthread_mutex_t imagemutex
Definition: VlcStream.hpp:73
void start()
Definition: VlcStream.cpp:78
void stop()
Definition: VlcStream.cpp:82
Definition: VlcStream.hpp:38