void streamingDataToDict(ePyObject &dest, ePtr<iStreamData> data) { if (dest && PyDict_Check(dest)) { int pmt, pcr, txt, adapter, demux, default_audio_pid; std::vector<int> video, audio, subtitle; unsigned int i; ePyObject l = PyList_New(0); PyList_AppendSteal(l, createTuple(0, "pat")); data->getPmtPid(pmt); if (pmt != -1) PyList_AppendSteal(l, createTuple(pmt, "pmt")); data->getVideoPids(video); for (i = 0; i < video.size(); i++) { PyList_AppendSteal(l, createTuple(video[i], "video")); } data->getAudioPids(audio); for (i = 0; i < audio.size(); i++) { PyList_AppendSteal(l, createTuple(audio[i], "audio")); } data->getSubtitlePids(subtitle); for (i = 0; i < subtitle.size(); i++) { PyList_AppendSteal(l, createTuple(subtitle[i], "subtitle")); } data->getPcrPid(pcr); PyList_AppendSteal(l, createTuple(pcr, "pcr")); data->getTxtPid(txt); if (txt != -1) PyList_AppendSteal(l, createTuple(txt, "text")); PutToDict(dest, "pids", l); data->getAdapterId(adapter); PutToDict(dest, "adapter", adapter); data->getDemuxId(demux); PutToDict(dest, "demux", demux); data->getDefaultAudioPid(default_audio_pid); PutToDict(dest, "default_audio_pid", default_audio_pid); } }