diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2008-08-20 23:17:43 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2008-08-20 23:17:43 +0000 |
commit | 7fb262b568eef705f7fd50379e006b39684c9aad (patch) | |
tree | 83c7ea34a1dfc9a4306a238eafd0d260c77aaea3 | |
parent | 79de84f2634e60470183b9b314ecb7ed2264cc4c (diff) | |
download | ffmpeg-7fb262b568eef705f7fd50379e006b39684c9aad.tar.gz |
Simplify timestamp reordering by using the new API.
Originally committed as revision 14872 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | ffplay.c | 24 |
1 files changed, 3 insertions, 21 deletions
@@ -1330,21 +1330,6 @@ static int output_picture2(VideoState *is, AVFrame *src_frame, double pts1) return queue_picture(is, src_frame, pts); } -static uint64_t global_video_pkt_pts= AV_NOPTS_VALUE; - -static int my_get_buffer(struct AVCodecContext *c, AVFrame *pic){ - int ret= avcodec_default_get_buffer(c, pic); - uint64_t *pts= av_malloc(sizeof(uint64_t)); - *pts= global_video_pkt_pts; - pic->opaque= pts; - return ret; -} - -static void my_release_buffer(struct AVCodecContext *c, AVFrame *pic){ - if(pic) av_freep(&pic->opaque); - avcodec_default_release_buffer(c, pic); -} - static int video_thread(void *arg) { VideoState *is = arg; @@ -1367,14 +1352,14 @@ static int video_thread(void *arg) /* NOTE: ipts is the PTS of the _first_ picture beginning in this packet, if any */ - global_video_pkt_pts= pkt->pts; + is->video_st->codec->reordered_opaque= pkt->pts; len1 = avcodec_decode_video(is->video_st->codec, frame, &got_picture, pkt->data, pkt->size); if( (decoder_reorder_pts || pkt->dts == AV_NOPTS_VALUE) - && frame->opaque && *(uint64_t*)frame->opaque != AV_NOPTS_VALUE) - pts= *(uint64_t*)frame->opaque; + && frame->reordered_opaque != AV_NOPTS_VALUE) + pts= frame->reordered_opaque; else if(pkt->dts != AV_NOPTS_VALUE) pts= pkt->dts; else @@ -1802,9 +1787,6 @@ static int stream_component_open(VideoState *is, int stream_index) packet_queue_init(&is->videoq); is->video_tid = SDL_CreateThread(video_thread, is); - - enc-> get_buffer= my_get_buffer; - enc->release_buffer= my_release_buffer; break; case CODEC_TYPE_SUBTITLE: is->subtitle_stream = stream_index; |