Hi, We have done this for a MPEG2-PS without changing anything in the libavformat code, but I guess that won't really matter. The following code is extracts which we use to parse the MPEG"-stream into MPEG2 packets which we then decode using avdecode. // --------------------------------------------- // First we declare a buffer read funtion (which reads directly from an mpeg2 compression card). // This can be replaced by reading from a buffer, make sure not to return 0 from this function, // since that will stop the parsing. int read_function(void * opaque, uint8_t *buf, int buf_size){ some_struct * data_struct = (some_struct * ) opaque; unsigned int data_to_copy = buf_size; int t = ReadFromCard(data_struct->board_handle, buf, &data_to_copy); return data_to_copy; } // --------------------------------------------- // init av format stuff input_format = av_find_input_format("mpeg"); input_format->flags |= AVFMT_NOFILE; av_packet.data = NULL; io = new ByteIOContext(); unsigned char * buffer = new unsigned char[ buffer_size ]; int ret = init_put_byte(io, buffer, buffer_size, 0, private_data, read_function, NULL, NULL); io->is_streamed = 1; // open the format context av_open_input_stream(&format_context, io, "", input_format, NULL); ---------------------------------------------- // then we loop, i.e. read one packet av_packet.pts = AV_NOPTS_VALUE; while(av_packet.pts == AV_NOPTS_VALUE){ int res = av_read_frame(format_context, &av_packet); if((res == 0)&& (av_packet.pts != AV_NOPTS_VALUE)){ break; } // Free packet if (av_packet.data != NULL){ av_free_packet(&av_packet); av_packet.data = NULL; } } ---------------------------------------------- regards Tomas Christiansson
-----Original Message----- From: ffmpeg-devel-bounces at mplayerhq.hu [mailto:ffmpeg-devel-bounces at mplayerhq.hu] On Behalf Of Enrique Estalayo Sent: den 9 januari 2006 16:44 To: FFMpeg development discussions and patches Subject: [Ffmpeg-devel] Reading video from a buffer
Hi,
I have an MPEG2-TS video in a buffer, but I cannot read it using libavformat. Nevertheless, I've got no problems when I read/decode the same video from a file, so I guess there must be a way to get things working with a buffer instead.
Anyone could help?
Enrique.
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel at mplayerhq.hu http://mplayerhq.hu/mailman/listinfo/ffmpeg-devel