On Mon, Jun 22, 2015 at 12:50:22PM +0300, Ludmila Glinskih wrote: > Result differs in pkt_duration and time_base.den for some reason. > Right now it tests only one example (adjusted to match the output). > [...]
> + pkt.data = NULL; > + pkt.size = 0; > + if (pkt.pts == AV_NOPTS_VALUE) > + pkt.pts = pkt.dts = i; > + int flag = 0; should be moved to the top of the function, some compilers dont like mixed declarations and code. > + while (!flag) { > + if (pkt.stream_index != video_stream) > + break; > + get_frame = 0; > + if (avcodec_decode_video2(ctx, fr, &get_frame, &pkt) < 0 || > get_frame == 0) > + flag = 1; > + if (get_frame) { > + number_of_written_bytes = av_image_copy_to_buffer(byte_buffer, > byte_buffer_size, > + (const uint8_t* const *)fr->data, (const > int*) fr->linesize, > + ctx->pix_fmt, ctx->width, ctx->height, > 1); > + printf("%d, %10"PRId64", %10"PRId64", %8d, %8d, > 0x%08"PRIx32"\n", video_stream, > + fr->pkt_pts, fr->pkt_dts, fr->pkt_duration, > + number_of_written_bytes, av_adler32_update(0, (const > uint8_t*)byte_buffer, number_of_written_bytes)); > + } > + i++; > + } > + av_free_packet(&pkt); > + av_frame_free(&fr); > + avcodec_close(ctx); > + avformat_close_input(&fmt_ctx); > + avcodec_free_context(&ctx); > + av_freep(&byte_buffer); > + return 0; > +} > + > +int main(int argc, char **argv) > +{ > + av_register_all(); > + video_decode_example(argv[1]); missing check on argc before use of the first argument [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB He who knows, does not speak. He who speaks, does not know. -- Lao Tsu
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel