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); } }
extern "C" Box* intDivmod(BoxedInt* lhs, Box* rhs) { if (!isSubclass(lhs->cls, int_cls)) raiseExcHelper(TypeError, "descriptor '__divmod__' requires a 'int' object but received a '%s'", getTypeName(lhs)); Box* divResult = intDiv(lhs, rhs); if (divResult == NotImplemented) { return NotImplemented; } Box* modResult = intMod(lhs, rhs); if (modResult == NotImplemented) { return NotImplemented; } Box* arg[2] = { divResult, modResult }; return createTuple(2, arg); }