* cigaes/master: lavc: do not init frame with guessed layout. lavfi/af_atempo: simplify request_frame loop. lavfi/af_asetnsamples: simplify request_frame loop. lavfi/f_ebur128: remove request_frame hack. lavfi/vf_tile: simplify request_frame loop. lavfi: reindent after last commit. lavfi: loop on request_frame if necessary. Merged-by: Michael Niedermayer <michaelni@gmx.at>tags/n2.0
| @@ -651,8 +651,6 @@ int ff_init_buffer_info(AVCodecContext *avctx, AVFrame *frame) | |||
| avctx->channels); | |||
| return AVERROR(ENOSYS); | |||
| } | |||
| frame->channel_layout = av_get_default_channel_layout(avctx->channels); | |||
| } | |||
| } | |||
| av_frame_set_channels(frame, avctx->channels); | |||
| @@ -38,7 +38,6 @@ typedef struct { | |||
| int nb_out_samples; ///< how many samples to output | |||
| AVAudioFifo *fifo; ///< samples are queued here | |||
| int64_t next_out_pts; | |||
| int req_fullfilled; | |||
| int pad; | |||
| } ASNSContext; | |||
| @@ -86,6 +85,7 @@ static int config_props_output(AVFilterLink *outlink) | |||
| asns->fifo = av_audio_fifo_alloc(outlink->format, nb_channels, asns->nb_out_samples); | |||
| if (!asns->fifo) | |||
| return AVERROR(ENOMEM); | |||
| outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |||
| return 0; | |||
| } | |||
| @@ -128,7 +128,6 @@ static int push_samples(AVFilterLink *outlink) | |||
| ret = ff_filter_frame(outlink, outsamples); | |||
| if (ret < 0) | |||
| return ret; | |||
| asns->req_fullfilled = 1; | |||
| return nb_out_samples; | |||
| } | |||
| @@ -161,15 +160,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) | |||
| static int request_frame(AVFilterLink *outlink) | |||
| { | |||
| ASNSContext *asns = outlink->src->priv; | |||
| AVFilterLink *inlink = outlink->src->inputs[0]; | |||
| int ret; | |||
| asns->req_fullfilled = 0; | |||
| do { | |||
| ret = ff_request_frame(inlink); | |||
| } while (!asns->req_fullfilled && ret >= 0); | |||
| ret = ff_request_frame(inlink); | |||
| if (ret == AVERROR_EOF) { | |||
| ret = push_samples(outlink); | |||
| return ret < 0 ? ret : ret > 0 ? 0 : AVERROR_EOF; | |||
| @@ -139,7 +139,6 @@ typedef struct { | |||
| FFTSample *correlation; | |||
| // for managing AVFilterPad.request_frame and AVFilterPad.filter_frame | |||
| int request_fulfilled; | |||
| AVFrame *dst_buffer; | |||
| uint8_t *dst; | |||
| uint8_t *dst_end; | |||
| @@ -181,7 +180,6 @@ static void yae_clear(ATempoContext *atempo) | |||
| atempo->dst = NULL; | |||
| atempo->dst_end = NULL; | |||
| atempo->request_fulfilled = 0; | |||
| atempo->nsamples_in = 0; | |||
| atempo->nsamples_out = 0; | |||
| } | |||
| @@ -1017,6 +1015,8 @@ static int config_props(AVFilterLink *inlink) | |||
| int sample_rate = (int)inlink->sample_rate; | |||
| int channels = av_get_channel_layout_nb_channels(inlink->channel_layout); | |||
| ctx->outputs[0]->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |||
| return yae_reset(atempo, format, sample_rate, channels); | |||
| } | |||
| @@ -1074,7 +1074,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *src_buffer) | |||
| ret = push_samples(atempo, outlink, n_out); | |||
| if (ret < 0) | |||
| goto end; | |||
| atempo->request_fulfilled = 1; | |||
| } | |||
| } | |||
| @@ -1090,11 +1089,7 @@ static int request_frame(AVFilterLink *outlink) | |||
| ATempoContext *atempo = ctx->priv; | |||
| int ret; | |||
| atempo->request_fulfilled = 0; | |||
| do { | |||
| ret = ff_request_frame(ctx->inputs[0]); | |||
| } | |||
| while (!atempo->request_fulfilled && ret >= 0); | |||
| ret = ff_request_frame(ctx->inputs[0]); | |||
| if (ret == AVERROR_EOF) { | |||
| // flush the filter: | |||
| @@ -323,17 +323,27 @@ int ff_request_frame(AVFilterLink *link) | |||
| if (link->closed) | |||
| return AVERROR_EOF; | |||
| if (link->srcpad->request_frame) | |||
| ret = link->srcpad->request_frame(link); | |||
| else if (link->src->inputs[0]) | |||
| ret = ff_request_frame(link->src->inputs[0]); | |||
| if (ret == AVERROR_EOF && link->partial_buf) { | |||
| AVFrame *pbuf = link->partial_buf; | |||
| link->partial_buf = NULL; | |||
| ret = ff_filter_frame_framed(link, pbuf); | |||
| av_assert0(!link->frame_requested); | |||
| link->frame_requested = 1; | |||
| while (link->frame_requested) { | |||
| if (link->srcpad->request_frame) | |||
| ret = link->srcpad->request_frame(link); | |||
| else if (link->src->inputs[0]) | |||
| ret = ff_request_frame(link->src->inputs[0]); | |||
| if (ret == AVERROR_EOF && link->partial_buf) { | |||
| AVFrame *pbuf = link->partial_buf; | |||
| link->partial_buf = NULL; | |||
| ret = ff_filter_frame_framed(link, pbuf); | |||
| } | |||
| if (ret < 0) { | |||
| link->frame_requested = 0; | |||
| if (ret == AVERROR_EOF) | |||
| link->closed = 1; | |||
| } else { | |||
| av_assert0(!link->frame_requested || | |||
| link->flags & FF_LINK_FLAG_REQUEST_LOOP); | |||
| } | |||
| } | |||
| if (ret == AVERROR_EOF) | |||
| link->closed = 1; | |||
| return ret; | |||
| } | |||
| @@ -702,6 +712,7 @@ static int ff_filter_frame_framed(AVFilterLink *link, AVFrame *frame) | |||
| pts = out->pts; | |||
| ret = filter_frame(link, out); | |||
| link->frame_requested = 0; | |||
| ff_update_link_current_pts(link, pts); | |||
| return ret; | |||
| } | |||
| @@ -713,6 +724,7 @@ static int ff_filter_frame_needs_framing(AVFilterLink *link, AVFrame *frame) | |||
| int nb_channels = av_frame_get_channels(frame); | |||
| int ret = 0; | |||
| link->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |||
| /* Handle framing (min_samples, max_samples) */ | |||
| while (insamples) { | |||
| if (!pbuf) { | |||
| @@ -682,6 +682,17 @@ struct AVFilterLink { | |||
| * Number of channels. | |||
| */ | |||
| int channels; | |||
| /** | |||
| * True if a frame is being requested on the link. | |||
| * Used internally by the framework. | |||
| */ | |||
| unsigned frame_requested; | |||
| /** | |||
| * Link processing flags. | |||
| */ | |||
| unsigned flags; | |||
| }; | |||
| /** | |||
| @@ -128,7 +128,6 @@ typedef struct { | |||
| /* misc */ | |||
| int loglevel; ///< log level for frame logging | |||
| int metadata; ///< whether or not to inject loudness results in frames | |||
| int request_fulfilled; ///< 1 if some audio just got pushed, 0 otherwise. FIXME: remove me | |||
| } EBUR128Context; | |||
| #define OFFSET(x) offsetof(EBUR128Context, x) | |||
| @@ -317,6 +316,8 @@ static int config_video_output(AVFilterLink *outlink) | |||
| DRAW_RECT(ebur128->graph); | |||
| DRAW_RECT(ebur128->gauge); | |||
| outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |||
| return 0; | |||
| } | |||
| @@ -380,6 +381,8 @@ static int config_audio_output(AVFilterLink *outlink) | |||
| return AVERROR(ENOMEM); | |||
| } | |||
| outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |||
| return 0; | |||
| } | |||
| @@ -400,21 +403,6 @@ static struct hist_entry *get_histogram(void) | |||
| return h; | |||
| } | |||
| /* This is currently necessary for the min/max samples to work properly. | |||
| * FIXME: remove me when possible */ | |||
| static int audio_request_frame(AVFilterLink *outlink) | |||
| { | |||
| int ret; | |||
| AVFilterContext *ctx = outlink->src; | |||
| EBUR128Context *ebur128 = ctx->priv; | |||
| ebur128->request_fulfilled = 0; | |||
| do { | |||
| ret = ff_request_frame(ctx->inputs[0]); | |||
| } while (!ebur128->request_fulfilled && ret >= 0); | |||
| return ret; | |||
| } | |||
| static av_cold int init(AVFilterContext *ctx, const char *args) | |||
| { | |||
| int ret; | |||
| @@ -463,8 +451,6 @@ static av_cold int init(AVFilterContext *ctx, const char *args) | |||
| .type = AVMEDIA_TYPE_AUDIO, | |||
| .config_props = config_audio_output, | |||
| }; | |||
| if (ebur128->metadata) | |||
| pad.request_frame = audio_request_frame; | |||
| if (!pad.name) | |||
| return AVERROR(ENOMEM); | |||
| ff_insert_outpad(ctx, ebur128->do_video, &pad); | |||
| @@ -717,7 +703,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) | |||
| } | |||
| } | |||
| ebur128->request_fulfilled = 1; | |||
| return ff_filter_frame(ctx->outputs[ebur128->do_video], insamples); | |||
| } | |||
| @@ -325,4 +325,18 @@ int ff_buffersink_read_samples_compat(AVFilterContext *ctx, AVFilterBufferRef ** | |||
| */ | |||
| int ff_filter_frame(AVFilterLink *link, AVFrame *frame); | |||
| /** | |||
| * Flags for AVFilterLink.flags. | |||
| */ | |||
| enum { | |||
| /** | |||
| * Frame requests may need to loop in order to be fulfilled. | |||
| * A filter must set this flags on an output link if it may return 0 in | |||
| * request_frame() without filtering a frame. | |||
| */ | |||
| FF_LINK_FLAG_REQUEST_LOOP = 1, | |||
| }; | |||
| #endif /* AVFILTER_INTERNAL_H */ | |||
| @@ -116,6 +116,8 @@ static int config_props(AVFilterLink *outlink) | |||
| /* TODO make the color an option, or find an unified way of choosing it */ | |||
| ff_draw_color(&tile->draw, &tile->blank, (uint8_t[]){ 0, 0, 0, -1 }); | |||
| outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |||
| return 0; | |||
| } | |||
| @@ -203,16 +205,9 @@ static int request_frame(AVFilterLink *outlink) | |||
| AVFilterLink *inlink = ctx->inputs[0]; | |||
| int r; | |||
| while (1) { | |||
| r = ff_request_frame(inlink); | |||
| if (r < 0) { | |||
| if (r == AVERROR_EOF && tile->current) | |||
| r = end_last_frame(ctx); | |||
| break; | |||
| } | |||
| if (!tile->current) /* done */ | |||
| break; | |||
| } | |||
| r = ff_request_frame(inlink); | |||
| if (r == AVERROR_EOF && tile->current) | |||
| r = end_last_frame(ctx); | |||
| return r; | |||
| } | |||
| @@ -1,27 +1,27 @@ | |||
| packet|codec_type=audio|stream_index=0|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=572|flags=K | |||
| frame|media_type=audio|key_frame=1|pkt_pts=0|pkt_pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=572|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=mono | |||
| frame|media_type=audio|key_frame=1|pkt_pts=0|pkt_pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=572|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown | |||
| packet|codec_type=video|stream_index=1|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=2647|flags=K | |||
| frame|media_type=video|key_frame=1|pkt_pts=0|pkt_pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|pkt_duration=2048|pkt_duration_time=0.040000|pkt_pos=2647|pkt_size=N/A|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0 | |||
| packet|codec_type=video|stream_index=2|pts=0|pts_time=0.000000|dts=0|dts_time=0.000000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=233068|flags=K | |||
| frame|media_type=video|key_frame=1|pkt_pts=0|pkt_pts_time=0.000000|pkt_dts=0|pkt_dts_time=0.000000|pkt_duration=2048|pkt_duration_time=0.040000|pkt_pos=233068|pkt_size=N/A|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0 | |||
| packet|codec_type=audio|stream_index=0|pts=1024|pts_time=0.023220|dts=1024|dts_time=0.023220|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=263073|flags=K | |||
| frame|media_type=audio|key_frame=1|pkt_pts=1024|pkt_pts_time=0.023220|pkt_dts=1024|pkt_dts_time=0.023220|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=263073|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=mono | |||
| frame|media_type=audio|key_frame=1|pkt_pts=1024|pkt_pts_time=0.023220|pkt_dts=1024|pkt_dts_time=0.023220|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=263073|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown | |||
| packet|codec_type=video|stream_index=1|pts=2048|pts_time=0.040000|dts=2048|dts_time=0.040000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=265151|flags=K | |||
| frame|media_type=video|key_frame=1|pkt_pts=2048|pkt_pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|pkt_duration=2048|pkt_duration_time=0.040000|pkt_pos=265151|pkt_size=N/A|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0 | |||
| packet|codec_type=video|stream_index=2|pts=2048|pts_time=0.040000|dts=2048|dts_time=0.040000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=495575|flags=K | |||
| frame|media_type=video|key_frame=1|pkt_pts=2048|pkt_pts_time=0.040000|pkt_dts=2048|pkt_dts_time=0.040000|pkt_duration=2048|pkt_duration_time=0.040000|pkt_pos=495575|pkt_size=N/A|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0 | |||
| packet|codec_type=audio|stream_index=0|pts=2048|pts_time=0.046440|dts=2048|dts_time=0.046440|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=525580|flags=K | |||
| frame|media_type=audio|key_frame=1|pkt_pts=2048|pkt_pts_time=0.046440|pkt_dts=2048|pkt_dts_time=0.046440|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=525580|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=mono | |||
| frame|media_type=audio|key_frame=1|pkt_pts=2048|pkt_pts_time=0.046440|pkt_dts=2048|pkt_dts_time=0.046440|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=525580|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown | |||
| packet|codec_type=audio|stream_index=0|pts=3072|pts_time=0.069660|dts=3072|dts_time=0.069660|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=527651|flags=K | |||
| frame|media_type=audio|key_frame=1|pkt_pts=3072|pkt_pts_time=0.069660|pkt_dts=3072|pkt_dts_time=0.069660|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=527651|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=mono | |||
| frame|media_type=audio|key_frame=1|pkt_pts=3072|pkt_pts_time=0.069660|pkt_dts=3072|pkt_dts_time=0.069660|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=527651|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown | |||
| packet|codec_type=video|stream_index=1|pts=4096|pts_time=0.080000|dts=4096|dts_time=0.080000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=529729|flags=K | |||
| frame|media_type=video|key_frame=1|pkt_pts=4096|pkt_pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|pkt_duration=2048|pkt_duration_time=0.040000|pkt_pos=529729|pkt_size=N/A|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0 | |||
| packet|codec_type=video|stream_index=2|pts=4096|pts_time=0.080000|dts=4096|dts_time=0.080000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=760153|flags=K | |||
| frame|media_type=video|key_frame=1|pkt_pts=4096|pkt_pts_time=0.080000|pkt_dts=4096|pkt_dts_time=0.080000|pkt_duration=2048|pkt_duration_time=0.040000|pkt_pos=760153|pkt_size=N/A|width=100|height=100|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0 | |||
| packet|codec_type=audio|stream_index=0|pts=4096|pts_time=0.092880|dts=4096|dts_time=0.092880|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=790158|flags=K | |||
| frame|media_type=audio|key_frame=1|pkt_pts=4096|pkt_pts_time=0.092880|pkt_dts=4096|pkt_dts_time=0.092880|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=790158|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=mono | |||
| frame|media_type=audio|key_frame=1|pkt_pts=4096|pkt_pts_time=0.092880|pkt_dts=4096|pkt_dts_time=0.092880|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=790158|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown | |||
| packet|codec_type=audio|stream_index=0|pts=5120|pts_time=0.116100|dts=5120|dts_time=0.116100|duration=1024|duration_time=0.023220|convergence_duration=N/A|convergence_duration_time=N/A|size=2048|pos=792229|flags=K | |||
| frame|media_type=audio|key_frame=1|pkt_pts=5120|pkt_pts_time=0.116100|pkt_dts=5120|pkt_dts_time=0.116100|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=792229|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=mono | |||
| frame|media_type=audio|key_frame=1|pkt_pts=5120|pkt_pts_time=0.116100|pkt_dts=5120|pkt_dts_time=0.116100|pkt_duration=1024|pkt_duration_time=0.023220|pkt_pos=792229|pkt_size=2048|sample_fmt=s16|nb_samples=1024|channels=1|channel_layout=unknown | |||
| packet|codec_type=video|stream_index=1|pts=6144|pts_time=0.120000|dts=6144|dts_time=0.120000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=230400|pos=794307|flags=K | |||
| frame|media_type=video|key_frame=1|pkt_pts=6144|pkt_pts_time=0.120000|pkt_dts=6144|pkt_dts_time=0.120000|pkt_duration=2048|pkt_duration_time=0.040000|pkt_pos=794307|pkt_size=N/A|width=320|height=240|pix_fmt=rgb24|sample_aspect_ratio=1:1|pict_type=I|coded_picture_number=0|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0 | |||
| packet|codec_type=video|stream_index=2|pts=6144|pts_time=0.120000|dts=6144|dts_time=0.120000|duration=2048|duration_time=0.040000|convergence_duration=N/A|convergence_duration_time=N/A|size=30000|pos=1024731|flags=K | |||
| @@ -1,27 +1,27 @@ | |||
| packet,audio,0,0,0.000000,0,0.000000,1024,0.023220,N/A,N/A,2048,572,K | |||
| frame,audio,1,0,0.000000,0,0.000000,1024,0.023220,572,2048,s16,1024,1,mono | |||
| frame,audio,1,0,0.000000,0,0.000000,1024,0.023220,572,2048,s16,1024,1,unknown | |||
| packet,video,1,0,0.000000,0,0.000000,2048,0.040000,N/A,N/A,230400,2647,K | |||
| frame,video,1,0,0.000000,0,0.000000,2048,0.040000,2647,N/A,320,240,rgb24,1:1,I,0,0,0,0,0 | |||
| packet,video,2,0,0.000000,0,0.000000,2048,0.040000,N/A,N/A,30000,233068,K | |||
| frame,video,1,0,0.000000,0,0.000000,2048,0.040000,233068,N/A,100,100,rgb24,1:1,I,0,0,0,0,0 | |||
| packet,audio,0,1024,0.023220,1024,0.023220,1024,0.023220,N/A,N/A,2048,263073,K | |||
| frame,audio,1,1024,0.023220,1024,0.023220,1024,0.023220,263073,2048,s16,1024,1,mono | |||
| frame,audio,1,1024,0.023220,1024,0.023220,1024,0.023220,263073,2048,s16,1024,1,unknown | |||
| packet,video,1,2048,0.040000,2048,0.040000,2048,0.040000,N/A,N/A,230400,265151,K | |||
| frame,video,1,2048,0.040000,2048,0.040000,2048,0.040000,265151,N/A,320,240,rgb24,1:1,I,0,0,0,0,0 | |||
| packet,video,2,2048,0.040000,2048,0.040000,2048,0.040000,N/A,N/A,30000,495575,K | |||
| frame,video,1,2048,0.040000,2048,0.040000,2048,0.040000,495575,N/A,100,100,rgb24,1:1,I,0,0,0,0,0 | |||
| packet,audio,0,2048,0.046440,2048,0.046440,1024,0.023220,N/A,N/A,2048,525580,K | |||
| frame,audio,1,2048,0.046440,2048,0.046440,1024,0.023220,525580,2048,s16,1024,1,mono | |||
| frame,audio,1,2048,0.046440,2048,0.046440,1024,0.023220,525580,2048,s16,1024,1,unknown | |||
| packet,audio,0,3072,0.069660,3072,0.069660,1024,0.023220,N/A,N/A,2048,527651,K | |||
| frame,audio,1,3072,0.069660,3072,0.069660,1024,0.023220,527651,2048,s16,1024,1,mono | |||
| frame,audio,1,3072,0.069660,3072,0.069660,1024,0.023220,527651,2048,s16,1024,1,unknown | |||
| packet,video,1,4096,0.080000,4096,0.080000,2048,0.040000,N/A,N/A,230400,529729,K | |||
| frame,video,1,4096,0.080000,4096,0.080000,2048,0.040000,529729,N/A,320,240,rgb24,1:1,I,0,0,0,0,0 | |||
| packet,video,2,4096,0.080000,4096,0.080000,2048,0.040000,N/A,N/A,30000,760153,K | |||
| frame,video,1,4096,0.080000,4096,0.080000,2048,0.040000,760153,N/A,100,100,rgb24,1:1,I,0,0,0,0,0 | |||
| packet,audio,0,4096,0.092880,4096,0.092880,1024,0.023220,N/A,N/A,2048,790158,K | |||
| frame,audio,1,4096,0.092880,4096,0.092880,1024,0.023220,790158,2048,s16,1024,1,mono | |||
| frame,audio,1,4096,0.092880,4096,0.092880,1024,0.023220,790158,2048,s16,1024,1,unknown | |||
| packet,audio,0,5120,0.116100,5120,0.116100,1024,0.023220,N/A,N/A,2048,792229,K | |||
| frame,audio,1,5120,0.116100,5120,0.116100,1024,0.023220,792229,2048,s16,1024,1,mono | |||
| frame,audio,1,5120,0.116100,5120,0.116100,1024,0.023220,792229,2048,s16,1024,1,unknown | |||
| packet,video,1,6144,0.120000,6144,0.120000,2048,0.040000,N/A,N/A,230400,794307,K | |||
| frame,video,1,6144,0.120000,6144,0.120000,2048,0.040000,794307,N/A,320,240,rgb24,1:1,I,0,0,0,0,0 | |||
| packet,video,2,6144,0.120000,6144,0.120000,2048,0.040000,N/A,N/A,30000,1024731,K | |||
| @@ -27,7 +27,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [/FRAME] | |||
| [PACKET] | |||
| codec_type=video | |||
| @@ -132,7 +132,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [/FRAME] | |||
| [PACKET] | |||
| codec_type=video | |||
| @@ -237,7 +237,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [/FRAME] | |||
| [PACKET] | |||
| codec_type=audio | |||
| @@ -268,7 +268,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [/FRAME] | |||
| [PACKET] | |||
| codec_type=video | |||
| @@ -373,7 +373,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [/FRAME] | |||
| [PACKET] | |||
| codec_type=audio | |||
| @@ -404,7 +404,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [/FRAME] | |||
| [PACKET] | |||
| codec_type=video | |||
| @@ -24,7 +24,7 @@ packets_and_frames.frame.0.pkt_size="2048" | |||
| packets_and_frames.frame.0.sample_fmt="s16" | |||
| packets_and_frames.frame.0.nb_samples=1024 | |||
| packets_and_frames.frame.0.channels=1 | |||
| packets_and_frames.frame.0.channel_layout="mono" | |||
| packets_and_frames.frame.0.channel_layout="unknown" | |||
| packets_and_frames.packet.1.codec_type="video" | |||
| packets_and_frames.packet.1.stream_index=1 | |||
| packets_and_frames.packet.1.pts=0 | |||
| @@ -117,7 +117,7 @@ packets_and_frames.frame.3.pkt_size="2048" | |||
| packets_and_frames.frame.3.sample_fmt="s16" | |||
| packets_and_frames.frame.3.nb_samples=1024 | |||
| packets_and_frames.frame.3.channels=1 | |||
| packets_and_frames.frame.3.channel_layout="mono" | |||
| packets_and_frames.frame.3.channel_layout="unknown" | |||
| packets_and_frames.packet.4.codec_type="video" | |||
| packets_and_frames.packet.4.stream_index=1 | |||
| packets_and_frames.packet.4.pts=2048 | |||
| @@ -210,7 +210,7 @@ packets_and_frames.frame.6.pkt_size="2048" | |||
| packets_and_frames.frame.6.sample_fmt="s16" | |||
| packets_and_frames.frame.6.nb_samples=1024 | |||
| packets_and_frames.frame.6.channels=1 | |||
| packets_and_frames.frame.6.channel_layout="mono" | |||
| packets_and_frames.frame.6.channel_layout="unknown" | |||
| packets_and_frames.packet.7.codec_type="audio" | |||
| packets_and_frames.packet.7.stream_index=0 | |||
| packets_and_frames.packet.7.pts=3072 | |||
| @@ -237,7 +237,7 @@ packets_and_frames.frame.7.pkt_size="2048" | |||
| packets_and_frames.frame.7.sample_fmt="s16" | |||
| packets_and_frames.frame.7.nb_samples=1024 | |||
| packets_and_frames.frame.7.channels=1 | |||
| packets_and_frames.frame.7.channel_layout="mono" | |||
| packets_and_frames.frame.7.channel_layout="unknown" | |||
| packets_and_frames.packet.8.codec_type="video" | |||
| packets_and_frames.packet.8.stream_index=1 | |||
| packets_and_frames.packet.8.pts=4096 | |||
| @@ -330,7 +330,7 @@ packets_and_frames.frame.10.pkt_size="2048" | |||
| packets_and_frames.frame.10.sample_fmt="s16" | |||
| packets_and_frames.frame.10.nb_samples=1024 | |||
| packets_and_frames.frame.10.channels=1 | |||
| packets_and_frames.frame.10.channel_layout="mono" | |||
| packets_and_frames.frame.10.channel_layout="unknown" | |||
| packets_and_frames.packet.11.codec_type="audio" | |||
| packets_and_frames.packet.11.stream_index=0 | |||
| packets_and_frames.packet.11.pts=5120 | |||
| @@ -357,7 +357,7 @@ packets_and_frames.frame.11.pkt_size="2048" | |||
| packets_and_frames.frame.11.sample_fmt="s16" | |||
| packets_and_frames.frame.11.nb_samples=1024 | |||
| packets_and_frames.frame.11.channels=1 | |||
| packets_and_frames.frame.11.channel_layout="mono" | |||
| packets_and_frames.frame.11.channel_layout="unknown" | |||
| packets_and_frames.packet.12.codec_type="video" | |||
| packets_and_frames.packet.12.stream_index=1 | |||
| packets_and_frames.packet.12.pts=6144 | |||
| @@ -29,7 +29,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [packets_and_frames.packet.1] | |||
| codec_type=video | |||
| @@ -134,7 +134,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [packets_and_frames.packet.4] | |||
| codec_type=video | |||
| @@ -239,7 +239,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [packets_and_frames.packet.7] | |||
| codec_type=audio | |||
| @@ -270,7 +270,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [packets_and_frames.packet.8] | |||
| codec_type=video | |||
| @@ -375,7 +375,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [packets_and_frames.packet.11] | |||
| codec_type=audio | |||
| @@ -406,7 +406,7 @@ pkt_size=2048 | |||
| sample_fmt=s16 | |||
| nb_samples=1024 | |||
| channels=1 | |||
| channel_layout=mono | |||
| channel_layout=unknown | |||
| [packets_and_frames.packet.12] | |||
| codec_type=video | |||
| @@ -28,8 +28,7 @@ | |||
| "pkt_size": "2048", | |||
| "sample_fmt": "s16", | |||
| "nb_samples": 1024, | |||
| "channels": 1, | |||
| "channel_layout": "mono" | |||
| "channels": 1 | |||
| }, | |||
| { | |||
| "type": "packet", | |||
| @@ -131,8 +130,7 @@ | |||
| "pkt_size": "2048", | |||
| "sample_fmt": "s16", | |||
| "nb_samples": 1024, | |||
| "channels": 1, | |||
| "channel_layout": "mono" | |||
| "channels": 1 | |||
| }, | |||
| { | |||
| "type": "packet", | |||
| @@ -234,8 +232,7 @@ | |||
| "pkt_size": "2048", | |||
| "sample_fmt": "s16", | |||
| "nb_samples": 1024, | |||
| "channels": 1, | |||
| "channel_layout": "mono" | |||
| "channels": 1 | |||
| }, | |||
| { | |||
| "type": "packet", | |||
| @@ -265,8 +262,7 @@ | |||
| "pkt_size": "2048", | |||
| "sample_fmt": "s16", | |||
| "nb_samples": 1024, | |||
| "channels": 1, | |||
| "channel_layout": "mono" | |||
| "channels": 1 | |||
| }, | |||
| { | |||
| "type": "packet", | |||
| @@ -368,8 +364,7 @@ | |||
| "pkt_size": "2048", | |||
| "sample_fmt": "s16", | |||
| "nb_samples": 1024, | |||
| "channels": 1, | |||
| "channel_layout": "mono" | |||
| "channels": 1 | |||
| }, | |||
| { | |||
| "type": "packet", | |||
| @@ -399,8 +394,7 @@ | |||
| "pkt_size": "2048", | |||
| "sample_fmt": "s16", | |||
| "nb_samples": 1024, | |||
| "channels": 1, | |||
| "channel_layout": "mono" | |||
| "channels": 1 | |||
| }, | |||
| { | |||
| "type": "packet", | |||
| @@ -2,29 +2,29 @@ | |||
| <ffprobe> | |||
| <packets_and_frames> | |||
| <packet codec_type="audio" stream_index="0" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="1024" duration_time="0.023220" size="2048" pos="572" flags="K"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="0" pkt_pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="572" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1" channel_layout="mono"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="0" pkt_pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="572" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/> | |||
| <packet codec_type="video" stream_index="1" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="230400" pos="2647" flags="K"/> | |||
| <frame media_type="video" key_frame="1" pkt_pts="0" pkt_pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" pkt_duration="2048" pkt_duration_time="0.040000" pkt_pos="2647" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/> | |||
| <packet codec_type="video" stream_index="2" pts="0" pts_time="0.000000" dts="0" dts_time="0.000000" duration="2048" duration_time="0.040000" size="30000" pos="233068" flags="K"/> | |||
| <frame media_type="video" key_frame="1" pkt_pts="0" pkt_pts_time="0.000000" pkt_dts="0" pkt_dts_time="0.000000" pkt_duration="2048" pkt_duration_time="0.040000" pkt_pos="233068" width="100" height="100" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/> | |||
| <packet codec_type="audio" stream_index="0" pts="1024" pts_time="0.023220" dts="1024" dts_time="0.023220" duration="1024" duration_time="0.023220" size="2048" pos="263073" flags="K"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="1024" pkt_pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="263073" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1" channel_layout="mono"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="1024" pkt_pts_time="0.023220" pkt_dts="1024" pkt_dts_time="0.023220" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="263073" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/> | |||
| <packet codec_type="video" stream_index="1" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="230400" pos="265151" flags="K"/> | |||
| <frame media_type="video" key_frame="1" pkt_pts="2048" pkt_pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" pkt_duration="2048" pkt_duration_time="0.040000" pkt_pos="265151" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/> | |||
| <packet codec_type="video" stream_index="2" pts="2048" pts_time="0.040000" dts="2048" dts_time="0.040000" duration="2048" duration_time="0.040000" size="30000" pos="495575" flags="K"/> | |||
| <frame media_type="video" key_frame="1" pkt_pts="2048" pkt_pts_time="0.040000" pkt_dts="2048" pkt_dts_time="0.040000" pkt_duration="2048" pkt_duration_time="0.040000" pkt_pos="495575" width="100" height="100" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/> | |||
| <packet codec_type="audio" stream_index="0" pts="2048" pts_time="0.046440" dts="2048" dts_time="0.046440" duration="1024" duration_time="0.023220" size="2048" pos="525580" flags="K"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="2048" pkt_pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="525580" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1" channel_layout="mono"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="2048" pkt_pts_time="0.046440" pkt_dts="2048" pkt_dts_time="0.046440" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="525580" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/> | |||
| <packet codec_type="audio" stream_index="0" pts="3072" pts_time="0.069660" dts="3072" dts_time="0.069660" duration="1024" duration_time="0.023220" size="2048" pos="527651" flags="K"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="3072" pkt_pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="527651" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1" channel_layout="mono"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="3072" pkt_pts_time="0.069660" pkt_dts="3072" pkt_dts_time="0.069660" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="527651" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/> | |||
| <packet codec_type="video" stream_index="1" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="230400" pos="529729" flags="K"/> | |||
| <frame media_type="video" key_frame="1" pkt_pts="4096" pkt_pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" pkt_duration="2048" pkt_duration_time="0.040000" pkt_pos="529729" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/> | |||
| <packet codec_type="video" stream_index="2" pts="4096" pts_time="0.080000" dts="4096" dts_time="0.080000" duration="2048" duration_time="0.040000" size="30000" pos="760153" flags="K"/> | |||
| <frame media_type="video" key_frame="1" pkt_pts="4096" pkt_pts_time="0.080000" pkt_dts="4096" pkt_dts_time="0.080000" pkt_duration="2048" pkt_duration_time="0.040000" pkt_pos="760153" width="100" height="100" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/> | |||
| <packet codec_type="audio" stream_index="0" pts="4096" pts_time="0.092880" dts="4096" dts_time="0.092880" duration="1024" duration_time="0.023220" size="2048" pos="790158" flags="K"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="4096" pkt_pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="790158" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1" channel_layout="mono"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="4096" pkt_pts_time="0.092880" pkt_dts="4096" pkt_dts_time="0.092880" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="790158" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/> | |||
| <packet codec_type="audio" stream_index="0" pts="5120" pts_time="0.116100" dts="5120" dts_time="0.116100" duration="1024" duration_time="0.023220" size="2048" pos="792229" flags="K"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="5120" pkt_pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="792229" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1" channel_layout="mono"/> | |||
| <frame media_type="audio" key_frame="1" pkt_pts="5120" pkt_pts_time="0.116100" pkt_dts="5120" pkt_dts_time="0.116100" pkt_duration="1024" pkt_duration_time="0.023220" pkt_pos="792229" pkt_size="2048" sample_fmt="s16" nb_samples="1024" channels="1"/> | |||
| <packet codec_type="video" stream_index="1" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="230400" pos="794307" flags="K"/> | |||
| <frame media_type="video" key_frame="1" pkt_pts="6144" pkt_pts_time="0.120000" pkt_dts="6144" pkt_dts_time="0.120000" pkt_duration="2048" pkt_duration_time="0.040000" pkt_pos="794307" width="320" height="240" pix_fmt="rgb24" sample_aspect_ratio="1:1" pict_type="I" coded_picture_number="0" display_picture_number="0" interlaced_frame="0" top_field_first="0" repeat_pict="0"/> | |||
| <packet codec_type="video" stream_index="2" pts="6144" pts_time="0.120000" dts="6144" dts_time="0.120000" duration="2048" duration_time="0.040000" size="30000" pos="1024731" flags="K"/> | |||