![]() |
libmoldeo (Moldeo 1.0 Core)
1.0
libmoldeo es el conjunto de objetos y funciones, que permiten ejecutar las operaciones básicas de la plataforma Moldeo, y que compone su núcleo.
|
GStreamer Graph Class. Más...
#include <moGsGraph.h>
Métodos públicos | |
moGsGraph () | |
Constructor. Más... | |
virtual | ~moGsGraph () |
Destructor. Más... | |
virtual bool | InitGraph () |
Inicialización del grafo. Más... | |
virtual bool | FinishGraph () |
Finalización del grafo. Más... | |
bool | BuildLiveGraph (moBucketsPool *pBucketsPool, moCaptureDevice p_capdev) |
bool | SetCaptureDevice (moText deviceport, MOint idevice=0) |
bool | BuildLiveDVGraph (moBucketsPool *pBucketsPool, moCaptureDevice &p_capdev) |
bool | BuildLiveWebcamGraph (moBucketsPool *pBucketsPool, moCaptureDevice &p_capdev) |
bool | BuildLiveVideoGraph (moText filename, moBucketsPool *pBucketsPool) |
Grafo de reproducción de video en modo vivo, asyncronicamente reproducido en función del clock. Más... | |
bool | BuildLiveQTVideoGraph (moText filename, moBucketsPool *pBucketsPool) |
bool | BuildLiveSound (moText filename) |
bool | BuildLiveStreamingGraph (moBucketsPool *pBucketsPool, moText p_location) |
bool | BuildRecordGraph (moText filename, moBucketsPool *pBucketsPool) |
virtual moStreamState | GetState () |
Estado de la reproducción. Más... | |
void | Play () |
Reproducir el video. Más... | |
void | Stop () |
Detener la reproducción del video. Más... | |
void | Pause () |
Pausa la reproducción del video. Más... | |
void | Seek (MOuint frame, float rate=1.0) |
bool | IsRunning () |
Está corriendo. Más... | |
MOulong | GetFramesLength () |
La cantidad de frames, el largo del stream. Más... | |
MOulong | GetSamplesLength () |
MObyte * | GetFrameBuffer (MOlong *size) |
virtual MOulong | GetDuration () |
La duración total del stream en nanosegundos. Más... | |
virtual MOulong | GetPosition () |
virtual MOulong | GetPositionMS () |
void | SetVolume (float volume) |
void | SetBalance (float balance) |
Fija el balance entre canal izquierdo y derecho en caso de haberlos. Más... | |
void | SetPitch (float pitch) |
void | SetEchoDelay (float delay) |
void | SetEchoIntensity (float intensity) |
void | SetEchoFeedback (float feedback) |
void | SetBrightness (float brightness) |
void | SetContrast (float contrast) |
void | SetSaturation (float saturation) |
void | SetHue (float hue) |
void | BuildAudioFilters () |
void | SetVideoFormat (moGstCaps *caps, moGstBuffer *buffer=NULL) |
void | SetAudioFormat (moGstCaps *caps, moGstBuffer *buffer=NULL) |
bool | CheckState (moGstStateChangeReturn state_change_result, bool waitforsync=false) |
void | RetreivePads (moGstElement *FilterElement) |
void | WaitForFormatDefinition (MOulong timeout) |
void | CopyVideoFrame (void *bufferdst, int size) |
virtual bool | IsEOS () |
virtual void | SetEOS (bool iseos) |
![]() | |
moVideoGraph () | |
virtual | ~moVideoGraph () |
moVideoMode | GetVideoMode () |
Devuelve el modo de video. Más... | |
moVideoFormat | GetVideoFormat () |
Devuelve el formato de video. Más... | |
moAudioFormat | GetAudioFormat () |
Devuelve el formato de audio. Más... | |
![]() | |
moAbstract () | |
virtual | ~moAbstract () |
virtual MOboolean | Init () |
Inicializa el objeto. Más... | |
virtual MOboolean | Finish () |
Finaliza el objeto, libera recursos. Más... | |
MOboolean | Initialized () |
Pregunta si está inicializado. Más... | |
Métodos públicos estáticos | |
static moGBoolean | cb_have_data (moGstPad *pad, moGstBuffer *buffer, moGPointer u_data) |
static moGBoolean | cb_buffer_disconnected (moGPointer u_data) |
static void | on_rtsppadd_added (moGstElement *rtspsrc, moGstPad *pad, moGPointer u_data) |
static void | cb_newpad (moGstElement *decodebin, moGstPad *pad, moGBoolean last, moGPointer u_data) |
static void | cb_pad_added (moGstElement *decodebin2, moGstPad *pad, moGPointer u_data) |
static void | cb_handoff (moGstElement *fakesrc, moGstBuffer *buffer, moGstPad *pad, moGPointer user_data) |
![]() | |
static moText | StateToText (moStreamState state) |
Estado de la reproducción (version texto) Más... | |
Atributos públicos | |
long | cb_have_data_handler_id |
long | signal_rtsppad_added_id |
long | signal_newpad_id |
long | m_BusWatchId |
long | signal_handoff_id |
![]() | |
MOboolean | m_bInitialized |
Valor de inicialización. Más... | |
Otros miembros heredados | |
![]() | |
static moDebug * | MODebug2 = new moDebug() |
Clase de impresión de errores para depuración. Más... | |
static moTextHeap * | MODebug = new moTextHeap() |
Lista de textos. Más... | |
![]() | |
moVideoFormat | m_VideoFormat |
moAudioFormat | m_AudioFormat |
Formato de video. Más... | |
GStreamer Graph Class.
GStreamer Graph Class for video filters and video reproduction: you don't have to link to gstreamer This is C++ wrapper to some GStreamer basic functions...
Definición en la línea 151 del archivo moGsGraph.h.
moGsGraph::moGsGraph | ( | ) |
Constructor.
Definición en la línea 1445 del archivo moGsGraph.cpp.
|
virtual |
Destructor.
Definición en la línea 1499 del archivo moGsGraph.cpp.
void moGsGraph::BuildAudioFilters | ( | ) |
Definición en la línea 2917 del archivo moGsGraph.cpp.
bool moGsGraph::BuildLiveDVGraph | ( | moBucketsPool * | pBucketsPool, |
moCaptureDevice & | p_capdev | ||
) |
TODO: no need to implement ?!
Definición en la línea 1952 del archivo moGsGraph.cpp.
|
virtual |
selecciona entrada!!!
v4lctl setnorm NTSC
y
v4lctl setinput Composite1
Implementa moVideoGraph.
Definición en la línea 1821 del archivo moGsGraph.cpp.
|
virtual |
Implementa moVideoGraph.
Definición en la línea 2628 del archivo moGsGraph.cpp.
bool moGsGraph::BuildLiveSound | ( | moText | filename | ) |
AUDIOFX
Definición en la línea 2737 del archivo moGsGraph.cpp.
bool moGsGraph::BuildLiveStreamingGraph | ( | moBucketsPool * | pBucketsPool, |
moText | p_location | ||
) |
SEND gst-launch -m filesrc location=test-aac.3gp ! qtdemux ! rtpmp4gpay ! udpsink host=172.20.122.9 port=19790
RECEIVE gst-launch -m udpsrc port=19790 ! rtpmp4gdepay ! faad ! queue ! amrnbenc ! rtpamrpay pt=98 ! udpsink host=172.20.122.23 port=2006
SEND: gst-launch -m filesrc location=test.wav ! wavparse ! audioconvert ! audioresample !alawenc ! rtppcmapay ! udpsink host=127.0.0.1 port=19790
RECEIVE: gst-launch -m udpsrc port=19790 ! rtppcmadepay ! alawdec ! queue ! amrnbenc ! rtpamrpay pt=98 ! udpsink host=127.0.0.1 port=2006
TODO: implement BuildLiveStreamingGraph
Definición en la línea 1841 del archivo moGsGraph.cpp.
|
virtual |
Grafo de reproducción de video en modo vivo, asyncronicamente reproducido en función del clock.
genera un grafo para reproducir un video en modo normal
SOUND...
FIN SOUND
marcamos el sync a true para que reproduzca en sync.
agrega sonido en sincro
Implementa moVideoGraph.
Definición en la línea 2952 del archivo moGsGraph.cpp.
bool moGsGraph::BuildLiveWebcamGraph | ( | moBucketsPool * | pBucketsPool, |
moCaptureDevice & | p_capdev | ||
) |
gstreamer example tests: gst-launch -v dshowvideosrc ! ffmpegcolorspace ! video/x-raw-rgb,bpp=16 ! videoscale ! video/x-raw-rgb,width=160,height=120 ! autovideosink
gstreamer example tests: gst-launch -v dshowvideosrc ! ffmpegcolorspace ! video/x-raw-rgb,bpp=16 ! videoscale ! video/x-raw-rgb,width=160,height=120 ! autovideosink
gst-launch rtspsrc location="rtsp://192.168.0.101/live.sdp" latency=100 ! queue ! rtpmp4vdepay ! queue ! ffdec_mpeg4 ! ffmpegcolorspace ! autovideosink
usando TCP se soluciona la desconección del server automática....
gst-launch rtspsrc location="rtsp://192.168.0.101/live.sdp" latency=100 debug=true protocols=0x00000004 ! queue ! rtpmp4vdepay ! queue ! ffdec_mpeg4 ! ffmpegcolorspace ! autovideosink
referencias:
http://nuald.blogspot.com/2009/07/creating-video-conference-application.html http://stackoverflow.com/questions/1884204/playing-an-incoming-rtp-stream-with-gstreamer
ok
ok link_result = gst_element_link_many( (GstElement*) m_pRTSPSource, (GstElement*) m_pRTSPDepay, NULL );
try to link later dynamically
SOUP HTTP source (MJPEG/HTTP) videofeed
STANDAR DEVICES....
m_pColorSpaceSource = gst_element_factory_make ( VIDEOCONVERT, "colorsource"); if (m_pCapsFilterSource) { res = gst_bin_add (GST_BIN (m_pGstPipeline), (GstElement*) m_pColorSpaceSource ); }
(GstElement*) m_pColorSpaceSource,
Definición en la línea 1981 del archivo moGsGraph.cpp.
|
virtual |
grab at the same time with: gst-launch-0.10 v4l2src ! queue ! ffmpegcolorspace ! theoraenc quality=1 ! queue ! oggmux name=mux alsasrc ! audio/x-raw-int,rate=8000,channels=1,depth=8 ! queue ! audioconvert ! vorbisenc ! queue ! mux. mux. ! queue ! tee name= t ! queue ! filesink location=test.ogg t. ! queue ! shout2send ip=giss.tv port=8000 password=pass
TODO: implement BuildRecordGraph
0x000000FF
0x0000FF00
0x00FF0000
Implementa moVideoGraph.
Definición en la línea 1854 del archivo moGsGraph.cpp.
|
static |
Definición en la línea 160 del archivo moGsGraph.cpp.
|
static |
unused
unused
moAbstract::MODebug2->Push(moText("frame nbr"));
Definición en la línea 841 del archivo moGsGraph.cpp.
|
static |
g_signal_connect (data.appsink, "new-buffer", G_CALLBACK (appsink_new_buffer), &data); void appsink_new_buffer (GstElement *sink, CustomData *data) { GstBuffer *buffer;
Retrieve the buffer g_signal_emit_by_name (sink, "pull-buffer", &buffer); if (buffer) {
(((CustomData*)data)->appsink_buffer_count)++;
push buffer onto queue, to be processed in different thread if (GstBufferQueue->size() > GSTBUFFERQUEUE_SIZE) { error message printf ("GstBufferQueue is full!\n"); release buffer gst_buffer_unref (buffer); } else { push onto queue GstBufferQueue->push(buffer); activate thread connectionDataAvailable_GstBufferQueue.notify_all(); } } }
Definición en la línea 275 del archivo moGsGraph.cpp.
|
static |
|
static |
Definición en la línea 666 del archivo moGsGraph.cpp.
bool moGsGraph::CheckState | ( | moGstStateChangeReturn | state_change_result, |
bool | waitforsync = false |
||
) |
Definición en la línea 3494 del archivo moGsGraph.cpp.
void moGsGraph::CopyVideoFrame | ( | void * | bufferdst, |
int | size | ||
) |
Definición en la línea 1790 del archivo moGsGraph.cpp.
|
virtual |
Finalización del grafo.
Destruye los punteros y estructuras de la clase creadas dinámicamente en la función InitGraph
this is only a reference doesnt destroy it, just pass to null
FINALLY UNREFERENCE PIPELINE, DESTROY ALL
Implementa moVideoGraph.
Definición en la línea 1606 del archivo moGsGraph.cpp.
|
virtual |
La duración total del stream en nanosegundos.
devuelve la duración total del stream que se encuentra reproduciendo en nanosegundos
Implementa moVideoGraph.
Definición en la línea 3771 del archivo moGsGraph.cpp.
cantidad de muestras de sonido
TODO: ?? GetFrameBuffer
Implementa moVideoGraph.
Definición en la línea 3916 del archivo moGsGraph.cpp.
|
virtual |
La cantidad de frames, el largo del stream.
devuelve el largo del stream convertido a frames
Implementa moVideoGraph.
Definición en la línea 3723 del archivo moGsGraph.cpp.
|
virtual |
en nanosegundos para gstreamer!!! 1E-9 1 s = 1E9 ns = 1 billion ns
TODO:GetFramePosition vs GetSamplePosition sample position = duration / samplerate
Implementa moVideoGraph.
Definición en la línea 3794 del archivo moGsGraph.cpp.
|
virtual |
en cuadros
Definición en la línea 3814 del archivo moGsGraph.cpp.
MOulong moGsGraph::GetSamplesLength | ( | ) |
cantidad de cuadros
Definición en la línea 3748 del archivo moGsGraph.cpp.
|
virtual |
Estado de la reproducción.
Devuelve el estado en que se encuentra el grafo, un valor entre MO_STREAMSTATE_UNKNOWN=-1, MO_STREAMSTATE_PAUSED, MO_STREAMSTATE_PLAYING, MO_STREAMSTATE_WAITING, MO_STREAMSTATE_READY, MO_STREAMSTATE_STOPPED
Reimplementado de moVideoGraph.
Definición en la línea 3553 del archivo moGsGraph.cpp.
|
virtual |
Inicialización del grafo.
Inicializa los punteros y estructuras de la clase
Implementa moVideoGraph.
Definición en la línea 1532 del archivo moGsGraph.cpp.
|
virtual |
Implementa moVideoGraph.
Definición en la línea 1767 del archivo moGsGraph.cpp.
|
virtual |
Está corriendo.
indicador que señala si el grafo se está reproduciendo
Implementa moVideoGraph.
Definición en la línea 3831 del archivo moGsGraph.cpp.
|
static |
|
virtual |
Pausa la reproducción del video.
comando de pause, interrumpe la reproducción del video
TODO: for live-stream pause works ok... not for others
Implementa moVideoGraph.
Definición en la línea 3660 del archivo moGsGraph.cpp.
|
virtual |
Reproducir el video.
comando de play, reproduce el video o continua la reproducción
Implementa moVideoGraph.
Definición en la línea 3641 del archivo moGsGraph.cpp.
void moGsGraph::RetreivePads | ( | moGstElement * | FilterElement | ) |
Definición en la línea 2636 del archivo moGsGraph.cpp.
|
virtual |
TODO: TimeSeek() SampleSeek()
TODO: unused rate!!!
no leemos el ultimo cuadro para no generar un EOS esto depende del modo del play, si esta PLAYING o si esta en PAUSE
TIME SEEK: frame as time in milliseconds
res = gst_element_seek( (GstElement*)m_pGstPipeline, 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_NONE, GST_SEEK_TYPE_SET, 10 * GST_SECOND, GST_SEEK_TYPE_SET, 20 * GST_SECOND );
Implementa moVideoGraph.
Definición en la línea 3674 del archivo moGsGraph.cpp.
void moGsGraph::SetAudioFormat | ( | moGstCaps * | caps, |
moGstBuffer * | buffer = NULL |
||
) |
Definición en la línea 3278 del archivo moGsGraph.cpp.
|
virtual |
Fija el balance entre canal izquierdo y derecho en caso de haberlos.
Permite modificar el balance estereo entre -1 y 1, siendo -1 todo a la izquierda y 1 todo a la derecha, 0 corresponde al equilibrio entre los dos canales.
balance | nivel balance entre los dos canales, entre -1 y 1 |
Implementa moVideoGraph.
Definición en la línea 3845 del archivo moGsGraph.cpp.
|
virtual |
TODO: implement SetCaptureDevice
Definición en la línea 1780 del archivo moGsGraph.cpp.
|
virtual |
Implementa moVideoGraph.
Definición en la línea 3891 del archivo moGsGraph.cpp.
void moGsGraph::SetEchoDelay | ( | float | delay | ) |
Definición en la línea 3861 del archivo moGsGraph.cpp.
void moGsGraph::SetEchoFeedback | ( | float | feedback | ) |
Definición en la línea 3876 del archivo moGsGraph.cpp.
void moGsGraph::SetEchoIntensity | ( | float | intensity | ) |
Definición en la línea 3869 del archivo moGsGraph.cpp.
|
virtual |
Implementa moVideoGraph.
Definición en la línea 1772 del archivo moGsGraph.cpp.
|
virtual |
Implementa moVideoGraph.
Definición en la línea 3899 del archivo moGsGraph.cpp.
void moGsGraph::SetPitch | ( | float | pitch | ) |
Definición en la línea 3852 del archivo moGsGraph.cpp.
|
virtual |
Implementa moVideoGraph.
Definición en la línea 3907 del archivo moGsGraph.cpp.
void moGsGraph::SetVideoFormat | ( | moGstCaps * | caps, |
moGstBuffer * | buffer = NULL |
||
) |
Definición en la línea 3362 del archivo moGsGraph.cpp.
|
virtual |
en millisegundos Funciones de Audio
Implementa moVideoGraph.
Definición en la línea 3838 del archivo moGsGraph.cpp.
|
virtual |
Detener la reproducción del video.
comando de stop, detiene la reproducción del video
Implementa moVideoGraph.
Definición en la línea 3652 del archivo moGsGraph.cpp.
void moGsGraph::WaitForFormatDefinition | ( | MOulong | timeout | ) |
Definición en la línea 2717 del archivo moGsGraph.cpp.
long moGsGraph::cb_have_data_handler_id |
Definición en la línea 250 del archivo moGsGraph.h.
long moGsGraph::m_BusWatchId |
Definición en la línea 278 del archivo moGsGraph.h.
long moGsGraph::signal_handoff_id |
Definición en la línea 285 del archivo moGsGraph.h.
long moGsGraph::signal_newpad_id |
Definición en la línea 277 del archivo moGsGraph.h.
long moGsGraph::signal_rtsppad_added_id |
Definición en la línea 255 del archivo moGsGraph.h.