int FFmpegReader::ReadPacket()

in FFmpegInterop/Source/FFmpegReader.cpp [37:67]


int FFmpegReader::ReadPacket()
{
	int ret;
	AVPacket avPacket;
	av_init_packet(&avPacket);
	avPacket.data = NULL;
	avPacket.size = 0;

	ret = av_read_frame(m_pAvFormatCtx, &avPacket);
	if (ret < 0)
	{
		return ret;
	}

	// Push the packet to the appropriate
	if (avPacket.stream_index == m_audioStreamIndex && m_audioSampleProvider != nullptr)
	{
		m_audioSampleProvider->QueuePacket(avPacket);
	}
	else if (avPacket.stream_index == m_videoStreamIndex && m_videoSampleProvider != nullptr)
	{
		m_videoSampleProvider->QueuePacket(avPacket);
	}
	else
	{
		DebugMessage(L"Ignoring unused stream\n");
		av_packet_unref(&avPacket);
	}

	return ret;
}