MCPcopy Create free account
hub / github.com/alibaba/CicadaPlayer / test_render

Function test_render

framework/tests/render/renderTest.cpp:31–169  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29} CicadaSDLView;
30
31static void test_render(const string &url, Stream_type type, int flags, int samples)
32{
33 unique_ptr<IDecoder> decoder{nullptr};
34 unique_ptr<IAudioRender> audioRender{nullptr};
35 unique_ptr<IVideoRender> videoRender{nullptr};
36#ifdef ENABLE_SDL
37 CicadaSDLView window;
38 SDL_Renderer *mVideoRender = nullptr;
39#endif
40 int samples_rendered = 0;
41 auto source = dataSourcePrototype::create(url);
42 source->Open(0);
43 auto *demuxer = new demuxer_service(source);
44 int ret = demuxer->initOpen();
45 Stream_meta smeta{};
46 unique_ptr<streamMeta> meta = unique_ptr<streamMeta>(new streamMeta(&smeta));
47
48 for (int i = 0; i < demuxer->GetNbStreams(); ++i) {
49 demuxer->GetStreamMeta(meta, i, false);
50
51 if (((Stream_meta *) (*meta))->type == type) {
52 demuxer->OpenStream(i);
53 decoder = decoderFactory::create(((Stream_meta *) (*meta))->codec, flags, 0);
54 ret = decoder->open(((Stream_meta *) (*meta)), nullptr, 0);
55 break;
56 }
57 }
58
59 std::unique_ptr<IAFPacket> packet{nullptr};
60 unique_ptr<IAFFrame> frame{nullptr};
61#ifdef ENABLE_SDL
62 SDL_Event event;
63#endif
64
65 do {
66 if (type == STREAM_TYPE_VIDEO) {
67#ifdef ENABLE_SDL
68
69 if (SDL_PollEvent(&event)) {
70 if (event.type == SDL_QUIT) {
71 break;
72 }
73 }
74
75#endif
76 }
77
78 if (frame == nullptr) {
79 int decoder_ret;
80 ret = demuxer->readPacket(packet, 0);
81
82 if (ret > 0) {
83 decoder_ret = decoder->send_packet(packet, 0);
84 }
85
86 if (ret == -EAGAIN) {
87 af_msleep(10);
88 ret = 0;

Callers 1

TESTFunction · 0.85

Calls 15

af_msleepFunction · 0.85
af_usleepFunction · 0.85
initOpenMethod · 0.80
releaseMethod · 0.65
OpenMethod · 0.45
GetNbStreamsMethod · 0.45
GetStreamMetaMethod · 0.45
OpenStreamMethod · 0.45
openMethod · 0.45
readPacketMethod · 0.45
send_packetMethod · 0.45
getFrameMethod · 0.45

Tested by

no test coverage detected