Commit 25e08954 authored by Ghislain MARY's avatar Ghislain MARY

Output complete VP8 frame when the partitions are not numbered.

parent 85c710a5
......@@ -688,30 +688,6 @@ static void generate_frames_list(Vp8RtpFmtUnpackerCtx *ctx, MSList *packets_list
ctx->non_processed_packets_list=frame_packets_list;
}
static void output_partition(MSQueue *out, Vp8RtpFmtPartition **partition, bool_t last) {
if (*partition == NULL) {
*partition = create_empty_partition();
}
concat_packets_of_partition(*partition);
if ((*partition)->has_marker || (last == TRUE)) {
mblk_set_marker_info((*partition)->m, 1);
}
ms_queue_put(out, (void *)(*partition)->m);
(*partition)->outputted = TRUE;
}
static void output_partitions_of_frame(Vp8RtpFmtUnpackerCtx *ctx, MSQueue *out, Vp8RtpFmtFrame *frame) {
int i;
#ifdef VP8RTPFMT_DEBUG
if (frame->pictureid_present == TRUE) {
ms_message("VP8 decoder: Output partitions of frame with pictureID=0x%04x", frame->pictureid);
}
#endif
for (i = 0; i <= frame->partitions_info.nb_partitions; i++) {
output_partition(out, &frame->partitions[i], (i == frame->partitions_info.nb_partitions) ? TRUE : FALSE);
}
}
static void output_frame(MSQueue *out, Vp8RtpFmtFrame *frame) {
Vp8RtpFmtPartition *partition;
mblk_t *om = NULL;
......@@ -736,6 +712,34 @@ static void output_frame(MSQueue *out, Vp8RtpFmtFrame *frame) {
}
}
static void output_partition(MSQueue *out, Vp8RtpFmtPartition **partition, bool_t last) {
if (*partition == NULL) {
*partition = create_empty_partition();
}
concat_packets_of_partition(*partition);
if ((*partition)->has_marker || (last == TRUE)) {
mblk_set_marker_info((*partition)->m, 1);
}
ms_queue_put(out, (void *)(*partition)->m);
(*partition)->outputted = TRUE;
}
static void output_partitions_of_frame(Vp8RtpFmtUnpackerCtx *ctx, MSQueue *out, Vp8RtpFmtFrame *frame) {
int i;
if (frame->unnumbered_partitions == TRUE) {
output_frame(out, frame);
} else {
#ifdef VP8RTPFMT_DEBUG
if (frame->pictureid_present == TRUE) {
ms_message("VP8 decoder: Output partitions of frame with pictureID=0x%04x", frame->pictureid);
}
#endif
for (i = 0; i <= frame->partitions_info.nb_partitions; i++) {
output_partition(out, &frame->partitions[i], (i == frame->partitions_info.nb_partitions) ? TRUE : FALSE);
}
}
}
static void output_valid_partitions(Vp8RtpFmtUnpackerCtx *ctx, MSQueue *out) {
Vp8RtpFmtFrame *frame;
int nb_frames = ms_list_size(ctx->frames_list);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment