bool GstVideoCodec::start() { hide(); if (0 == quid_->pmanage<MPtr(&PContainer::get<Selection<>::index_t>)>(codec_id_)) return true; shmsink_sub_ = std::make_unique<GstShmdataSubscriber>( shm_encoded_.get_raw(), [this](const std::string& caps) { this->quid_->graft_tree( ".shmdata.writer." + shm_encoded_path_, ShmdataUtils::make_tree(caps, ShmdataUtils::get_category(caps), ShmdataStat())); }, ShmdataStat::make_tree_updater(quid_, ".shmdata.writer." + shm_encoded_path_)); shmsrc_sub_ = std::make_unique<GstShmdataSubscriber>( shmsrc_.get_raw(), [this](const std::string& caps) { this->quid_->graft_tree( ".shmdata.reader." + shmpath_to_encode_, ShmdataUtils::make_tree(caps, ShmdataUtils::get_category(caps), ShmdataStat())); }, ShmdataStat::make_tree_updater(quid_, ".shmdata.reader." + shmpath_to_encode_)); make_bin(); g_object_set(G_OBJECT(gst_pipeline_->get_pipeline()), "async-handling", TRUE, nullptr); if (copy_buffers_) g_object_set(G_OBJECT(shmsrc_.get_raw()), "copy-buffers", TRUE, nullptr); gst_pipeline_->play(true); return true; }
int main(int argc, char ** argv) { try { assert(argc >= 3); bool Bug = ( (argc == 4) && !strcmp(argv[3],"txt") ); std::ifstream in(argv[1]); std::ofstream out; if (!Bug) out.open(argv[2], std::ios::binary); else out.open(argv[2]); if (!init_dicts()) return 1; int i = 0; FILE * fp = fopen(argv[1],"r"); if (!fp) { fprintf (stderr, "Cannot open file %s", argv[1]); return 0; }; int LineNo = 0; char buffer[10000]; while(fgets(buffer, 10000, fp)) { LineNo++; StringTokenizer tok(buffer, "\r\n\t "); std::string r = tok.next_token(); std::string rc = tok.next_token(); std::string e = tok.next_token(); std::string ec = tok.next_token(); UINT d[5]; if (sscanf(tok.get_rest(),"%i %i %i %i %i", &d[0], &d[1], &d[2], &d[3], &d[4]) != 5) { fprintf (stderr," Bad format at line %s (line no = %i)\n", buffer, LineNo); return 0; }; if ( Bug) { std::string save_ec = ec; get_english_ancode(e,ec); out << r <<" "<< rc << " "<< e << " "<< ec; out << " "<< d[0] <<" "<< d[1] <<" "<< d[2] <<" "<< d[3] <<" " <<d[4]; out << std::endl; if (save_ec != ec) std::cerr<<e<<std::endl; } else make_bin(r, rc, e, ec, d, out); if(i%1000==0) std::cerr << i << '\r'; i++; } fclose (fp); out.close(); return 0; } catch (CExpc e) { fprintf (stderr, "exception occurred: %s!\n", e.m_strCause.c_str()); return 1; } catch (...) { fprintf (stderr, "some exception occurred!\n"); return 1; } }
void main() { make_bin(); DWORD ade32_flagtable[512]; ade32_init(ade32_flagtable); for(DWORD i=0x401000; ; ) { disasm_struct s = {4,4}; DWORD c = ade32_disasm((BYTE*)i, &s, ade32_flagtable); if (c==0) { printf("(0) %08X %02X %02X %02X %02X ...\n", i,*(BYTE*)(i+0),*(BYTE*)(i+1),*(BYTE*)(i+2),*(BYTE*)(i+3)); break; } assert(c==s.disasm_len); printf("(%i) %08X ",c,i); for(DWORD j=0; j<c; j++) printf(" %02X",*(BYTE*)(i+j)); for(DWORD j=c; j<8; j++) printf(" "); printf("["); if (s.disasm_flag&C_BAD) printf(" ***C_BAD***"); if (s.disasm_flag&C_SEG) printf(" C_SEG"); if (s.disasm_flag&C_LOCK) printf(" C_LOCK"); if (s.disasm_flag&C_REP) printf(" C_REP"); if (s.disasm_flag&C_67) printf(" C_67"); if (s.disasm_flag&C_66) printf(" C_66"); if (s.disasm_flag&C_OPCODE2) printf(" C_OPCODE2"); if (s.disasm_flag&C_MODRM) printf(" C_MODRM"); if (s.disasm_flag&C_SIB) printf(" C_SIB"); if (s.disasm_flag&C_ADDR1) printf(" C_ADDR1"); if (s.disasm_flag&C_ADDR2) printf(" C_ADDR2"); if (s.disasm_flag&C_ADDR4) printf(" C_ADDR4"); if (s.disasm_flag&C_ADDR67) printf(" C_ADDR67"); if (s.disasm_flag&C_DATA1) printf(" C_DATA1"); if (s.disasm_flag&C_DATA2) printf(" C_DATA2"); if (s.disasm_flag&C_DATA4) printf(" C_DATA4"); if (s.disasm_flag&C_DATA66) printf(" C_DATA66"); if (s.disasm_flag&C_REL) printf(" C_REL"); if (s.disasm_flag&C_STOP) printf(" C_STOP"); printf(" ]\n"); BYTE f**k[64]={0}; DWORD f = ade32_asm(f**k, &s); if ( (f!=c)||( memcmp(f**k,(BYTE*)i,c)!=0 ) ) { printf("(%i) %08X ",f,i); for(DWORD j=0; j<f; j++) printf(" %02X",f**k[j]); printf(" ; f**k[]\n"); printf("flag=%08X\n", s.disasm_flag); exit(0); } i += c; } }//main