pb = avio_alloc_context(extradata, extradata_size, 0, NULL, NULL, NULL, NULL);怎么用gstreamer用reader来修改
时间: 2024-02-26 15:58:03 浏览: 40
在GStreamer中,可以使用`GstBuffer`和`GstMemory`来代替`AVIOContext`。具体实现如下:
```c
// 创建一个GstMemory,将extradata拷贝进去
GstMemory *memory = gst_allocator_alloc(NULL, extradata_size, NULL);
memcpy(GST_MEMORY_MAP(memory), extradata, extradata_size);
GST_MEMORY_UNMAP(memory);
// 创建一个GstBuffer,将GstMemory包装进去
GstBuffer *buffer = gst_buffer_new();
gst_buffer_append_memory(buffer, memory);
// 创建一个GstMemoryInputStream,将GstBuffer传递给它
GstMemoryInputStream *stream = gst_memory_input_stream_new_from_buffer(buffer);
// 使用GstReader读取数据
gchar *line = NULL;
gsize length = 0;
GError *error = NULL;
gssize read = gst_stream_read_line(GST_STREAM(stream), &line, &length, &error, NULL);
// 释放资源
g_free(line);
g_object_unref(stream);
g_object_unref(buffer);
```
以上代码将extradata数据放入`GstMemory`中,然后将`GstMemory`放入`GstBuffer`中。最后,将`GstBuffer`传递给`GstMemoryInputStream`,并使用`GstReader`从中读取数据。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)