你好,我试图实现libvlc版本3.0,libvlc_new_callbacks从缓冲区数组中读取这个函数。 DocumentationLibvlc函数libvlc_new_callbacks
我得到了使用libusb从设备
static void procedimiento_de_llamada_leer_transferencia_usb(struct libusb_transfer *transferencia_usb_2)
{
if(transferencia_usb_2->status == LIBUSB_TRANSFER_COMPLETED)
{
std::cout<<"Transferencia completa"<<std::endl;
}
else std::cout<<"Error: "<<transferencia_usb_2->status<<std::endl;
contador_evitar_basura++;
if (contador_evitar_basura > 4)
{
apuntador_al_buffer_recepcion_BTS=transferencia_usb_2->buffer;
variable_archivo_TS.write((char *)transferencia_usb_2->buffer, tamanio_buffer);
}
int respuesta_transferencia_llamada = libusb_submit_transfer(transferencia_usb_2);
if(respuesta_transferencia_llamada != 0) std::cout<<"Error transferencia: "<<respuesta_transferencia_llamada<<std::endl;
}
居然收到USB传输功能与发送的字节数去一个文件,然后打开与libvlc该文件作为一个媒体文件来复制它,用该行指令我写接收到文件的字节数
variable_archivo_TS.write((char *)transferencia_usb_2->buffer, tamanio_buffer);
我可以看到视频中我的计划,但该文件在不断增加,如果继续收看视频很长一段时间的文件能得到的10大小GB。我想发送的libusb收到玩家的缓冲区,但不保存在一个文件中,我创建一个指向缓冲区
unsigned char *apuntador_al_buffer_recepcion_BTS;
apuntador_al_buffer_recepcion_BTS=transferencia_usb_2->buffer;
那么我想实现libvlc_new_call_backs的功能的全局变量:
我通过指针apuntador_al_buffer_recepcion_BTS到函数,并设置回调打开和读取,声明seek和关闭为NULL,也许是一个错误的方法,但我想读取所有的缓冲区,所以我不想需要寻求功能
void procedimiento_media_callbacks()
{
static libvlc_media_t *media = libvlc_media_new_callbacks(
instancia_vlc, // vlc
open_callback, //open media
read_callback, //read media
NULL, //NULL seak
NULL, //NULL close
apuntador_al_buffer_recepcion_BTS); //NULL
libvlc_media_player_set_media(reproductor, media);
libvlc_media_add_option(media, funcion_leer_id());
libvlc_media_player_set_media(reproductor, media);
}
我在只使用open_callback功能点的数据不透明(缓冲区),并设置sizep到缓冲区的大小思维,
int open_callback(void *opaque, void **datap, long unsigned int *sizep)
{
*sizep = 245760;
*datap = opaque;
return 0;
}
在读功能我不知道这个刚刚返回大小的数据读取它
long int read_callback(void *opaque, unsigned char *buf,long unsigned int len)
{
return 245760;
}
但我无法得到它的工作,我找不到使用此功能的代码。
感谢你一个例子,我如何使代码的一部分,我试图让这个工作太,目前不成功,但你的例子是向前发展非常有帮助 – amigo421