MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / ds_run

Function ds_run

tools/decode_simple.c:65–107  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

63}
64
65int ds_run(DecodeContext *dc)
66{
67 int ret;
68
69 ret = avcodec_open2(dc->decoder, NULL, &dc->decoder_opts);
70 if (ret < 0)
71 return ret;
72
73 while (ret >= 0) {
74 ret = av_read_frame(dc->demuxer, dc->pkt);
75 if (ret < 0)
76 break;
77 if (dc->pkt->stream_index != dc->stream->index) {
78 av_packet_unref(dc->pkt);
79 continue;
80 }
81
82 ret = avcodec_send_packet(dc->decoder, dc->pkt);
83 if (ret < 0) {
84 fprintf(stderr, "Error decoding: %d\n", ret);
85 return ret;
86 }
87 av_packet_unref(dc->pkt);
88
89 ret = decode_read(dc, 0);
90 if (ret < 0) {
91 fprintf(stderr, "Error decoding: %d\n", ret);
92 return ret;
93 } else if (ret > 0)
94 goto finish;
95 }
96
97 ret = avcodec_send_packet(dc->decoder, NULL);
98 if (ret >= 0)
99 ret = decode_read(dc, 1);
100 if (ret < 0) {
101 fprintf(stderr, "Error flushing: %d\n", ret);
102 return ret;
103 }
104
105finish:
106 return dc->process_frame(dc, NULL);
107}
108
109void ds_free(DecodeContext *dc)
110{

Callers 3

mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 5

avcodec_open2Function · 0.85
av_read_frameFunction · 0.85
av_packet_unrefFunction · 0.85
avcodec_send_packetFunction · 0.85
decode_readFunction · 0.85

Tested by 2

mainFunction · 0.68
mainFunction · 0.68